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/ccxt.browser.js
CHANGED
|
@@ -7388,6 +7388,7 @@ class Exchange {
|
|
|
7388
7388
|
'fetchBorrowInterest': undefined,
|
|
7389
7389
|
'fetchBorrowRateHistory': undefined,
|
|
7390
7390
|
'fetchCanceledOrders': undefined,
|
|
7391
|
+
'fetchCanceledAndClosedOrders': undefined,
|
|
7391
7392
|
'fetchClosedOrder': undefined,
|
|
7392
7393
|
'fetchClosedOrders': undefined,
|
|
7393
7394
|
'fetchCrossBorrowRate': undefined,
|
|
@@ -11080,6 +11081,9 @@ class Exchange {
|
|
|
11080
11081
|
}
|
|
11081
11082
|
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' fetchClosedOrders() is not supported yet');
|
|
11082
11083
|
}
|
|
11084
|
+
async fetchCanceledAndClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
11085
|
+
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' fetchCanceledAndClosedOrders() is not supported yet');
|
|
11086
|
+
}
|
|
11083
11087
|
async fetchClosedOrdersWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
11084
11088
|
if (this.has['fetchOrdersWs']) {
|
|
11085
11089
|
const orders = await this.fetchOrdersWs(symbol, since, limit, params);
|
|
@@ -11208,8 +11212,14 @@ class Exchange {
|
|
|
11208
11212
|
}
|
|
11209
11213
|
return markets[0];
|
|
11210
11214
|
}
|
|
11215
|
+
else if ((symbol.endsWith('-C')) || (symbol.endsWith('-P')) || (symbol.startsWith('C-')) || (symbol.startsWith('P-'))) {
|
|
11216
|
+
return this.createExpiredOptionMarket(symbol);
|
|
11217
|
+
}
|
|
11211
11218
|
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
11212
11219
|
}
|
|
11220
|
+
createExpiredOptionMarket(symbol) {
|
|
11221
|
+
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' createExpiredOptionMarket () is not supported yet');
|
|
11222
|
+
}
|
|
11213
11223
|
handleWithdrawTagAndParams(tag, params) {
|
|
11214
11224
|
if (typeof tag === 'object') {
|
|
11215
11225
|
params = this.extend(tag, params);
|
|
@@ -18664,6 +18674,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
18664
18674
|
},
|
|
18665
18675
|
'papi': {
|
|
18666
18676
|
'get': {
|
|
18677
|
+
'ping': 1,
|
|
18667
18678
|
'um/order': 1,
|
|
18668
18679
|
'um/openOrder': 1,
|
|
18669
18680
|
'um/openOrders': 1,
|
|
@@ -26409,7 +26420,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
26409
26420
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError(this.id + ' userDataStream endpoint requires `apiKey` credential');
|
|
26410
26421
|
}
|
|
26411
26422
|
}
|
|
26412
|
-
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')) {
|
|
26423
|
+
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')) {
|
|
26413
26424
|
this.checkRequiredCredentials();
|
|
26414
26425
|
if (method === 'POST' && ((path === 'order') || (path === 'sor/order'))) {
|
|
26415
26426
|
// inject in implicit API calls
|
|
@@ -27701,7 +27712,24 @@ class binanceus extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
27701
27712
|
'api': {
|
|
27702
27713
|
'public': {
|
|
27703
27714
|
'get': {
|
|
27715
|
+
'exchangeInfo': 10,
|
|
27716
|
+
'ping': 1,
|
|
27717
|
+
'time': 1,
|
|
27718
|
+
'depth': { 'cost': 1, 'byLimit': [[100, 1], [500, 5], [1000, 10], [5000, 50]] },
|
|
27719
|
+
'trades': 1,
|
|
27720
|
+
'aggTrades': 1,
|
|
27721
|
+
'historicalTrades': 5,
|
|
27722
|
+
'klines': 1,
|
|
27704
27723
|
'ticker/price': { 'cost': 1, 'noSymbol': 2 },
|
|
27724
|
+
'avgPrice': 1,
|
|
27725
|
+
'ticker/bookTicker': { 'cost': 1, 'noSymbol': 2 },
|
|
27726
|
+
'ticker/24hr': { 'cost': 1, 'noSymbol': 40 },
|
|
27727
|
+
'ticker': { 'cost': 2, 'noSymbol': 100 },
|
|
27728
|
+
},
|
|
27729
|
+
},
|
|
27730
|
+
'private': {
|
|
27731
|
+
'get': {
|
|
27732
|
+
'status': 1,
|
|
27705
27733
|
},
|
|
27706
27734
|
},
|
|
27707
27735
|
},
|
|
@@ -28153,7 +28181,8 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
28153
28181
|
'80017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
|
|
28154
28182
|
'100414': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
|
|
28155
28183
|
'100419': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
|
|
28156
|
-
'100437': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
|
|
28184
|
+
'100437': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
|
|
28185
|
+
'101204': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds, // bingx {"code":101204,"msg":"","data":{}}
|
|
28157
28186
|
},
|
|
28158
28187
|
'broad': {},
|
|
28159
28188
|
},
|
|
@@ -41531,6 +41560,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
41531
41560
|
'fetchBorrowRateHistories': false,
|
|
41532
41561
|
'fetchBorrowRateHistory': false,
|
|
41533
41562
|
'fetchCanceledOrders': true,
|
|
41563
|
+
'fetchCanceledAndClosedOrders': true,
|
|
41534
41564
|
'fetchClosedOrders': true,
|
|
41535
41565
|
'fetchCrossBorrowRate': true,
|
|
41536
41566
|
'fetchCrossBorrowRates': false,
|
|
@@ -46870,20 +46900,8 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
46870
46900
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
46871
46901
|
*/
|
|
46872
46902
|
await this.loadMarkets();
|
|
46873
|
-
|
|
46874
|
-
|
|
46875
|
-
market = this.market(symbol);
|
|
46876
|
-
}
|
|
46877
|
-
const response = await this.fetchCanceledAndClosedOrders(symbol, since, limit, params);
|
|
46878
|
-
const result = [];
|
|
46879
|
-
for (let i = 0; i < response.length; i++) {
|
|
46880
|
-
const entry = response[i];
|
|
46881
|
-
const status = this.parseOrderStatus(this.safeStringN(entry, ['state', 'status', 'planStatus']));
|
|
46882
|
-
if (status === 'closed') {
|
|
46883
|
-
result.push(entry);
|
|
46884
|
-
}
|
|
46885
|
-
}
|
|
46886
|
-
return this.parseOrders(result, market, since, limit);
|
|
46903
|
+
const orders = await this.fetchCanceledAndClosedOrders(symbol, since, limit, params);
|
|
46904
|
+
return this.filterBy(orders, 'status', 'closed');
|
|
46887
46905
|
}
|
|
46888
46906
|
async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
46889
46907
|
/**
|
|
@@ -46908,22 +46926,26 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
46908
46926
|
* @returns {object} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
46909
46927
|
*/
|
|
46910
46928
|
await this.loadMarkets();
|
|
46911
|
-
|
|
46912
|
-
|
|
46913
|
-
market = this.market(symbol);
|
|
46914
|
-
}
|
|
46915
|
-
const response = await this.fetchCanceledAndClosedOrders(symbol, since, limit, params);
|
|
46916
|
-
const result = [];
|
|
46917
|
-
for (let i = 0; i < response.length; i++) {
|
|
46918
|
-
const entry = response[i];
|
|
46919
|
-
const status = this.parseOrderStatus(this.safeStringN(entry, ['state', 'status', 'planStatus']));
|
|
46920
|
-
if (status === 'canceled') {
|
|
46921
|
-
result.push(entry);
|
|
46922
|
-
}
|
|
46923
|
-
}
|
|
46924
|
-
return this.parseOrders(result, market, since, limit);
|
|
46929
|
+
const orders = await this.fetchCanceledAndClosedOrders(symbol, since, limit, params);
|
|
46930
|
+
return this.filterBy(orders, 'status', 'canceled');
|
|
46925
46931
|
}
|
|
46926
46932
|
async fetchCanceledAndClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
46933
|
+
/**
|
|
46934
|
+
* @method
|
|
46935
|
+
* @name bitget#fetchCanceledAndClosedOrders
|
|
46936
|
+
* @see https://www.bitget.com/api-doc/spot/trade/Get-History-Orders
|
|
46937
|
+
* @see https://www.bitget.com/api-doc/spot/plan/Get-History-Plan-Order
|
|
46938
|
+
* @see https://www.bitget.com/api-doc/contract/trade/Get-Orders-History
|
|
46939
|
+
* @see https://www.bitget.com/api-doc/contract/plan/orders-plan-history
|
|
46940
|
+
* @see https://www.bitget.com/api-doc/margin/cross/trade/Get-Cross-Order-History
|
|
46941
|
+
* @see https://www.bitget.com/api-doc/margin/isolated/trade/Get-Isolated-Order-History
|
|
46942
|
+
* @description fetches information on multiple canceled and closed orders made by the user
|
|
46943
|
+
* @param {string} symbol unified market symbol of the market orders were made in
|
|
46944
|
+
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
46945
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
46946
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
46947
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
46948
|
+
*/
|
|
46927
46949
|
await this.loadMarkets();
|
|
46928
46950
|
const sandboxMode = this.safeValue(this.options, 'sandboxMode', false);
|
|
46929
46951
|
let market = undefined;
|
|
@@ -47208,16 +47230,17 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
47208
47230
|
const data = this.safeValue(response, 'data', {});
|
|
47209
47231
|
if (marketType === 'spot') {
|
|
47210
47232
|
if ((marginMode !== undefined) || stop) {
|
|
47211
|
-
return this.safeValue(data, 'orderList', []);
|
|
47233
|
+
return this.parseOrders(this.safeValue(data, 'orderList', []), market, since, limit);
|
|
47212
47234
|
}
|
|
47213
47235
|
}
|
|
47214
47236
|
else {
|
|
47215
|
-
return this.safeValue(data, 'entrustedList', []);
|
|
47237
|
+
return this.parseOrders(this.safeValue(data, 'entrustedList', []), market, since, limit);
|
|
47216
47238
|
}
|
|
47217
47239
|
if (typeof response === 'string') {
|
|
47218
47240
|
response = JSON.parse(response);
|
|
47219
47241
|
}
|
|
47220
|
-
|
|
47242
|
+
const orders = this.safeValue(response, 'data', []);
|
|
47243
|
+
return this.parseOrders(orders, market, since, limit);
|
|
47221
47244
|
}
|
|
47222
47245
|
async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
47223
47246
|
/**
|
|
@@ -67366,7 +67389,7 @@ class bitteam extends _abstract_bitteam_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
67366
67389
|
'1d': '1D',
|
|
67367
67390
|
},
|
|
67368
67391
|
'urls': {
|
|
67369
|
-
'logo': 'https://
|
|
67392
|
+
'logo': 'https://github.com/ccxt/ccxt/assets/43336371/cf71fe3d-b8b4-40f2-a906-907661b28793',
|
|
67370
67393
|
'api': {
|
|
67371
67394
|
'history': 'https://history.bit.team',
|
|
67372
67395
|
'public': 'https://bit.team',
|
|
@@ -78113,34 +78136,6 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
78113
78136
|
'info': undefined,
|
|
78114
78137
|
};
|
|
78115
78138
|
}
|
|
78116
|
-
market(symbol) {
|
|
78117
|
-
if (this.markets === undefined) {
|
|
78118
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError(this.id + ' markets not loaded');
|
|
78119
|
-
}
|
|
78120
|
-
if (typeof symbol === 'string') {
|
|
78121
|
-
if (symbol in this.markets) {
|
|
78122
|
-
return this.markets[symbol];
|
|
78123
|
-
}
|
|
78124
|
-
else if (symbol in this.markets_by_id) {
|
|
78125
|
-
const markets = this.markets_by_id[symbol];
|
|
78126
|
-
let defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
|
|
78127
|
-
if (defaultType === 'future') {
|
|
78128
|
-
defaultType = 'contract';
|
|
78129
|
-
}
|
|
78130
|
-
for (let i = 0; i < markets.length; i++) {
|
|
78131
|
-
const market = markets[i];
|
|
78132
|
-
if (market[defaultType]) {
|
|
78133
|
-
return market;
|
|
78134
|
-
}
|
|
78135
|
-
}
|
|
78136
|
-
return markets[0];
|
|
78137
|
-
}
|
|
78138
|
-
else if ((symbol.indexOf('-C') > -1) || (symbol.indexOf('-P') > -1)) {
|
|
78139
|
-
return this.createExpiredOptionMarket(symbol);
|
|
78140
|
-
}
|
|
78141
|
-
}
|
|
78142
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
78143
|
-
}
|
|
78144
78139
|
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
78145
78140
|
const isOption = (marketId !== undefined) && ((marketId.indexOf('-C') > -1) || (marketId.indexOf('-P') > -1));
|
|
78146
78141
|
if (isOption && !(marketId in this.markets_by_id)) {
|
|
@@ -110196,24 +110191,6 @@ class delta extends _abstract_delta_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
110196
110191
|
'info': undefined,
|
|
110197
110192
|
};
|
|
110198
110193
|
}
|
|
110199
|
-
market(symbol) {
|
|
110200
|
-
if (this.markets === undefined) {
|
|
110201
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(this.id + ' markets not loaded');
|
|
110202
|
-
}
|
|
110203
|
-
if (typeof symbol === 'string') {
|
|
110204
|
-
if (symbol in this.markets) {
|
|
110205
|
-
return this.markets[symbol];
|
|
110206
|
-
}
|
|
110207
|
-
else if (symbol in this.markets_by_id) {
|
|
110208
|
-
const markets = this.markets_by_id[symbol];
|
|
110209
|
-
return markets[0];
|
|
110210
|
-
}
|
|
110211
|
-
else if ((symbol.endsWith('-C')) || (symbol.endsWith('-P')) || (symbol.startsWith('C-')) || (symbol.startsWith('P-'))) {
|
|
110212
|
-
return this.createExpiredOptionMarket(symbol);
|
|
110213
|
-
}
|
|
110214
|
-
}
|
|
110215
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
110216
|
-
}
|
|
110217
110194
|
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
110218
110195
|
const isOption = (marketId !== undefined) && ((marketId.endsWith('-C')) || (marketId.endsWith('-P')) || (marketId.startsWith('C-')) || (marketId.startsWith('P-')));
|
|
110219
110196
|
if (isOption && !(marketId in this.markets_by_id)) {
|
|
@@ -124454,31 +124431,6 @@ class gate extends _abstract_gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
124454
124431
|
'info': undefined,
|
|
124455
124432
|
};
|
|
124456
124433
|
}
|
|
124457
|
-
market(symbol) {
|
|
124458
|
-
if (this.markets === undefined) {
|
|
124459
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(this.id + ' markets not loaded');
|
|
124460
|
-
}
|
|
124461
|
-
if (typeof symbol === 'string') {
|
|
124462
|
-
if (symbol in this.markets) {
|
|
124463
|
-
return this.markets[symbol];
|
|
124464
|
-
}
|
|
124465
|
-
else if (symbol in this.markets_by_id) {
|
|
124466
|
-
const markets = this.markets_by_id[symbol];
|
|
124467
|
-
const defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
|
|
124468
|
-
for (let i = 0; i < markets.length; i++) {
|
|
124469
|
-
const market = markets[i];
|
|
124470
|
-
if (market[defaultType]) {
|
|
124471
|
-
return market;
|
|
124472
|
-
}
|
|
124473
|
-
}
|
|
124474
|
-
return markets[0];
|
|
124475
|
-
}
|
|
124476
|
-
else if ((symbol.indexOf('-C') > -1) || (symbol.indexOf('-P') > -1)) {
|
|
124477
|
-
return this.createExpiredOptionMarket(symbol);
|
|
124478
|
-
}
|
|
124479
|
-
}
|
|
124480
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
124481
|
-
}
|
|
124482
124434
|
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
124483
124435
|
const isOption = (marketId !== undefined) && ((marketId.indexOf('-C') > -1) || (marketId.indexOf('-P') > -1));
|
|
124484
124436
|
if (isOption && !(marketId in this.markets_by_id)) {
|
|
@@ -164391,7 +164343,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
164391
164343
|
* @method
|
|
164392
164344
|
* @name kucoinfutures#fetchFundingRate
|
|
164393
164345
|
* @description fetch the current funding rate
|
|
164394
|
-
* @see https://www.kucoin.com/docs/rest/futures-trading/
|
|
164346
|
+
* @see https://www.kucoin.com/docs/rest/futures-trading/funding-fees/get-current-funding-rate
|
|
164395
164347
|
* @param {string} symbol unified market symbol
|
|
164396
164348
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
164397
164349
|
* @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
|
|
@@ -164415,7 +164367,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
164415
164367
|
// }
|
|
164416
164368
|
//
|
|
164417
164369
|
const data = this.safeValue(response, 'data');
|
|
164418
|
-
const fundingTimestamp = this.
|
|
164370
|
+
const fundingTimestamp = this.safeInteger(data, 'timePoint');
|
|
164419
164371
|
// the website displayes the previous funding rate as "funding rate"
|
|
164420
164372
|
return {
|
|
164421
164373
|
'info': data,
|
|
@@ -164426,15 +164378,15 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
164426
164378
|
'estimatedSettlePrice': undefined,
|
|
164427
164379
|
'timestamp': undefined,
|
|
164428
164380
|
'datetime': undefined,
|
|
164429
|
-
'fundingRate': this.safeNumber(data, '
|
|
164430
|
-
'fundingTimestamp':
|
|
164431
|
-
'fundingDatetime':
|
|
164432
|
-
'nextFundingRate':
|
|
164381
|
+
'fundingRate': this.safeNumber(data, 'value'),
|
|
164382
|
+
'fundingTimestamp': fundingTimestamp,
|
|
164383
|
+
'fundingDatetime': this.iso8601(fundingTimestamp),
|
|
164384
|
+
'nextFundingRate': this.safeNumber(data, 'predictedValue'),
|
|
164433
164385
|
'nextFundingTimestamp': undefined,
|
|
164434
164386
|
'nextFundingDatetime': undefined,
|
|
164435
|
-
'previousFundingRate':
|
|
164436
|
-
'previousFundingTimestamp':
|
|
164437
|
-
'previousFundingDatetime':
|
|
164387
|
+
'previousFundingRate': undefined,
|
|
164388
|
+
'previousFundingTimestamp': undefined,
|
|
164389
|
+
'previousFundingDatetime': undefined,
|
|
164438
164390
|
};
|
|
164439
164391
|
}
|
|
164440
164392
|
parseBalance(response) {
|
|
@@ -189710,24 +189662,6 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
189710
189662
|
'info': undefined,
|
|
189711
189663
|
};
|
|
189712
189664
|
}
|
|
189713
|
-
market(symbol) {
|
|
189714
|
-
if (this.markets === undefined) {
|
|
189715
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError(this.id + ' markets not loaded');
|
|
189716
|
-
}
|
|
189717
|
-
if (typeof symbol === 'string') {
|
|
189718
|
-
if (symbol in this.markets) {
|
|
189719
|
-
return this.markets[symbol];
|
|
189720
|
-
}
|
|
189721
|
-
else if (symbol in this.markets_by_id) {
|
|
189722
|
-
const markets = this.markets_by_id[symbol];
|
|
189723
|
-
return markets[0];
|
|
189724
|
-
}
|
|
189725
|
-
else if ((symbol.indexOf('-C') > -1) || (symbol.indexOf('-P') > -1)) {
|
|
189726
|
-
return this.createExpiredOptionMarket(symbol);
|
|
189727
|
-
}
|
|
189728
|
-
}
|
|
189729
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
189730
|
-
}
|
|
189731
189665
|
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
189732
189666
|
const isOption = (marketId !== undefined) && ((marketId.indexOf('-C') > -1) || (marketId.indexOf('-P') > -1));
|
|
189733
189667
|
if (isOption && !(marketId in this.markets_by_id)) {
|
|
@@ -295516,7 +295450,7 @@ SOFTWARE.
|
|
|
295516
295450
|
|
|
295517
295451
|
//-----------------------------------------------------------------------------
|
|
295518
295452
|
// this is updated by vss.js when building
|
|
295519
|
-
const version = '4.2.
|
|
295453
|
+
const version = '4.2.20';
|
|
295520
295454
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
|
|
295521
295455
|
//-----------------------------------------------------------------------------
|
|
295522
295456
|
|