ccxt 4.2.15 → 4.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/ccxt.browser.js +647 -168
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/js/ccxt.js +3 -1
- package/dist/cjs/js/src/ascendex.js +11 -6
- package/dist/cjs/js/src/base/Exchange.js +12 -12
- package/dist/cjs/js/src/binance.js +1 -0
- package/dist/cjs/js/src/bingx.js +37 -3
- package/dist/cjs/js/src/bitmex.js +3 -6
- package/dist/cjs/js/src/coinlist.js +10 -2
- package/dist/cjs/js/src/coinone.js +1 -1
- package/dist/cjs/js/src/coinsph.js +2 -2
- package/dist/cjs/js/src/phemex.js +28 -25
- package/dist/cjs/js/src/pro/binance.js +2 -2
- package/dist/cjs/js/src/pro/coinone.js +411 -0
- package/dist/cjs/js/src/pro/hitbtc.js +5 -4
- package/dist/cjs/js/src/pro/krakenfutures.js +7 -1
- package/dist/cjs/js/src/pro/kucoin.js +3 -1
- package/dist/cjs/js/src/pro/poloniex.js +2 -2
- package/js/ccxt.d.ts +4 -1
- package/js/ccxt.js +3 -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/coinlist.d.ts +8 -0
- package/js/src/ascendex.js +11 -6
- package/js/src/base/Exchange.js +12 -12
- package/js/src/binance.js +1 -0
- package/js/src/bingx.d.ts +1 -0
- package/js/src/bingx.js +38 -4
- package/js/src/bitmex.js +3 -6
- package/js/src/coinlist.js +10 -2
- package/js/src/coinone.js +1 -1
- package/js/src/coinsph.js +2 -2
- package/js/src/phemex.js +28 -25
- package/js/src/pro/binance.js +2 -2
- package/js/src/pro/coinone.d.ts +21 -0
- package/js/src/pro/coinone.js +412 -0
- package/js/src/pro/hitbtc.js +5 -4
- package/js/src/pro/krakenfutures.js +7 -1
- package/js/src/pro/kucoin.js +3 -1
- package/js/src/pro/poloniex.js +2 -2
- package/package.json +1 -1
- package/skip-tests.json +1 -0
package/dist/ccxt.browser.js
CHANGED
|
@@ -4429,12 +4429,14 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
4429
4429
|
*/
|
|
4430
4430
|
await this.loadMarkets();
|
|
4431
4431
|
await this.loadAccounts();
|
|
4432
|
-
let query = undefined;
|
|
4433
4432
|
let marketType = undefined;
|
|
4434
|
-
|
|
4433
|
+
let marginMode = undefined;
|
|
4434
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
|
|
4435
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchBalance', params);
|
|
4435
4436
|
const isMargin = this.safeValue(params, 'margin', false);
|
|
4436
|
-
|
|
4437
|
-
|
|
4437
|
+
const isCross = marginMode === 'cross';
|
|
4438
|
+
marketType = (isMargin || isCross) ? 'margin' : marketType;
|
|
4439
|
+
params = this.omit(params, 'margin');
|
|
4438
4440
|
const accountsByType = this.safeValue(this.options, 'accountsByType', {});
|
|
4439
4441
|
const accountCategory = this.safeString(accountsByType, marketType, 'cash');
|
|
4440
4442
|
const account = this.safeValue(this.accounts, 0, {});
|
|
@@ -4442,15 +4444,18 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
4442
4444
|
const request = {
|
|
4443
4445
|
'account-group': accountGroup,
|
|
4444
4446
|
};
|
|
4447
|
+
if ((marginMode === 'isolated') && (marketType !== 'swap')) {
|
|
4448
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' does not supported isolated margin trading');
|
|
4449
|
+
}
|
|
4445
4450
|
if ((accountCategory === 'cash') || (accountCategory === 'margin')) {
|
|
4446
4451
|
request['account-category'] = accountCategory;
|
|
4447
4452
|
}
|
|
4448
4453
|
let response = undefined;
|
|
4449
4454
|
if ((marketType === 'spot') || (marketType === 'margin')) {
|
|
4450
|
-
response = await this.v1PrivateAccountCategoryGetBalance(this.extend(request,
|
|
4455
|
+
response = await this.v1PrivateAccountCategoryGetBalance(this.extend(request, params));
|
|
4451
4456
|
}
|
|
4452
4457
|
else if (marketType === 'swap') {
|
|
4453
|
-
response = await this.v2PrivateAccountGroupGetFuturesPosition(this.extend(request,
|
|
4458
|
+
response = await this.v2PrivateAccountGroupGetFuturesPosition(this.extend(request, params));
|
|
4454
4459
|
}
|
|
4455
4460
|
else {
|
|
4456
4461
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' fetchBalance() is not currently supported for ' + marketType + ' markets');
|
|
@@ -8441,11 +8446,11 @@ class Exchange {
|
|
|
8441
8446
|
let httpsProxy = undefined;
|
|
8442
8447
|
let socksProxy = undefined;
|
|
8443
8448
|
// httpProxy
|
|
8444
|
-
if (this.httpProxy
|
|
8449
|
+
if (this.valueIsDefined(this.httpProxy)) {
|
|
8445
8450
|
usedProxies.push('httpProxy');
|
|
8446
8451
|
httpProxy = this.httpProxy;
|
|
8447
8452
|
}
|
|
8448
|
-
if (this.http_proxy
|
|
8453
|
+
if (this.valueIsDefined(this.http_proxy)) {
|
|
8449
8454
|
usedProxies.push('http_proxy');
|
|
8450
8455
|
httpProxy = this.http_proxy;
|
|
8451
8456
|
}
|
|
@@ -8458,11 +8463,11 @@ class Exchange {
|
|
|
8458
8463
|
httpProxy = this.http_proxy_callback(url, method, headers, body);
|
|
8459
8464
|
}
|
|
8460
8465
|
// httpsProxy
|
|
8461
|
-
if (this.httpsProxy
|
|
8466
|
+
if (this.valueIsDefined(this.httpsProxy)) {
|
|
8462
8467
|
usedProxies.push('httpsProxy');
|
|
8463
8468
|
httpsProxy = this.httpsProxy;
|
|
8464
8469
|
}
|
|
8465
|
-
if (this.https_proxy
|
|
8470
|
+
if (this.valueIsDefined(this.https_proxy)) {
|
|
8466
8471
|
usedProxies.push('https_proxy');
|
|
8467
8472
|
httpsProxy = this.https_proxy;
|
|
8468
8473
|
}
|
|
@@ -8475,11 +8480,11 @@ class Exchange {
|
|
|
8475
8480
|
httpsProxy = this.https_proxy_callback(url, method, headers, body);
|
|
8476
8481
|
}
|
|
8477
8482
|
// socksProxy
|
|
8478
|
-
if (this.socksProxy
|
|
8483
|
+
if (this.valueIsDefined(this.socksProxy)) {
|
|
8479
8484
|
usedProxies.push('socksProxy');
|
|
8480
8485
|
socksProxy = this.socksProxy;
|
|
8481
8486
|
}
|
|
8482
|
-
if (this.socks_proxy
|
|
8487
|
+
if (this.valueIsDefined(this.socks_proxy)) {
|
|
8483
8488
|
usedProxies.push('socks_proxy');
|
|
8484
8489
|
socksProxy = this.socks_proxy;
|
|
8485
8490
|
}
|
|
@@ -8505,29 +8510,29 @@ class Exchange {
|
|
|
8505
8510
|
let wssProxy = undefined;
|
|
8506
8511
|
let wsSocksProxy = undefined;
|
|
8507
8512
|
// ws proxy
|
|
8508
|
-
if (this.wsProxy
|
|
8513
|
+
if (this.valueIsDefined(this.wsProxy)) {
|
|
8509
8514
|
usedProxies.push('wsProxy');
|
|
8510
8515
|
wsProxy = this.wsProxy;
|
|
8511
8516
|
}
|
|
8512
|
-
if (this.ws_proxy
|
|
8517
|
+
if (this.valueIsDefined(this.ws_proxy)) {
|
|
8513
8518
|
usedProxies.push('ws_proxy');
|
|
8514
8519
|
wsProxy = this.ws_proxy;
|
|
8515
8520
|
}
|
|
8516
8521
|
// wss proxy
|
|
8517
|
-
if (this.wssProxy
|
|
8522
|
+
if (this.valueIsDefined(this.wssProxy)) {
|
|
8518
8523
|
usedProxies.push('wssProxy');
|
|
8519
8524
|
wssProxy = this.wssProxy;
|
|
8520
8525
|
}
|
|
8521
|
-
if (this.wss_proxy
|
|
8526
|
+
if (this.valueIsDefined(this.wss_proxy)) {
|
|
8522
8527
|
usedProxies.push('wss_proxy');
|
|
8523
8528
|
wssProxy = this.wss_proxy;
|
|
8524
8529
|
}
|
|
8525
8530
|
// ws socks proxy
|
|
8526
|
-
if (this.wsSocksProxy
|
|
8531
|
+
if (this.valueIsDefined(this.wsSocksProxy)) {
|
|
8527
8532
|
usedProxies.push('wsSocksProxy');
|
|
8528
8533
|
wsSocksProxy = this.wsSocksProxy;
|
|
8529
8534
|
}
|
|
8530
|
-
if (this.ws_socks_proxy
|
|
8535
|
+
if (this.valueIsDefined(this.ws_socks_proxy)) {
|
|
8531
8536
|
usedProxies.push('ws_socks_proxy');
|
|
8532
8537
|
wsSocksProxy = this.ws_socks_proxy;
|
|
8533
8538
|
}
|
|
@@ -17924,6 +17929,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
17924
17929
|
'margin/allPairs': 0.1,
|
|
17925
17930
|
'margin/priceIndex': 1,
|
|
17926
17931
|
// these endpoints require this.apiKey + this.secret
|
|
17932
|
+
'spot/delist-schedule': 0.1,
|
|
17927
17933
|
'asset/assetDividend': 1,
|
|
17928
17934
|
'asset/dribblet': 0.1,
|
|
17929
17935
|
'asset/transfer': 0.1,
|
|
@@ -27792,7 +27798,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
27792
27798
|
'has': {
|
|
27793
27799
|
'CORS': undefined,
|
|
27794
27800
|
'spot': true,
|
|
27795
|
-
'margin':
|
|
27801
|
+
'margin': false,
|
|
27796
27802
|
'swap': true,
|
|
27797
27803
|
'future': false,
|
|
27798
27804
|
'option': false,
|
|
@@ -27855,6 +27861,9 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
27855
27861
|
'account': 'https://open-api.{hostname}/openApi',
|
|
27856
27862
|
'copyTrading': 'https://open-api.{hostname}/openApi',
|
|
27857
27863
|
},
|
|
27864
|
+
'test': {
|
|
27865
|
+
'swap': 'https://open-api-vst.{hostname}/openApi', // only swap is really "test" but since the API keys are the same, we want to keep all the functionalities when the user enables the sandboxmode
|
|
27866
|
+
},
|
|
27858
27867
|
'www': 'https://bingx.com/',
|
|
27859
27868
|
'doc': 'https://bingx-api.github.io/docs/',
|
|
27860
27869
|
'referral': 'https://bingx.com/invite/OHETOM',
|
|
@@ -28188,6 +28197,10 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
28188
28197
|
if (!this.checkRequiredCredentials(false)) {
|
|
28189
28198
|
return undefined;
|
|
28190
28199
|
}
|
|
28200
|
+
const isSandbox = this.safeValue(this.options, 'sandboxMode', false);
|
|
28201
|
+
if (isSandbox) {
|
|
28202
|
+
return undefined;
|
|
28203
|
+
}
|
|
28191
28204
|
const response = await this.walletsV1PrivateGetCapitalConfigGetall(params);
|
|
28192
28205
|
//
|
|
28193
28206
|
// {
|
|
@@ -28427,7 +28440,11 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
28427
28440
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
28428
28441
|
* @returns {object[]} an array of objects representing market data
|
|
28429
28442
|
*/
|
|
28430
|
-
const requests = [this.
|
|
28443
|
+
const requests = [this.fetchSwapMarkets(params)];
|
|
28444
|
+
const isSandbox = this.safeValue(this.options, 'sandboxMode', false);
|
|
28445
|
+
if (!isSandbox) {
|
|
28446
|
+
requests.push(this.fetchSpotMarkets(params)); // sandbox is swap only
|
|
28447
|
+
}
|
|
28431
28448
|
const promises = await Promise.all(requests);
|
|
28432
28449
|
const spotMarkets = this.safeValue(promises, 0, []);
|
|
28433
28450
|
const swapMarkets = this.safeValue(promises, 1, []);
|
|
@@ -30858,6 +30875,21 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
30858
30875
|
// "txId": "0xb5ef8c13b968a406cc62a93a8bd80f9e9a906ef1b3fcf20a2e48573c17659268"
|
|
30859
30876
|
// }
|
|
30860
30877
|
//
|
|
30878
|
+
// withdraw
|
|
30879
|
+
//
|
|
30880
|
+
// {
|
|
30881
|
+
// "code":0,
|
|
30882
|
+
// "timestamp":1705274263621,
|
|
30883
|
+
// "data":{
|
|
30884
|
+
// "id":"1264246141278773252"
|
|
30885
|
+
// }
|
|
30886
|
+
// }
|
|
30887
|
+
//
|
|
30888
|
+
// parse withdraw-type output first...
|
|
30889
|
+
//
|
|
30890
|
+
const data = this.safeValue(transaction, 'data');
|
|
30891
|
+
const dataId = (data === undefined) ? undefined : this.safeString(data, 'id');
|
|
30892
|
+
const id = this.safeString(transaction, 'id', dataId);
|
|
30861
30893
|
const address = this.safeString(transaction, 'address');
|
|
30862
30894
|
const tag = this.safeString(transaction, 'addressTag');
|
|
30863
30895
|
let timestamp = this.safeInteger(transaction, 'insertTime');
|
|
@@ -30878,7 +30910,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
30878
30910
|
const type = (rawType === '0') ? 'deposit' : 'withdrawal';
|
|
30879
30911
|
return {
|
|
30880
30912
|
'info': transaction,
|
|
30881
|
-
'id':
|
|
30913
|
+
'id': id,
|
|
30882
30914
|
'txid': this.safeString(transaction, 'txId'),
|
|
30883
30915
|
'type': type,
|
|
30884
30916
|
'currency': code,
|
|
@@ -31512,6 +31544,10 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
31512
31544
|
const type = section[0];
|
|
31513
31545
|
const version = section[1];
|
|
31514
31546
|
const access = section[2];
|
|
31547
|
+
const isSandbox = this.safeValue(this.options, 'sandboxMode', false);
|
|
31548
|
+
if (isSandbox && (type !== 'swap')) {
|
|
31549
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' does not have a testnet/sandbox URL for ' + type + ' endpoints');
|
|
31550
|
+
}
|
|
31515
31551
|
let url = this.implodeHostname(this.urls['api'][type]);
|
|
31516
31552
|
if (type === 'spot' && version === 'v3') {
|
|
31517
31553
|
url += '/api';
|
|
@@ -31554,6 +31590,10 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
31554
31590
|
nonce() {
|
|
31555
31591
|
return this.milliseconds();
|
|
31556
31592
|
}
|
|
31593
|
+
setSandboxMode(enable) {
|
|
31594
|
+
super.setSandboxMode(enable);
|
|
31595
|
+
this.options['sandboxMode'] = enable;
|
|
31596
|
+
}
|
|
31557
31597
|
handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
|
|
31558
31598
|
if (response === undefined) {
|
|
31559
31599
|
return undefined; // fallback to default error handler
|
|
@@ -56768,8 +56808,8 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
56768
56808
|
if (fetchOHLCVOpenTimestamp) {
|
|
56769
56809
|
timestamp = this.sum(timestamp, duration);
|
|
56770
56810
|
}
|
|
56771
|
-
const
|
|
56772
|
-
request['startTime'] =
|
|
56811
|
+
const startTime = this.iso8601(timestamp);
|
|
56812
|
+
request['startTime'] = startTime; // starting date filter for results
|
|
56773
56813
|
}
|
|
56774
56814
|
else {
|
|
56775
56815
|
request['reverse'] = true;
|
|
@@ -57879,12 +57919,9 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
57879
57919
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' fetchDepositAddress requires params["network"]');
|
|
57880
57920
|
}
|
|
57881
57921
|
const currency = this.currency(code);
|
|
57882
|
-
let currencyId = currency['id'];
|
|
57883
|
-
const idLength = currencyId.length;
|
|
57884
|
-
currencyId = currencyId.slice(0, idLength - 1) + currencyId.slice(idLength - 1, idLength).toLowerCase(); // make the last letter lowercase
|
|
57885
57922
|
params = this.omit(params, 'network');
|
|
57886
57923
|
const request = {
|
|
57887
|
-
'currency':
|
|
57924
|
+
'currency': currency['id'],
|
|
57888
57925
|
'network': this.networkCodeToId(networkCode, currency['code']),
|
|
57889
57926
|
};
|
|
57890
57927
|
const response = await this.privateGetUserDepositAddress(this.extend(request, params));
|
|
@@ -99858,6 +99895,9 @@ class coinlist extends _abstract_coinlist_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
99858
99895
|
'v1/symbols/{symbol}/auctions/{auction_code}': 1,
|
|
99859
99896
|
'v1/time': 1,
|
|
99860
99897
|
'v1/assets': 1,
|
|
99898
|
+
'v1/leaderboard': 1,
|
|
99899
|
+
'v1/affiliate/{competition_code}': 1,
|
|
99900
|
+
'v1/competition/{competition_id}': 1,
|
|
99861
99901
|
},
|
|
99862
99902
|
},
|
|
99863
99903
|
'private': {
|
|
@@ -99865,6 +99905,7 @@ class coinlist extends _abstract_coinlist_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
99865
99905
|
'v1/fees': 1,
|
|
99866
99906
|
'v1/accounts': 1,
|
|
99867
99907
|
'v1/accounts/{trader_id}': 1,
|
|
99908
|
+
'v1/accounts/{trader_id}/alias': 1,
|
|
99868
99909
|
'v1/accounts/{trader_id}/ledger': 1,
|
|
99869
99910
|
'v1/accounts/{trader_id}/wallets': 1,
|
|
99870
99911
|
'v1/accounts/{trader_id}/wallet-ledger': 1,
|
|
@@ -99877,7 +99918,9 @@ class coinlist extends _abstract_coinlist_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
99877
99918
|
'v1/balances': 1,
|
|
99878
99919
|
'v1/transfers': 1,
|
|
99879
99920
|
'v1/user': 1,
|
|
99880
|
-
'v1/credits': 1,
|
|
99921
|
+
'v1/credits': 1,
|
|
99922
|
+
'v1/positions': 1,
|
|
99923
|
+
'v1/accounts/{trader_id}/competitions': 1,
|
|
99881
99924
|
},
|
|
99882
99925
|
'post': {
|
|
99883
99926
|
'v1/keys': 1,
|
|
@@ -99888,7 +99931,9 @@ class coinlist extends _abstract_coinlist_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
99888
99931
|
'v1/transfers/from-wallet': 1,
|
|
99889
99932
|
'v1/transfers/internal-transfer': 1,
|
|
99890
99933
|
'v1/transfers/withdrawal-request': 1,
|
|
99891
|
-
'v1/orders/bulk': 1,
|
|
99934
|
+
'v1/orders/bulk': 1,
|
|
99935
|
+
'v1/accounts/{trader_id}/competitions': 1,
|
|
99936
|
+
'v1/accounts/{trader_id}/create-competition': 1,
|
|
99892
99937
|
},
|
|
99893
99938
|
'patch': {
|
|
99894
99939
|
'v1/orders/{order_id}': 1,
|
|
@@ -103124,7 +103169,7 @@ class coinone extends _abstract_coinone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
103124
103169
|
'setLeverage': false,
|
|
103125
103170
|
'setMarginMode': false,
|
|
103126
103171
|
'setPositionMode': false,
|
|
103127
|
-
'ws':
|
|
103172
|
+
'ws': true,
|
|
103128
103173
|
},
|
|
103129
103174
|
'urls': {
|
|
103130
103175
|
'logo': 'https://user-images.githubusercontent.com/1294454/38003300-adc12fba-323f-11e8-8525-725f53c4a659.jpg',
|
|
@@ -105239,10 +105284,10 @@ class coinsph extends _abstract_coinsph_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
105239
105284
|
'currency': this.safeCurrencyCode(feeCurrencyId),
|
|
105240
105285
|
};
|
|
105241
105286
|
}
|
|
105242
|
-
const isBuyer = this.
|
|
105287
|
+
const isBuyer = this.safeValue2(trade, 'isBuyer', 'isBuyerMaker', undefined);
|
|
105243
105288
|
let side = undefined;
|
|
105244
105289
|
if (isBuyer !== undefined) {
|
|
105245
|
-
side = (isBuyer ===
|
|
105290
|
+
side = (isBuyer === true) ? 'buy' : 'sell';
|
|
105246
105291
|
}
|
|
105247
105292
|
const isMaker = this.safeString2(trade, 'isMaker', undefined);
|
|
105248
105293
|
let takerOrMaker = undefined;
|
|
@@ -202601,12 +202646,14 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
202601
202646
|
* @description fetch all unfilled currently open orders
|
|
202602
202647
|
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#queryopenorder
|
|
202603
202648
|
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md
|
|
202649
|
+
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#spotListAllOpenOrder
|
|
202604
202650
|
* @param {string} symbol unified market symbol
|
|
202605
202651
|
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
202606
202652
|
* @param {int} [limit] the maximum number of open order structures to retrieve
|
|
202607
202653
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
202608
202654
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
202609
202655
|
*/
|
|
202656
|
+
await this.loadMarkets();
|
|
202610
202657
|
if (symbol === undefined) {
|
|
202611
202658
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument');
|
|
202612
202659
|
}
|
|
@@ -202648,20 +202695,25 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
202648
202695
|
* @name phemex#fetchClosedOrders
|
|
202649
202696
|
* @description fetches information on multiple closed orders made by the user
|
|
202650
202697
|
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#queryorder
|
|
202698
|
+
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#queryorder
|
|
202699
|
+
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedgedd-Perpetual-API.md#query-closed-orders-by-symbol
|
|
202700
|
+
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#spotDataOrdersByIds
|
|
202651
202701
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
202652
202702
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
202653
202703
|
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
202654
202704
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
202705
|
+
* @param {string} [params.settle] the settlement currency to fetch orders for
|
|
202655
202706
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
202656
202707
|
*/
|
|
202657
|
-
if (symbol === undefined) {
|
|
202658
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchClosedOrders() requires a symbol argument');
|
|
202659
|
-
}
|
|
202660
202708
|
await this.loadMarkets();
|
|
202661
|
-
|
|
202662
|
-
|
|
202663
|
-
|
|
202664
|
-
}
|
|
202709
|
+
let market = undefined;
|
|
202710
|
+
if (symbol !== undefined) {
|
|
202711
|
+
market = this.market(symbol);
|
|
202712
|
+
}
|
|
202713
|
+
const request = {};
|
|
202714
|
+
if (market !== undefined) {
|
|
202715
|
+
request['symbol'] = market['id'];
|
|
202716
|
+
}
|
|
202665
202717
|
if (since !== undefined) {
|
|
202666
202718
|
request['start'] = since;
|
|
202667
202719
|
}
|
|
@@ -202669,8 +202721,8 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
202669
202721
|
request['limit'] = limit;
|
|
202670
202722
|
}
|
|
202671
202723
|
let response = undefined;
|
|
202672
|
-
if (market
|
|
202673
|
-
request['currency'] =
|
|
202724
|
+
if ((symbol === undefined) || (this.safeString(market, 'settle') === 'USDT')) {
|
|
202725
|
+
request['currency'] = this.safeString(params, 'settle', 'USDT');
|
|
202674
202726
|
response = await this.privateGetExchangeOrderV2OrderList(this.extend(request, params));
|
|
202675
202727
|
}
|
|
202676
202728
|
else if (market['swap']) {
|
|
@@ -202731,23 +202783,25 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
202731
202783
|
* @description fetch all trades made by the user
|
|
202732
202784
|
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#query-user-trade
|
|
202733
202785
|
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#query-user-trade
|
|
202786
|
+
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#spotDataTradesHist
|
|
202734
202787
|
* @param {string} symbol unified market symbol
|
|
202735
202788
|
* @param {int} [since] the earliest time in ms to fetch trades for
|
|
202736
202789
|
* @param {int} [limit] the maximum number of trades structures to retrieve
|
|
202737
202790
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
202738
202791
|
* @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
|
|
202739
202792
|
*/
|
|
202740
|
-
if (symbol === undefined) {
|
|
202741
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
|
|
202742
|
-
}
|
|
202743
202793
|
await this.loadMarkets();
|
|
202744
|
-
|
|
202794
|
+
let market = undefined;
|
|
202795
|
+
if (symbol !== undefined) {
|
|
202796
|
+
market = this.market(symbol);
|
|
202797
|
+
}
|
|
202745
202798
|
const request = {};
|
|
202746
202799
|
if (limit !== undefined) {
|
|
202747
202800
|
limit = Math.min(200, limit);
|
|
202748
202801
|
request['limit'] = limit;
|
|
202749
202802
|
}
|
|
202750
|
-
|
|
202803
|
+
const isUSDTSettled = (symbol === undefined) || (this.safeString(market, 'settle') === 'USDT');
|
|
202804
|
+
if (isUSDTSettled) {
|
|
202751
202805
|
request['currency'] = 'USDT';
|
|
202752
202806
|
request['offset'] = 0;
|
|
202753
202807
|
if (limit === undefined) {
|
|
@@ -202760,18 +202814,12 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
202760
202814
|
if (since !== undefined) {
|
|
202761
202815
|
request['start'] = since;
|
|
202762
202816
|
}
|
|
202763
|
-
if (market['swap'] && (limit !== undefined)) {
|
|
202764
|
-
request['limit'] = limit;
|
|
202765
|
-
}
|
|
202766
|
-
const isUSDTSettled = market['settle'] === 'USDT';
|
|
202767
202817
|
let response = undefined;
|
|
202768
|
-
if (
|
|
202769
|
-
|
|
202770
|
-
|
|
202771
|
-
|
|
202772
|
-
|
|
202773
|
-
response = await this.privateGetExchangeOrderTrade(this.extend(request, params));
|
|
202774
|
-
}
|
|
202818
|
+
if (isUSDTSettled) {
|
|
202819
|
+
response = await this.privateGetExchangeOrderV2TradingList(this.extend(request, params));
|
|
202820
|
+
}
|
|
202821
|
+
else if (market['swap']) {
|
|
202822
|
+
response = await this.privateGetExchangeOrderTrade(this.extend(request, params));
|
|
202775
202823
|
}
|
|
202776
202824
|
else {
|
|
202777
202825
|
response = await this.privateGetExchangeSpotOrderTrades(this.extend(request, params));
|
|
@@ -211338,7 +211386,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
211338
211386
|
const isSpot = ((client.url.indexOf('/stream') > -1) || (client.url.indexOf('/testnet.binance') > -1));
|
|
211339
211387
|
const marketType = (isSpot) ? 'spot' : 'contract';
|
|
211340
211388
|
let rawTickers = [];
|
|
211341
|
-
const newTickers =
|
|
211389
|
+
const newTickers = {};
|
|
211342
211390
|
if (Array.isArray(message)) {
|
|
211343
211391
|
rawTickers = message;
|
|
211344
211392
|
}
|
|
@@ -211350,7 +211398,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
211350
211398
|
const result = this.parseWsTicker(ticker, marketType);
|
|
211351
211399
|
const symbol = result['symbol'];
|
|
211352
211400
|
this.tickers[symbol] = result;
|
|
211353
|
-
newTickers
|
|
211401
|
+
newTickers[symbol] = result;
|
|
211354
211402
|
}
|
|
211355
211403
|
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
211356
211404
|
for (let i = 0; i < messageHashes.length; i++) {
|
|
@@ -231088,6 +231136,425 @@ class coinex extends _coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
231088
231136
|
}
|
|
231089
231137
|
|
|
231090
231138
|
|
|
231139
|
+
/***/ }),
|
|
231140
|
+
|
|
231141
|
+
/***/ 5208:
|
|
231142
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
231143
|
+
|
|
231144
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
231145
|
+
/* harmony export */ Z: () => (/* binding */ coinone)
|
|
231146
|
+
/* harmony export */ });
|
|
231147
|
+
/* harmony import */ var _coinone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7811);
|
|
231148
|
+
/* harmony import */ var _base_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6689);
|
|
231149
|
+
/* harmony import */ var _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3020);
|
|
231150
|
+
// ---------------------------------------------------------------------------
|
|
231151
|
+
|
|
231152
|
+
|
|
231153
|
+
|
|
231154
|
+
// ---------------------------------------------------------------------------
|
|
231155
|
+
class coinone extends _coinone_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
231156
|
+
describe() {
|
|
231157
|
+
return this.deepExtend(super.describe(), {
|
|
231158
|
+
'has': {
|
|
231159
|
+
'ws': true,
|
|
231160
|
+
'watchOrderBook': true,
|
|
231161
|
+
'watchOrders': false,
|
|
231162
|
+
'watchTrades': true,
|
|
231163
|
+
'watchOHLCV': false,
|
|
231164
|
+
'watchTicker': true,
|
|
231165
|
+
'watchTickers': false,
|
|
231166
|
+
},
|
|
231167
|
+
'urls': {
|
|
231168
|
+
'api': {
|
|
231169
|
+
'ws': 'wss://stream.coinone.co.kr',
|
|
231170
|
+
},
|
|
231171
|
+
},
|
|
231172
|
+
'options': {
|
|
231173
|
+
'expiresIn': '',
|
|
231174
|
+
'userId': '',
|
|
231175
|
+
'wsSessionToken': '',
|
|
231176
|
+
'watchOrderBook': {
|
|
231177
|
+
'snapshotDelay': 6,
|
|
231178
|
+
'snapshotMaxRetries': 3,
|
|
231179
|
+
},
|
|
231180
|
+
'tradesLimit': 1000,
|
|
231181
|
+
'OHLCVLimit': 1000,
|
|
231182
|
+
},
|
|
231183
|
+
'exceptions': {
|
|
231184
|
+
'exact': {
|
|
231185
|
+
'4009': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.AuthenticationError,
|
|
231186
|
+
},
|
|
231187
|
+
},
|
|
231188
|
+
'streaming': {
|
|
231189
|
+
'ping': this.ping,
|
|
231190
|
+
'keepAlive': 20000,
|
|
231191
|
+
},
|
|
231192
|
+
});
|
|
231193
|
+
}
|
|
231194
|
+
async watchOrderBook(symbol, limit = undefined, params = {}) {
|
|
231195
|
+
/**
|
|
231196
|
+
* @method
|
|
231197
|
+
* @name coinone#watchOrderBook
|
|
231198
|
+
* @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
231199
|
+
* @see https://docs.coinone.co.kr/reference/public-websocket-orderbook
|
|
231200
|
+
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
231201
|
+
* @param {int} [limit] the maximum amount of order book entries to return
|
|
231202
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
231203
|
+
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
231204
|
+
*/
|
|
231205
|
+
await this.loadMarkets();
|
|
231206
|
+
const market = this.market(symbol);
|
|
231207
|
+
const messageHash = 'orderbook:' + market['symbol'];
|
|
231208
|
+
const url = this.urls['api']['ws'];
|
|
231209
|
+
const request = {
|
|
231210
|
+
'request_type': 'SUBSCRIBE',
|
|
231211
|
+
'channel': 'ORDERBOOK',
|
|
231212
|
+
'topic': {
|
|
231213
|
+
'quote_currency': market['quote'],
|
|
231214
|
+
'target_currency': market['base'],
|
|
231215
|
+
},
|
|
231216
|
+
};
|
|
231217
|
+
const message = this.extend(request, params);
|
|
231218
|
+
const orderbook = await this.watch(url, messageHash, message, messageHash);
|
|
231219
|
+
return orderbook.limit();
|
|
231220
|
+
}
|
|
231221
|
+
handleOrderBook(client, message) {
|
|
231222
|
+
//
|
|
231223
|
+
// {
|
|
231224
|
+
// "response_type": "DATA",
|
|
231225
|
+
// "channel": "ORDERBOOK",
|
|
231226
|
+
// "data": {
|
|
231227
|
+
// "quote_currency": "KRW",
|
|
231228
|
+
// "target_currency": "BTC",
|
|
231229
|
+
// "timestamp": 1705288918649,
|
|
231230
|
+
// "id": "1705288918649001",
|
|
231231
|
+
// "asks": [
|
|
231232
|
+
// {
|
|
231233
|
+
// "price": "58412000",
|
|
231234
|
+
// "qty": "0.59919807"
|
|
231235
|
+
// }
|
|
231236
|
+
// ],
|
|
231237
|
+
// "bids": [
|
|
231238
|
+
// {
|
|
231239
|
+
// "price": "58292000",
|
|
231240
|
+
// "qty": "0.1045"
|
|
231241
|
+
// }
|
|
231242
|
+
// ]
|
|
231243
|
+
// }
|
|
231244
|
+
// }
|
|
231245
|
+
//
|
|
231246
|
+
const data = this.safeValue(message, 'data', {});
|
|
231247
|
+
const baseId = this.safeStringUpper(data, 'target_currency');
|
|
231248
|
+
const quoteId = this.safeStringUpper(data, 'quote_currency');
|
|
231249
|
+
const base = this.safeCurrencyCode(baseId);
|
|
231250
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
231251
|
+
const symbol = this.symbol(base + '/' + quote);
|
|
231252
|
+
const timestamp = this.safeInteger(data, 'timestamp');
|
|
231253
|
+
let orderbook = this.safeValue(this.orderbooks, symbol);
|
|
231254
|
+
if (orderbook === undefined) {
|
|
231255
|
+
orderbook = this.orderBook();
|
|
231256
|
+
}
|
|
231257
|
+
else {
|
|
231258
|
+
orderbook.reset();
|
|
231259
|
+
}
|
|
231260
|
+
orderbook['symbol'] = symbol;
|
|
231261
|
+
const asks = this.safeValue(data, 'asks', []);
|
|
231262
|
+
const bids = this.safeValue(data, 'bids', []);
|
|
231263
|
+
this.handleDeltas(orderbook['asks'], asks);
|
|
231264
|
+
this.handleDeltas(orderbook['bids'], bids);
|
|
231265
|
+
orderbook['timestamp'] = timestamp;
|
|
231266
|
+
orderbook['datetime'] = this.iso8601(timestamp);
|
|
231267
|
+
const messageHash = 'orderbook:' + symbol;
|
|
231268
|
+
this.orderbooks[symbol] = orderbook;
|
|
231269
|
+
client.resolve(orderbook, messageHash);
|
|
231270
|
+
}
|
|
231271
|
+
handleDelta(bookside, delta) {
|
|
231272
|
+
const bidAsk = this.parseBidAsk(delta, 'price', 'qty');
|
|
231273
|
+
bookside.storeArray(bidAsk);
|
|
231274
|
+
}
|
|
231275
|
+
async watchTicker(symbol, params = {}) {
|
|
231276
|
+
/**
|
|
231277
|
+
* @method
|
|
231278
|
+
* @name coinone#watchTicker
|
|
231279
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
231280
|
+
* @see https://docs.coinone.co.kr/reference/public-websocket-ticker
|
|
231281
|
+
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
231282
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
231283
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
231284
|
+
*/
|
|
231285
|
+
await this.loadMarkets();
|
|
231286
|
+
const market = this.market(symbol);
|
|
231287
|
+
const messageHash = 'ticker:' + market['symbol'];
|
|
231288
|
+
const url = this.urls['api']['ws'];
|
|
231289
|
+
const request = {
|
|
231290
|
+
'request_type': 'SUBSCRIBE',
|
|
231291
|
+
'channel': 'TICKER',
|
|
231292
|
+
'topic': {
|
|
231293
|
+
'quote_currency': market['quote'],
|
|
231294
|
+
'target_currency': market['base'],
|
|
231295
|
+
},
|
|
231296
|
+
};
|
|
231297
|
+
const message = this.extend(request, params);
|
|
231298
|
+
return await this.watch(url, messageHash, message, messageHash);
|
|
231299
|
+
}
|
|
231300
|
+
handleTicker(client, message) {
|
|
231301
|
+
//
|
|
231302
|
+
// {
|
|
231303
|
+
// "response_type": "DATA",
|
|
231304
|
+
// "channel": "TICKER",
|
|
231305
|
+
// "data": {
|
|
231306
|
+
// "quote_currency": "KRW",
|
|
231307
|
+
// "target_currency": "BTC",
|
|
231308
|
+
// "timestamp": 1705301117198,
|
|
231309
|
+
// "quote_volume": "19521465345.504",
|
|
231310
|
+
// "target_volume": "334.81445168",
|
|
231311
|
+
// "high": "58710000",
|
|
231312
|
+
// "low": "57276000",
|
|
231313
|
+
// "first": "57293000",
|
|
231314
|
+
// "last": "58532000",
|
|
231315
|
+
// "volume_power": "100",
|
|
231316
|
+
// "ask_best_price": "58537000",
|
|
231317
|
+
// "ask_best_qty": "0.1961",
|
|
231318
|
+
// "bid_best_price": "58532000",
|
|
231319
|
+
// "bid_best_qty": "0.00009258",
|
|
231320
|
+
// "id": "1705301117198001",
|
|
231321
|
+
// "yesterday_high": "59140000",
|
|
231322
|
+
// "yesterday_low": "57273000",
|
|
231323
|
+
// "yesterday_first": "58897000",
|
|
231324
|
+
// "yesterday_last": "57301000",
|
|
231325
|
+
// "yesterday_quote_volume": "12967227517.4262",
|
|
231326
|
+
// "yesterday_target_volume": "220.09232233"
|
|
231327
|
+
// }
|
|
231328
|
+
// }
|
|
231329
|
+
//
|
|
231330
|
+
const data = this.safeValue(message, 'data', {});
|
|
231331
|
+
const ticker = this.parseWsTicker(data);
|
|
231332
|
+
const symbol = ticker['symbol'];
|
|
231333
|
+
this.tickers[symbol] = ticker;
|
|
231334
|
+
const messageHash = 'ticker:' + symbol;
|
|
231335
|
+
client.resolve(this.tickers[symbol], messageHash);
|
|
231336
|
+
}
|
|
231337
|
+
parseWsTicker(ticker, market = undefined) {
|
|
231338
|
+
//
|
|
231339
|
+
// {
|
|
231340
|
+
// "quote_currency": "KRW",
|
|
231341
|
+
// "target_currency": "BTC",
|
|
231342
|
+
// "timestamp": 1705301117198,
|
|
231343
|
+
// "quote_volume": "19521465345.504",
|
|
231344
|
+
// "target_volume": "334.81445168",
|
|
231345
|
+
// "high": "58710000",
|
|
231346
|
+
// "low": "57276000",
|
|
231347
|
+
// "first": "57293000",
|
|
231348
|
+
// "last": "58532000",
|
|
231349
|
+
// "volume_power": "100",
|
|
231350
|
+
// "ask_best_price": "58537000",
|
|
231351
|
+
// "ask_best_qty": "0.1961",
|
|
231352
|
+
// "bid_best_price": "58532000",
|
|
231353
|
+
// "bid_best_qty": "0.00009258",
|
|
231354
|
+
// "id": "1705301117198001",
|
|
231355
|
+
// "yesterday_high": "59140000",
|
|
231356
|
+
// "yesterday_low": "57273000",
|
|
231357
|
+
// "yesterday_first": "58897000",
|
|
231358
|
+
// "yesterday_last": "57301000",
|
|
231359
|
+
// "yesterday_quote_volume": "12967227517.4262",
|
|
231360
|
+
// "yesterday_target_volume": "220.09232233"
|
|
231361
|
+
// }
|
|
231362
|
+
//
|
|
231363
|
+
const timestamp = this.safeInteger(ticker, 'timestamp');
|
|
231364
|
+
const last = this.safeString(ticker, 'last');
|
|
231365
|
+
const baseId = this.safeString(ticker, 'target_currency');
|
|
231366
|
+
const quoteId = this.safeString(ticker, 'quote_currency');
|
|
231367
|
+
const base = this.safeCurrencyCode(baseId);
|
|
231368
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
231369
|
+
const symbol = this.symbol(base + '/' + quote);
|
|
231370
|
+
return this.safeTicker({
|
|
231371
|
+
'symbol': symbol,
|
|
231372
|
+
'timestamp': timestamp,
|
|
231373
|
+
'datetime': this.iso8601(timestamp),
|
|
231374
|
+
'high': this.safeString(ticker, 'high'),
|
|
231375
|
+
'low': this.safeString(ticker, 'low'),
|
|
231376
|
+
'bid': this.safeNumber(ticker, 'bid_best_price'),
|
|
231377
|
+
'bidVolume': this.safeNumber(ticker, 'bid_best_qty'),
|
|
231378
|
+
'ask': this.safeNumber(ticker, 'ask_best_price'),
|
|
231379
|
+
'askVolume': this.safeNumber(ticker, 'ask_best_qty'),
|
|
231380
|
+
'vwap': undefined,
|
|
231381
|
+
'open': this.safeString(ticker, 'first'),
|
|
231382
|
+
'close': last,
|
|
231383
|
+
'last': last,
|
|
231384
|
+
'previousClose': undefined,
|
|
231385
|
+
'change': undefined,
|
|
231386
|
+
'percentage': undefined,
|
|
231387
|
+
'average': undefined,
|
|
231388
|
+
'baseVolume': this.safeString(ticker, 'target_volume'),
|
|
231389
|
+
'quoteVolume': this.safeString(ticker, 'quote_volume'),
|
|
231390
|
+
'info': ticker,
|
|
231391
|
+
}, market);
|
|
231392
|
+
}
|
|
231393
|
+
async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
231394
|
+
/**
|
|
231395
|
+
* @method
|
|
231396
|
+
* @name coinone#watchTrades
|
|
231397
|
+
* @description watches information on multiple trades made in a market
|
|
231398
|
+
* @see https://docs.coinone.co.kr/reference/public-websocket-trade
|
|
231399
|
+
* @param {string} symbol unified market symbol of the market trades were made in
|
|
231400
|
+
* @param {int} [since] the earliest time in ms to fetch trades for
|
|
231401
|
+
* @param {int} [limit] the maximum number of trade structures to retrieve
|
|
231402
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
231403
|
+
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure
|
|
231404
|
+
*/
|
|
231405
|
+
await this.loadMarkets();
|
|
231406
|
+
const market = this.market(symbol);
|
|
231407
|
+
const messageHash = 'trade:' + market['symbol'];
|
|
231408
|
+
const url = this.urls['api']['ws'];
|
|
231409
|
+
const request = {
|
|
231410
|
+
'request_type': 'SUBSCRIBE',
|
|
231411
|
+
'channel': 'TRADE',
|
|
231412
|
+
'topic': {
|
|
231413
|
+
'quote_currency': market['quote'],
|
|
231414
|
+
'target_currency': market['base'],
|
|
231415
|
+
},
|
|
231416
|
+
};
|
|
231417
|
+
const message = this.extend(request, params);
|
|
231418
|
+
const trades = await this.watch(url, messageHash, message, messageHash);
|
|
231419
|
+
if (this.newUpdates) {
|
|
231420
|
+
limit = trades.getLimit(market['symbol'], limit);
|
|
231421
|
+
}
|
|
231422
|
+
return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
|
|
231423
|
+
}
|
|
231424
|
+
handleTrades(client, message) {
|
|
231425
|
+
//
|
|
231426
|
+
// {
|
|
231427
|
+
// "response_type": "DATA",
|
|
231428
|
+
// "channel": "TRADE",
|
|
231429
|
+
// "data": {
|
|
231430
|
+
// "quote_currency": "KRW",
|
|
231431
|
+
// "target_currency": "BTC",
|
|
231432
|
+
// "id": "1705303667916001",
|
|
231433
|
+
// "timestamp": 1705303667916,
|
|
231434
|
+
// "price": "58490000",
|
|
231435
|
+
// "qty": "0.0008",
|
|
231436
|
+
// "is_seller_maker": false
|
|
231437
|
+
// }
|
|
231438
|
+
// }
|
|
231439
|
+
//
|
|
231440
|
+
const data = this.safeValue(message, 'data', {});
|
|
231441
|
+
const trade = this.parseWsTrade(data);
|
|
231442
|
+
const symbol = trade['symbol'];
|
|
231443
|
+
let stored = this.safeValue(this.trades, symbol);
|
|
231444
|
+
if (stored === undefined) {
|
|
231445
|
+
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
231446
|
+
stored = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCache */ .ZL(limit);
|
|
231447
|
+
this.trades[symbol] = stored;
|
|
231448
|
+
}
|
|
231449
|
+
stored.append(trade);
|
|
231450
|
+
const messageHash = 'trade:' + symbol;
|
|
231451
|
+
client.resolve(stored, messageHash);
|
|
231452
|
+
}
|
|
231453
|
+
parseWsTrade(trade, market = undefined) {
|
|
231454
|
+
//
|
|
231455
|
+
// {
|
|
231456
|
+
// "quote_currency": "KRW",
|
|
231457
|
+
// "target_currency": "BTC",
|
|
231458
|
+
// "id": "1705303667916001",
|
|
231459
|
+
// "timestamp": 1705303667916,
|
|
231460
|
+
// "price": "58490000",
|
|
231461
|
+
// "qty": "0.0008",
|
|
231462
|
+
// "is_seller_maker": false
|
|
231463
|
+
// }
|
|
231464
|
+
//
|
|
231465
|
+
const baseId = this.safeStringUpper(trade, 'target_currency');
|
|
231466
|
+
const quoteId = this.safeStringUpper(trade, 'quote_currency');
|
|
231467
|
+
const base = this.safeCurrencyCode(baseId);
|
|
231468
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
231469
|
+
const symbol = base + '/' + quote;
|
|
231470
|
+
const timestamp = this.safeInteger(trade, 'timestamp');
|
|
231471
|
+
market = this.safeMarket(symbol, market);
|
|
231472
|
+
const isSellerMaker = this.safeValue(trade, 'is_seller_maker');
|
|
231473
|
+
let side = undefined;
|
|
231474
|
+
if (isSellerMaker !== undefined) {
|
|
231475
|
+
side = isSellerMaker ? 'sell' : 'buy';
|
|
231476
|
+
}
|
|
231477
|
+
const priceString = this.safeString(trade, 'price');
|
|
231478
|
+
const amountString = this.safeString(trade, 'qty');
|
|
231479
|
+
return this.safeTrade({
|
|
231480
|
+
'id': this.safeString(trade, 'id'),
|
|
231481
|
+
'info': trade,
|
|
231482
|
+
'timestamp': timestamp,
|
|
231483
|
+
'datetime': this.iso8601(timestamp),
|
|
231484
|
+
'order': undefined,
|
|
231485
|
+
'symbol': market['symbol'],
|
|
231486
|
+
'type': undefined,
|
|
231487
|
+
'side': side,
|
|
231488
|
+
'takerOrMaker': undefined,
|
|
231489
|
+
'price': priceString,
|
|
231490
|
+
'amount': amountString,
|
|
231491
|
+
'cost': undefined,
|
|
231492
|
+
'fee': undefined,
|
|
231493
|
+
}, market);
|
|
231494
|
+
}
|
|
231495
|
+
handleErrorMessage(client, message) {
|
|
231496
|
+
//
|
|
231497
|
+
// {
|
|
231498
|
+
// "response_type": "ERROR",
|
|
231499
|
+
// "error_code": 160012,
|
|
231500
|
+
// "message": "Invalid Topic"
|
|
231501
|
+
// }
|
|
231502
|
+
//
|
|
231503
|
+
const type = this.safeString(message, 'response_type', '');
|
|
231504
|
+
if (type === 'ERROR') {
|
|
231505
|
+
return true;
|
|
231506
|
+
}
|
|
231507
|
+
return false;
|
|
231508
|
+
}
|
|
231509
|
+
handleMessage(client, message) {
|
|
231510
|
+
if (this.handleErrorMessage(client, message)) {
|
|
231511
|
+
return;
|
|
231512
|
+
}
|
|
231513
|
+
const type = this.safeString(message, 'response_type');
|
|
231514
|
+
if (type === 'PONG') {
|
|
231515
|
+
this.handlePong(client, message);
|
|
231516
|
+
return;
|
|
231517
|
+
}
|
|
231518
|
+
if (type === 'DATA') {
|
|
231519
|
+
const topic = this.safeString(message, 'channel', '');
|
|
231520
|
+
const methods = {
|
|
231521
|
+
'ORDERBOOK': this.handleOrderBook,
|
|
231522
|
+
'TICKER': this.handleTicker,
|
|
231523
|
+
'TRADE': this.handleTrades,
|
|
231524
|
+
};
|
|
231525
|
+
const exacMethod = this.safeValue(methods, topic);
|
|
231526
|
+
if (exacMethod !== undefined) {
|
|
231527
|
+
exacMethod.call(this, client, message);
|
|
231528
|
+
return;
|
|
231529
|
+
}
|
|
231530
|
+
const keys = Object.keys(methods);
|
|
231531
|
+
for (let i = 0; i < keys.length; i++) {
|
|
231532
|
+
const key = keys[i];
|
|
231533
|
+
if (topic.indexOf(keys[i]) >= 0) {
|
|
231534
|
+
const method = methods[key];
|
|
231535
|
+
method.call(this, client, message);
|
|
231536
|
+
return;
|
|
231537
|
+
}
|
|
231538
|
+
}
|
|
231539
|
+
}
|
|
231540
|
+
}
|
|
231541
|
+
ping(client) {
|
|
231542
|
+
return {
|
|
231543
|
+
'request_type': 'PING',
|
|
231544
|
+
};
|
|
231545
|
+
}
|
|
231546
|
+
handlePong(client, message) {
|
|
231547
|
+
//
|
|
231548
|
+
// {
|
|
231549
|
+
// "response_type":"PONG"
|
|
231550
|
+
// }
|
|
231551
|
+
//
|
|
231552
|
+
client.lastPong = this.milliseconds();
|
|
231553
|
+
return message;
|
|
231554
|
+
}
|
|
231555
|
+
}
|
|
231556
|
+
|
|
231557
|
+
|
|
231091
231558
|
/***/ }),
|
|
231092
231559
|
|
|
231093
231560
|
/***/ 6820:
|
|
@@ -236515,7 +236982,8 @@ class hitbtc extends _hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
236515
236982
|
'symbols': [market['id']],
|
|
236516
236983
|
},
|
|
236517
236984
|
};
|
|
236518
|
-
|
|
236985
|
+
const result = await this.subscribePublic(name, [symbol], this.deepExtend(request, params));
|
|
236986
|
+
return this.safeValue(result, symbol);
|
|
236519
236987
|
}
|
|
236520
236988
|
async watchTickers(symbols = undefined, params = {}) {
|
|
236521
236989
|
/**
|
|
@@ -236598,16 +237066,16 @@ class hitbtc extends _hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
236598
237066
|
const data = this.safeValue(message, 'data', {});
|
|
236599
237067
|
const marketIds = Object.keys(data);
|
|
236600
237068
|
const channel = this.safeString(message, 'ch');
|
|
236601
|
-
const newTickers =
|
|
237069
|
+
const newTickers = {};
|
|
236602
237070
|
for (let i = 0; i < marketIds.length; i++) {
|
|
236603
237071
|
const marketId = marketIds[i];
|
|
236604
237072
|
const market = this.safeMarket(marketId);
|
|
236605
237073
|
const symbol = market['symbol'];
|
|
236606
237074
|
const ticker = this.parseWsTicker(data[marketId], market);
|
|
236607
237075
|
this.tickers[symbol] = ticker;
|
|
236608
|
-
newTickers
|
|
237076
|
+
newTickers[symbol] = ticker;
|
|
236609
237077
|
const messageHash = channel + '::' + symbol;
|
|
236610
|
-
client.resolve(
|
|
237078
|
+
client.resolve(newTickers, messageHash);
|
|
236611
237079
|
}
|
|
236612
237080
|
const messageHashes = this.findMessageHashes(client, channel + '::');
|
|
236613
237081
|
for (let i = 0; i < messageHashes.length; i++) {
|
|
@@ -243713,7 +244181,13 @@ class krakenfutures extends _krakenfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
243713
244181
|
const name = this.safeString2(params, 'method', 'watchTickerMethod', method);
|
|
243714
244182
|
params = this.omit(params, ['watchTickerMethod', 'method']);
|
|
243715
244183
|
symbols = this.marketSymbols(symbols, undefined, false);
|
|
243716
|
-
|
|
244184
|
+
const ticker = await this.subscribePublic(name, symbols, params);
|
|
244185
|
+
if (this.newUpdates) {
|
|
244186
|
+
const tickers = {};
|
|
244187
|
+
tickers[ticker['symbol']] = ticker;
|
|
244188
|
+
return tickers;
|
|
244189
|
+
}
|
|
244190
|
+
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
243717
244191
|
}
|
|
243718
244192
|
async watchTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
243719
244193
|
/**
|
|
@@ -245301,7 +245775,9 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
245301
245775
|
const messageHash = 'ticker:' + symbol;
|
|
245302
245776
|
client.resolve(ticker, messageHash);
|
|
245303
245777
|
// watchTickers
|
|
245304
|
-
|
|
245778
|
+
const allTickers = {};
|
|
245779
|
+
allTickers[symbol] = ticker;
|
|
245780
|
+
client.resolve(allTickers, 'tickers');
|
|
245305
245781
|
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
245306
245782
|
for (let i = 0; i < messageHashes.length; i++) {
|
|
245307
245783
|
const currentMessageHash = messageHashes[i];
|
|
@@ -254001,7 +254477,7 @@ class poloniex extends _poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
254001
254477
|
// }
|
|
254002
254478
|
//
|
|
254003
254479
|
const data = this.safeValue(message, 'data', []);
|
|
254004
|
-
const newTickers =
|
|
254480
|
+
const newTickers = {};
|
|
254005
254481
|
for (let i = 0; i < data.length; i++) {
|
|
254006
254482
|
const item = data[i];
|
|
254007
254483
|
const marketId = this.safeString(item, 'symbol');
|
|
@@ -254009,7 +254485,7 @@ class poloniex extends _poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
254009
254485
|
const ticker = this.parseTicker(item);
|
|
254010
254486
|
const symbol = ticker['symbol'];
|
|
254011
254487
|
this.tickers[symbol] = ticker;
|
|
254012
|
-
newTickers
|
|
254488
|
+
newTickers[symbol] = ticker;
|
|
254013
254489
|
}
|
|
254014
254490
|
}
|
|
254015
254491
|
const messageHashes = this.findMessageHashes(client, 'ticker::');
|
|
@@ -293450,39 +293926,39 @@ var __webpack_exports__ = {};
|
|
|
293450
293926
|
(() => {
|
|
293451
293927
|
__webpack_require__.r(__webpack_exports__);
|
|
293452
293928
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
293453
|
-
/* harmony export */ AccountNotEnabled: () => (/* reexport safe */
|
|
293454
|
-
/* harmony export */ AccountSuspended: () => (/* reexport safe */
|
|
293455
|
-
/* harmony export */ AddressPending: () => (/* reexport safe */
|
|
293456
|
-
/* harmony export */ ArgumentsRequired: () => (/* reexport safe */
|
|
293457
|
-
/* harmony export */ AuthenticationError: () => (/* reexport safe */
|
|
293458
|
-
/* harmony export */ BadRequest: () => (/* reexport safe */
|
|
293459
|
-
/* harmony export */ BadResponse: () => (/* reexport safe */
|
|
293460
|
-
/* harmony export */ BadSymbol: () => (/* reexport safe */
|
|
293461
|
-
/* harmony export */ BaseError: () => (/* reexport safe */
|
|
293462
|
-
/* harmony export */ CancelPending: () => (/* reexport safe */
|
|
293463
|
-
/* harmony export */ DDoSProtection: () => (/* reexport safe */
|
|
293464
|
-
/* harmony export */ DuplicateOrderId: () => (/* reexport safe */
|
|
293929
|
+
/* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.AccountNotEnabled),
|
|
293930
|
+
/* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.AccountSuspended),
|
|
293931
|
+
/* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.AddressPending),
|
|
293932
|
+
/* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.ArgumentsRequired),
|
|
293933
|
+
/* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.AuthenticationError),
|
|
293934
|
+
/* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.BadRequest),
|
|
293935
|
+
/* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.BadResponse),
|
|
293936
|
+
/* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.BadSymbol),
|
|
293937
|
+
/* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.BaseError),
|
|
293938
|
+
/* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.CancelPending),
|
|
293939
|
+
/* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.DDoSProtection),
|
|
293940
|
+
/* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.DuplicateOrderId),
|
|
293465
293941
|
/* harmony export */ Exchange: () => (/* reexport safe */ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__.e),
|
|
293466
|
-
/* harmony export */ ExchangeError: () => (/* reexport safe */
|
|
293467
|
-
/* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */
|
|
293468
|
-
/* harmony export */ InsufficientFunds: () => (/* reexport safe */
|
|
293469
|
-
/* harmony export */ InvalidAddress: () => (/* reexport safe */
|
|
293470
|
-
/* harmony export */ InvalidNonce: () => (/* reexport safe */
|
|
293471
|
-
/* harmony export */ InvalidOrder: () => (/* reexport safe */
|
|
293472
|
-
/* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */
|
|
293473
|
-
/* harmony export */ NetworkError: () => (/* reexport safe */
|
|
293474
|
-
/* harmony export */ NoChange: () => (/* reexport safe */
|
|
293475
|
-
/* harmony export */ NotSupported: () => (/* reexport safe */
|
|
293476
|
-
/* harmony export */ NullResponse: () => (/* reexport safe */
|
|
293477
|
-
/* harmony export */ OnMaintenance: () => (/* reexport safe */
|
|
293478
|
-
/* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */
|
|
293479
|
-
/* harmony export */ OrderNotCached: () => (/* reexport safe */
|
|
293480
|
-
/* harmony export */ OrderNotFillable: () => (/* reexport safe */
|
|
293481
|
-
/* harmony export */ OrderNotFound: () => (/* reexport safe */
|
|
293482
|
-
/* harmony export */ PermissionDenied: () => (/* reexport safe */
|
|
293483
|
-
/* harmony export */ Precise: () => (/* reexport safe */
|
|
293484
|
-
/* harmony export */ RateLimitExceeded: () => (/* reexport safe */
|
|
293485
|
-
/* harmony export */ RequestTimeout: () => (/* reexport safe */
|
|
293942
|
+
/* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.ExchangeError),
|
|
293943
|
+
/* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.ExchangeNotAvailable),
|
|
293944
|
+
/* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.InsufficientFunds),
|
|
293945
|
+
/* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.InvalidAddress),
|
|
293946
|
+
/* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.InvalidNonce),
|
|
293947
|
+
/* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.InvalidOrder),
|
|
293948
|
+
/* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.MarginModeAlreadySet),
|
|
293949
|
+
/* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.NetworkError),
|
|
293950
|
+
/* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.NoChange),
|
|
293951
|
+
/* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.NotSupported),
|
|
293952
|
+
/* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.NullResponse),
|
|
293953
|
+
/* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OnMaintenance),
|
|
293954
|
+
/* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OrderImmediatelyFillable),
|
|
293955
|
+
/* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OrderNotCached),
|
|
293956
|
+
/* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OrderNotFillable),
|
|
293957
|
+
/* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OrderNotFound),
|
|
293958
|
+
/* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.PermissionDenied),
|
|
293959
|
+
/* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_156__.O),
|
|
293960
|
+
/* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.RateLimitExceeded),
|
|
293961
|
+
/* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.RequestTimeout),
|
|
293486
293962
|
/* harmony export */ ace: () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_1__.Z),
|
|
293487
293963
|
/* harmony export */ alpaca: () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__.Z),
|
|
293488
293964
|
/* harmony export */ ascendex: () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__.Z),
|
|
@@ -293536,11 +294012,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
293536
294012
|
/* harmony export */ delta: () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_50__.Z),
|
|
293537
294013
|
/* harmony export */ deribit: () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_51__.Z),
|
|
293538
294014
|
/* harmony export */ digifinex: () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_52__.Z),
|
|
293539
|
-
/* harmony export */ errors: () => (/* reexport module object */
|
|
294015
|
+
/* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__),
|
|
293540
294016
|
/* harmony export */ exchanges: () => (/* binding */ exchanges),
|
|
293541
294017
|
/* harmony export */ exmo: () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_53__.Z),
|
|
293542
294018
|
/* harmony export */ fmfwio: () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_54__.Z),
|
|
293543
|
-
/* harmony export */ functions: () => (/* reexport module object */
|
|
294019
|
+
/* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_157__),
|
|
293544
294020
|
/* harmony export */ gate: () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_55__.Z),
|
|
293545
294021
|
/* harmony export */ gateio: () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_56__.Z),
|
|
293546
294022
|
/* harmony export */ gemini: () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_57__.Z),
|
|
@@ -293589,9 +294065,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
293589
294065
|
/* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_98__.Z)
|
|
293590
294066
|
/* harmony export */ });
|
|
293591
294067
|
/* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
|
|
293592
|
-
/* harmony import */ var
|
|
293593
|
-
/* harmony import */ var
|
|
293594
|
-
/* harmony import */ var
|
|
294068
|
+
/* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(2194);
|
|
294069
|
+
/* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(7100);
|
|
294070
|
+
/* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(6689);
|
|
293595
294071
|
/* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9869);
|
|
293596
294072
|
/* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5660);
|
|
293597
294073
|
/* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9612);
|
|
@@ -293715,37 +294191,38 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
293715
294191
|
/* harmony import */ var _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(3414);
|
|
293716
294192
|
/* harmony import */ var _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(8368);
|
|
293717
294193
|
/* harmony import */ var _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(204);
|
|
293718
|
-
/* harmony import */ var
|
|
293719
|
-
/* harmony import */ var
|
|
293720
|
-
/* harmony import */ var
|
|
293721
|
-
/* harmony import */ var
|
|
293722
|
-
/* harmony import */ var
|
|
293723
|
-
/* harmony import */ var
|
|
293724
|
-
/* harmony import */ var
|
|
293725
|
-
/* harmony import */ var
|
|
293726
|
-
/* harmony import */ var
|
|
293727
|
-
/* harmony import */ var
|
|
293728
|
-
/* harmony import */ var
|
|
293729
|
-
/* harmony import */ var
|
|
293730
|
-
/* harmony import */ var
|
|
293731
|
-
/* harmony import */ var
|
|
293732
|
-
/* harmony import */ var
|
|
293733
|
-
/* harmony import */ var
|
|
293734
|
-
/* harmony import */ var
|
|
293735
|
-
/* harmony import */ var
|
|
293736
|
-
/* harmony import */ var
|
|
293737
|
-
/* harmony import */ var
|
|
293738
|
-
/* harmony import */ var
|
|
293739
|
-
/* harmony import */ var
|
|
293740
|
-
/* harmony import */ var
|
|
293741
|
-
/* harmony import */ var
|
|
293742
|
-
/* harmony import */ var
|
|
293743
|
-
/* harmony import */ var
|
|
293744
|
-
/* harmony import */ var
|
|
293745
|
-
/* harmony import */ var
|
|
293746
|
-
/* harmony import */ var
|
|
293747
|
-
/* harmony import */ var
|
|
293748
|
-
/* harmony import */ var
|
|
294194
|
+
/* harmony import */ var _src_pro_coinone_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(5208);
|
|
294195
|
+
/* harmony import */ var _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(6820);
|
|
294196
|
+
/* harmony import */ var _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(2952);
|
|
294197
|
+
/* harmony import */ var _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(1788);
|
|
294198
|
+
/* harmony import */ var _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(9004);
|
|
294199
|
+
/* harmony import */ var _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(8335);
|
|
294200
|
+
/* harmony import */ var _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(1465);
|
|
294201
|
+
/* harmony import */ var _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(9488);
|
|
294202
|
+
/* harmony import */ var _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(5189);
|
|
294203
|
+
/* harmony import */ var _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(8559);
|
|
294204
|
+
/* harmony import */ var _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(7474);
|
|
294205
|
+
/* harmony import */ var _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(8384);
|
|
294206
|
+
/* harmony import */ var _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(9021);
|
|
294207
|
+
/* harmony import */ var _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(3484);
|
|
294208
|
+
/* harmony import */ var _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(1311);
|
|
294209
|
+
/* harmony import */ var _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(736);
|
|
294210
|
+
/* harmony import */ var _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(449);
|
|
294211
|
+
/* harmony import */ var _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(2387);
|
|
294212
|
+
/* harmony import */ var _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(7181);
|
|
294213
|
+
/* harmony import */ var _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(627);
|
|
294214
|
+
/* harmony import */ var _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(6484);
|
|
294215
|
+
/* harmony import */ var _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(8080);
|
|
294216
|
+
/* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(7105);
|
|
294217
|
+
/* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(2214);
|
|
294218
|
+
/* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(4360);
|
|
294219
|
+
/* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(7924);
|
|
294220
|
+
/* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(3541);
|
|
294221
|
+
/* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(9782);
|
|
294222
|
+
/* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(7614);
|
|
294223
|
+
/* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(4828);
|
|
294224
|
+
/* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(5630);
|
|
294225
|
+
/* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(3910);
|
|
293749
294226
|
/*
|
|
293750
294227
|
|
|
293751
294228
|
MIT License
|
|
@@ -293780,7 +294257,7 @@ SOFTWARE.
|
|
|
293780
294257
|
|
|
293781
294258
|
//-----------------------------------------------------------------------------
|
|
293782
294259
|
// this is updated by vss.js when building
|
|
293783
|
-
const version = '4.2.
|
|
294260
|
+
const version = '4.2.17';
|
|
293784
294261
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
|
|
293785
294262
|
//-----------------------------------------------------------------------------
|
|
293786
294263
|
|
|
@@ -293936,6 +294413,7 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
|
|
|
293936
294413
|
|
|
293937
294414
|
|
|
293938
294415
|
|
|
294416
|
+
|
|
293939
294417
|
|
|
293940
294418
|
|
|
293941
294419
|
const exchanges = {
|
|
@@ -294064,37 +294542,38 @@ const pro = {
|
|
|
294064
294542
|
'coinbase': _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_121__/* ["default"] */ .Z,
|
|
294065
294543
|
'coinbasepro': _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_122__/* ["default"] */ .Z,
|
|
294066
294544
|
'coinex': _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_123__/* ["default"] */ .Z,
|
|
294067
|
-
'
|
|
294068
|
-
'
|
|
294069
|
-
'
|
|
294070
|
-
'
|
|
294071
|
-
'
|
|
294072
|
-
'
|
|
294073
|
-
'
|
|
294074
|
-
'
|
|
294075
|
-
'
|
|
294076
|
-
'
|
|
294077
|
-
'
|
|
294078
|
-
'
|
|
294079
|
-
'
|
|
294080
|
-
'
|
|
294081
|
-
'
|
|
294082
|
-
'
|
|
294083
|
-
'
|
|
294084
|
-
'
|
|
294085
|
-
'
|
|
294086
|
-
'
|
|
294087
|
-
'
|
|
294088
|
-
'
|
|
294089
|
-
'
|
|
294090
|
-
'
|
|
294091
|
-
'
|
|
294092
|
-
'
|
|
294093
|
-
'
|
|
294094
|
-
'
|
|
294095
|
-
'
|
|
294096
|
-
'
|
|
294097
|
-
'
|
|
294545
|
+
'coinone': _src_pro_coinone_js__WEBPACK_IMPORTED_MODULE_124__/* ["default"] */ .Z,
|
|
294546
|
+
'cryptocom': _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_125__/* ["default"] */ .Z,
|
|
294547
|
+
'currencycom': _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_126__/* ["default"] */ .Z,
|
|
294548
|
+
'deribit': _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_127__/* ["default"] */ .Z,
|
|
294549
|
+
'exmo': _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_128__/* ["default"] */ .Z,
|
|
294550
|
+
'gate': _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_129__/* ["default"] */ .Z,
|
|
294551
|
+
'gateio': _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_130__/* ["default"] */ .Z,
|
|
294552
|
+
'gemini': _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_131__/* ["default"] */ .Z,
|
|
294553
|
+
'hitbtc': _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_132__/* ["default"] */ .Z,
|
|
294554
|
+
'hollaex': _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_133__/* ["default"] */ .Z,
|
|
294555
|
+
'htx': _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_134__/* ["default"] */ .Z,
|
|
294556
|
+
'huobi': _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_135__/* ["default"] */ .Z,
|
|
294557
|
+
'huobijp': _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_136__/* ["default"] */ .Z,
|
|
294558
|
+
'idex': _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_137__/* ["default"] */ .Z,
|
|
294559
|
+
'independentreserve': _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_138__/* ["default"] */ .Z,
|
|
294560
|
+
'kraken': _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_139__/* ["default"] */ .Z,
|
|
294561
|
+
'krakenfutures': _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_140__/* ["default"] */ .Z,
|
|
294562
|
+
'kucoin': _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_141__/* ["default"] */ .Z,
|
|
294563
|
+
'kucoinfutures': _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_142__/* ["default"] */ .Z,
|
|
294564
|
+
'luno': _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_143__/* ["default"] */ .Z,
|
|
294565
|
+
'mexc': _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_144__/* ["default"] */ .Z,
|
|
294566
|
+
'ndax': _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_145__/* ["default"] */ .Z,
|
|
294567
|
+
'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_146__/* ["default"] */ .Z,
|
|
294568
|
+
'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_147__/* ["default"] */ .Z,
|
|
294569
|
+
'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_148__/* ["default"] */ .Z,
|
|
294570
|
+
'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_149__/* ["default"] */ .Z,
|
|
294571
|
+
'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
|
|
294572
|
+
'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
|
|
294573
|
+
'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
|
|
294574
|
+
'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
|
|
294575
|
+
'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
|
|
294576
|
+
'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
|
|
294098
294577
|
};
|
|
294099
294578
|
for (const exchange in pro) {
|
|
294100
294579
|
// const ccxtExchange = exchanges[exchange]
|
|
@@ -294107,7 +294586,7 @@ for (const exchange in pro) {
|
|
|
294107
294586
|
pro.exchanges = Object.keys(pro);
|
|
294108
294587
|
pro['Exchange'] = _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e; // now the same for rest and ts
|
|
294109
294588
|
//-----------------------------------------------------------------------------
|
|
294110
|
-
const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise:
|
|
294589
|
+
const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_156__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_157__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__);
|
|
294111
294590
|
|
|
294112
294591
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ccxt);
|
|
294113
294592
|
//-----------------------------------------------------------------------------
|