ccxt 4.1.96 → 4.1.98
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/build.sh +1 -1
- package/dist/ccxt.browser.js +1275 -1208
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ace.js +1 -1
- package/dist/cjs/src/ascendex.js +1 -1
- package/dist/cjs/src/base/Exchange.js +6 -5
- package/dist/cjs/src/base/errors.js +8 -1
- package/dist/cjs/src/bigone.js +2 -2
- package/dist/cjs/src/binance.js +29 -32
- package/dist/cjs/src/bingx.js +76 -3
- package/dist/cjs/src/bitfinex.js +1 -1
- package/dist/cjs/src/bitfinex2.js +1 -1
- package/dist/cjs/src/bitflyer.js +2 -2
- package/dist/cjs/src/bitget.js +13 -13
- package/dist/cjs/src/bitmart.js +1 -1
- package/dist/cjs/src/bitmex.js +2 -2
- package/dist/cjs/src/bitopro.js +1 -1
- package/dist/cjs/src/bitpanda.js +1 -1
- package/dist/cjs/src/bitvavo.js +1 -1
- package/dist/cjs/src/blockchaincom.js +1 -1
- package/dist/cjs/src/btcalpha.js +2 -2
- package/dist/cjs/src/btcbox.js +1 -1
- package/dist/cjs/src/btcmarkets.js +2 -2
- package/dist/cjs/src/btcturk.js +1 -1
- package/dist/cjs/src/bybit.js +2 -2
- package/dist/cjs/src/cex.js +1 -1
- package/dist/cjs/src/coinbasepro.js +2 -2
- package/dist/cjs/src/coinex.js +1 -1
- package/dist/cjs/src/coinlist.js +1 -1
- package/dist/cjs/src/deribit.js +1 -1
- package/dist/cjs/src/digifinex.js +1 -1
- package/dist/cjs/src/gate.js +1 -1
- package/dist/cjs/src/hitbtc.js +1 -1
- package/dist/cjs/src/hollaex.js +2 -2
- package/dist/cjs/src/htx.js +1 -1
- package/dist/cjs/src/huobijp.js +2 -2
- package/dist/cjs/src/idex.js +1 -1
- package/dist/cjs/src/independentreserve.js +1 -1
- package/dist/cjs/src/kraken.js +1 -1
- package/dist/cjs/src/kucoin.js +4 -4
- package/dist/cjs/src/kucoinfutures.js +1 -1
- package/dist/cjs/src/kuna.js +1 -1
- package/dist/cjs/src/latoken.js +1 -1
- package/dist/cjs/src/luno.js +2 -2
- package/dist/cjs/src/lykke.js +1 -1
- package/dist/cjs/src/mexc.js +2 -2
- package/dist/cjs/src/ndax.js +1 -1
- package/dist/cjs/src/novadax.js +2 -2
- package/dist/cjs/src/oceanex.js +1 -1
- package/dist/cjs/src/okcoin.js +1 -1
- package/dist/cjs/src/okx.js +1 -1
- package/dist/cjs/src/phemex.js +3 -3
- package/dist/cjs/src/poloniexfutures.js +1 -1
- package/dist/cjs/src/pro/alpaca.js +1 -1
- package/dist/cjs/src/pro/ascendex.js +1 -1
- package/dist/cjs/src/pro/binance.js +2 -2
- package/dist/cjs/src/pro/bingx.js +12 -6
- package/dist/cjs/src/pro/bitfinex.js +1 -1
- package/dist/cjs/src/pro/bitfinex2.js +1 -1
- package/dist/cjs/src/pro/bitmart.js +1 -1
- package/dist/cjs/src/pro/bitmex.js +1 -1
- package/dist/cjs/src/pro/bitpanda.js +1 -1
- package/dist/cjs/src/pro/blockchaincom.js +1 -1
- package/dist/cjs/src/pro/bybit.js +2 -2
- package/dist/cjs/src/pro/coinbase.js +1 -1
- package/dist/cjs/src/pro/coinbasepro.js +1 -1
- package/dist/cjs/src/pro/deribit.js +1 -1
- package/dist/cjs/src/pro/gate.js +1 -1
- package/dist/cjs/src/pro/gemini.js +1 -1
- package/dist/cjs/src/pro/hollaex.js +1 -1
- package/dist/cjs/src/pro/htx.js +1 -1
- package/dist/cjs/src/pro/idex.js +1 -1
- package/dist/cjs/src/pro/kraken.js +1 -1
- package/dist/cjs/src/pro/krakenfutures.js +1 -1
- package/dist/cjs/src/pro/kucoinfutures.js +1 -1
- package/dist/cjs/src/pro/mexc.js +1 -1
- package/dist/cjs/src/pro/okcoin.js +1 -1
- package/dist/cjs/src/pro/okx.js +1 -1
- package/dist/cjs/src/pro/phemex.js +1 -1
- package/dist/cjs/src/pro/poloniexfutures.js +1 -1
- package/dist/cjs/src/probit.js +1 -1
- package/dist/cjs/src/timex.js +1 -1
- package/dist/cjs/src/tokocrypto.js +1 -1
- package/dist/cjs/src/upbit.js +1 -1
- package/dist/cjs/src/wavesexchange.js +1 -1
- package/dist/cjs/src/whitebit.js +1 -1
- package/dist/cjs/src/woo.js +1 -1
- package/dist/cjs/src/zaif.js +1 -1
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bingx.d.ts +2 -0
- package/js/src/ace.js +1 -1
- package/js/src/ascendex.js +1 -1
- package/js/src/base/Exchange.d.ts +1 -1
- package/js/src/base/Exchange.js +7 -6
- package/js/src/base/errorHierarchy.d.ts +1 -0
- package/js/src/base/errorHierarchy.js +1 -0
- package/js/src/base/errors.d.ts +5 -1
- package/js/src/base/errors.js +8 -2
- package/js/src/bigone.js +2 -2
- package/js/src/binance.js +29 -32
- package/js/src/bingx.d.ts +2 -0
- package/js/src/bingx.js +76 -3
- package/js/src/bitfinex.js +1 -1
- package/js/src/bitfinex2.js +1 -1
- package/js/src/bitflyer.js +2 -2
- package/js/src/bitget.js +13 -13
- package/js/src/bitmart.js +1 -1
- package/js/src/bitmex.js +2 -2
- package/js/src/bitopro.js +1 -1
- package/js/src/bitpanda.js +1 -1
- package/js/src/bitso.d.ts +1 -1
- package/js/src/bitvavo.js +1 -1
- package/js/src/blockchaincom.js +1 -1
- package/js/src/btcalpha.js +2 -2
- package/js/src/btcbox.js +1 -1
- package/js/src/btcmarkets.js +2 -2
- package/js/src/btcturk.js +1 -1
- package/js/src/bybit.js +2 -2
- package/js/src/cex.js +1 -1
- package/js/src/coinbasepro.js +2 -2
- package/js/src/coinex.js +1 -1
- package/js/src/coinlist.js +1 -1
- package/js/src/deribit.js +1 -1
- package/js/src/digifinex.js +1 -1
- package/js/src/gate.js +1 -1
- package/js/src/hitbtc.js +1 -1
- package/js/src/hollaex.js +2 -2
- package/js/src/htx.js +1 -1
- package/js/src/huobijp.js +2 -2
- package/js/src/idex.js +1 -1
- package/js/src/independentreserve.js +1 -1
- package/js/src/kraken.js +1 -1
- package/js/src/kucoin.js +4 -4
- package/js/src/kucoinfutures.js +1 -1
- package/js/src/kuna.js +1 -1
- package/js/src/latoken.js +1 -1
- package/js/src/luno.js +2 -2
- package/js/src/lykke.js +1 -1
- package/js/src/mexc.js +2 -2
- package/js/src/ndax.js +1 -1
- package/js/src/novadax.js +2 -2
- package/js/src/oceanex.js +1 -1
- package/js/src/okcoin.js +1 -1
- package/js/src/okx.js +1 -1
- package/js/src/phemex.js +3 -3
- package/js/src/poloniexfutures.js +1 -1
- package/js/src/pro/alpaca.js +1 -1
- package/js/src/pro/ascendex.js +1 -1
- package/js/src/pro/binance.js +2 -2
- package/js/src/pro/bingx.js +12 -6
- package/js/src/pro/bitfinex.js +1 -1
- package/js/src/pro/bitfinex2.js +1 -1
- package/js/src/pro/bitmart.js +1 -1
- package/js/src/pro/bitmex.js +1 -1
- package/js/src/pro/bitpanda.js +1 -1
- package/js/src/pro/blockchaincom.js +1 -1
- package/js/src/pro/bybit.js +2 -2
- package/js/src/pro/coinbase.js +1 -1
- package/js/src/pro/coinbasepro.js +1 -1
- package/js/src/pro/deribit.js +1 -1
- package/js/src/pro/gate.js +1 -1
- package/js/src/pro/gemini.js +1 -1
- package/js/src/pro/hollaex.js +1 -1
- package/js/src/pro/htx.js +1 -1
- package/js/src/pro/idex.js +1 -1
- package/js/src/pro/kraken.js +1 -1
- package/js/src/pro/krakenfutures.js +1 -1
- package/js/src/pro/kucoinfutures.js +1 -1
- package/js/src/pro/mexc.js +1 -1
- package/js/src/pro/okcoin.js +1 -1
- package/js/src/pro/okx.js +1 -1
- package/js/src/pro/phemex.js +1 -1
- package/js/src/pro/poloniexfutures.js +1 -1
- package/js/src/probit.js +1 -1
- package/js/src/timex.js +1 -1
- package/js/src/tokocrypto.js +1 -1
- package/js/src/upbit.js +1 -1
- package/js/src/wavesexchange.js +1 -1
- package/js/src/whitebit.js +1 -1
- package/js/src/woo.js +1 -1
- package/js/src/zaif.js +1 -1
- package/package.json +13 -13
- package/skip-tests.json +120 -71
- package/run-tests-ws.js +0 -290
package/dist/ccxt.browser.js
CHANGED
|
@@ -1360,22 +1360,6 @@ class Exchange extends _base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchang
|
|
|
1360
1360
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Exchange);
|
|
1361
1361
|
|
|
1362
1362
|
|
|
1363
|
-
/***/ }),
|
|
1364
|
-
|
|
1365
|
-
/***/ 5224:
|
|
1366
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1367
|
-
|
|
1368
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1369
|
-
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1370
|
-
/* harmony export */ });
|
|
1371
|
-
/* harmony import */ var _base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
|
|
1372
|
-
// -------------------------------------------------------------------------------
|
|
1373
|
-
|
|
1374
|
-
class Exchange extends _base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e {
|
|
1375
|
-
}
|
|
1376
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Exchange);
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
1363
|
/***/ }),
|
|
1380
1364
|
|
|
1381
1365
|
/***/ 3565:
|
|
@@ -2101,7 +2085,7 @@ class ace extends _abstract_ace_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
2101
2085
|
* @see https://github.com/ace-exchange/ace-official-api-docs/blob/master/api_v2.md#open-api---order-list
|
|
2102
2086
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
2103
2087
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
2104
|
-
* @param {int} [limit] the maximum number of
|
|
2088
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
2105
2089
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2106
2090
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
2107
2091
|
*/
|
|
@@ -5588,7 +5572,7 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
5588
5572
|
* @see https://ascendex.github.io/ascendex-futures-pro-api-v2/#list-current-history-orders
|
|
5589
5573
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
5590
5574
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
5591
|
-
* @param {int} [limit] the maximum number of
|
|
5575
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
5592
5576
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
5593
5577
|
* @param {int} [params.until] the latest time in ms to fetch orders for
|
|
5594
5578
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -8349,7 +8333,7 @@ class Exchange {
|
|
|
8349
8333
|
const length = usedProxies.length;
|
|
8350
8334
|
if (length > 1) {
|
|
8351
8335
|
const joinedProxyNames = usedProxies.join(',');
|
|
8352
|
-
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.
|
|
8336
|
+
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.ProxyError(this.id + ' you have multiple conflicting proxy settings (' + joinedProxyNames + '), please use only one from : proxyUrl, proxy_url, proxyUrlCallback, proxy_url_callback');
|
|
8353
8337
|
}
|
|
8354
8338
|
return proxyUrl;
|
|
8355
8339
|
}
|
|
@@ -8413,7 +8397,7 @@ class Exchange {
|
|
|
8413
8397
|
const length = usedProxies.length;
|
|
8414
8398
|
if (length > 1) {
|
|
8415
8399
|
const joinedProxyNames = usedProxies.join(',');
|
|
8416
|
-
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.
|
|
8400
|
+
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.ProxyError(this.id + ' you have multiple conflicting proxy settings (' + joinedProxyNames + '), please use only one from: httpProxy, httpsProxy, httpProxyCallback, httpsProxyCallback, socksProxy, socksProxyCallback');
|
|
8417
8401
|
}
|
|
8418
8402
|
return [httpProxy, httpsProxy, socksProxy];
|
|
8419
8403
|
}
|
|
@@ -8453,13 +8437,13 @@ class Exchange {
|
|
|
8453
8437
|
const length = usedProxies.length;
|
|
8454
8438
|
if (length > 1) {
|
|
8455
8439
|
const joinedProxyNames = usedProxies.join(',');
|
|
8456
|
-
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.
|
|
8440
|
+
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.ProxyError(this.id + ' you have multiple conflicting proxy settings (' + joinedProxyNames + '), please use only one from: wsProxy, wssProxy, wsSocksProxy');
|
|
8457
8441
|
}
|
|
8458
8442
|
return [wsProxy, wssProxy, wsSocksProxy];
|
|
8459
8443
|
}
|
|
8460
8444
|
checkConflictingProxies(proxyAgentSet, proxyUrlSet) {
|
|
8461
8445
|
if (proxyAgentSet && proxyUrlSet) {
|
|
8462
|
-
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.
|
|
8446
|
+
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.ProxyError(this.id + ' you have multiple conflicting proxy settings, please use only one from : proxyUrl, httpProxy, httpsProxy, socksProxy');
|
|
8463
8447
|
}
|
|
8464
8448
|
}
|
|
8465
8449
|
findMessageHashes(client, element) {
|
|
@@ -8776,6 +8760,7 @@ class Exchange {
|
|
|
8776
8760
|
fee['cost'] = this.safeNumber(fee, 'cost');
|
|
8777
8761
|
}
|
|
8778
8762
|
const timestamp = this.safeInteger(entry, 'timestamp');
|
|
8763
|
+
const info = this.safeValue(entry, 'info', {});
|
|
8779
8764
|
return {
|
|
8780
8765
|
'id': this.safeString(entry, 'id'),
|
|
8781
8766
|
'timestamp': timestamp,
|
|
@@ -8791,7 +8776,7 @@ class Exchange {
|
|
|
8791
8776
|
'after': this.parseNumber(after),
|
|
8792
8777
|
'status': this.safeString(entry, 'status'),
|
|
8793
8778
|
'fee': fee,
|
|
8794
|
-
'info':
|
|
8779
|
+
'info': info,
|
|
8795
8780
|
};
|
|
8796
8781
|
}
|
|
8797
8782
|
safeCurrencyStructure(currency) {
|
|
@@ -12214,6 +12199,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
12214
12199
|
/* harmony export */ OrderNotFillable: () => (/* binding */ OrderNotFillable),
|
|
12215
12200
|
/* harmony export */ OrderNotFound: () => (/* binding */ OrderNotFound),
|
|
12216
12201
|
/* harmony export */ PermissionDenied: () => (/* binding */ PermissionDenied),
|
|
12202
|
+
/* harmony export */ ProxyError: () => (/* binding */ ProxyError),
|
|
12217
12203
|
/* harmony export */ RateLimitExceeded: () => (/* binding */ RateLimitExceeded),
|
|
12218
12204
|
/* harmony export */ RequestTimeout: () => (/* binding */ RequestTimeout),
|
|
12219
12205
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
@@ -12412,6 +12398,12 @@ class OperationFailed extends BaseError {
|
|
|
12412
12398
|
this.name = 'OperationFailed';
|
|
12413
12399
|
}
|
|
12414
12400
|
}
|
|
12401
|
+
class ProxyError extends ExchangeError {
|
|
12402
|
+
constructor(message) {
|
|
12403
|
+
super(message);
|
|
12404
|
+
this.name = 'OperationFailed';
|
|
12405
|
+
}
|
|
12406
|
+
}
|
|
12415
12407
|
// Network error
|
|
12416
12408
|
class NetworkError extends OperationFailed {
|
|
12417
12409
|
constructor(message) {
|
|
@@ -12462,7 +12454,7 @@ class RequestTimeout extends NetworkError {
|
|
|
12462
12454
|
// // Derived class hierarchy
|
|
12463
12455
|
// errorHierarchy
|
|
12464
12456
|
// )
|
|
12465
|
-
const errors = { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, ContractUnavailable, NoChange, OperationRejected, OperationFailed };
|
|
12457
|
+
const errors = { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, ContractUnavailable, NoChange, OperationRejected, OperationFailed, ProxyError };
|
|
12466
12458
|
|
|
12467
12459
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (errors);
|
|
12468
12460
|
|
|
@@ -16485,7 +16477,7 @@ class bigone extends _abstract_bigone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
16485
16477
|
* @description fetches information on multiple orders made by the user
|
|
16486
16478
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
16487
16479
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
16488
|
-
* @param {int} [limit] the maximum number of
|
|
16480
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
16489
16481
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
16490
16482
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
16491
16483
|
*/
|
|
@@ -16620,7 +16612,7 @@ class bigone extends _abstract_bigone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
16620
16612
|
* @description fetches information on multiple closed orders made by the user
|
|
16621
16613
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
16622
16614
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
16623
|
-
* @param {int} [limit] the maximum number of
|
|
16615
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
16624
16616
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
16625
16617
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
16626
16618
|
*/
|
|
@@ -23158,7 +23150,8 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
23158
23150
|
'amount': this.currencyToPrecision(code, amount),
|
|
23159
23151
|
};
|
|
23160
23152
|
request['type'] = this.safeString(params, 'type');
|
|
23161
|
-
|
|
23153
|
+
params = this.omit(params, 'type');
|
|
23154
|
+
let response = undefined;
|
|
23162
23155
|
if (request['type'] === undefined) {
|
|
23163
23156
|
const symbol = this.safeString(params, 'symbol');
|
|
23164
23157
|
if (symbol !== undefined) {
|
|
@@ -23198,16 +23191,16 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
23198
23191
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' transfer () does not allow transfers between ' + fromAccount + ' and ' + toAccount);
|
|
23199
23192
|
}
|
|
23200
23193
|
else if (toSpot && fromIsolated) {
|
|
23201
|
-
method = 'sapiPostMarginIsolatedTransfer';
|
|
23202
23194
|
request['transFrom'] = 'ISOLATED_MARGIN';
|
|
23203
23195
|
request['transTo'] = 'SPOT';
|
|
23204
23196
|
request['symbol'] = fromId;
|
|
23197
|
+
response = await this.sapiPostMarginIsolatedTransfer(this.extend(request, params));
|
|
23205
23198
|
}
|
|
23206
23199
|
else if (fromSpot && toIsolated) {
|
|
23207
|
-
method = 'sapiPostMarginIsolatedTransfer';
|
|
23208
23200
|
request['transFrom'] = 'SPOT';
|
|
23209
23201
|
request['transTo'] = 'ISOLATED_MARGIN';
|
|
23210
23202
|
request['symbol'] = toId;
|
|
23203
|
+
response = await this.sapiPostMarginIsolatedTransfer(this.extend(request, params));
|
|
23211
23204
|
}
|
|
23212
23205
|
else {
|
|
23213
23206
|
if (fromIsolated) {
|
|
@@ -23225,8 +23218,9 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
23225
23218
|
request['type'] = fromId + '_' + toId;
|
|
23226
23219
|
}
|
|
23227
23220
|
}
|
|
23228
|
-
|
|
23229
|
-
|
|
23221
|
+
if (response === undefined) {
|
|
23222
|
+
response = await this.sapiPostAssetTransfer(this.extend(request, params));
|
|
23223
|
+
}
|
|
23230
23224
|
//
|
|
23231
23225
|
// {
|
|
23232
23226
|
// "tranId":13526853623
|
|
@@ -24019,7 +24013,6 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
24019
24013
|
*/
|
|
24020
24014
|
await this.loadMarkets();
|
|
24021
24015
|
const request = {};
|
|
24022
|
-
let method = undefined;
|
|
24023
24016
|
let paginate = false;
|
|
24024
24017
|
[paginate, params] = this.handleOptionAndParams(params, 'fetchFundingRateHistory', 'paginate');
|
|
24025
24018
|
if (paginate) {
|
|
@@ -24036,15 +24029,6 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
24036
24029
|
let subType = undefined;
|
|
24037
24030
|
[subType, params] = this.handleSubTypeAndParams('fetchFundingRateHistory', market, params, 'linear');
|
|
24038
24031
|
params = this.omit(params, 'type');
|
|
24039
|
-
if (this.isLinear(type, subType)) {
|
|
24040
|
-
method = 'fapiPublicGetFundingRate';
|
|
24041
|
-
}
|
|
24042
|
-
else if (this.isInverse(type, subType)) {
|
|
24043
|
-
method = 'dapiPublicGetFundingRate';
|
|
24044
|
-
}
|
|
24045
|
-
if (method === undefined) {
|
|
24046
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' fetchFundingRateHistory() is not supported for ' + type + ' markets');
|
|
24047
|
-
}
|
|
24048
24032
|
if (since !== undefined) {
|
|
24049
24033
|
request['startTime'] = since;
|
|
24050
24034
|
}
|
|
@@ -24057,7 +24041,16 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
24057
24041
|
if (limit !== undefined) {
|
|
24058
24042
|
request['limit'] = limit;
|
|
24059
24043
|
}
|
|
24060
|
-
|
|
24044
|
+
let response = undefined;
|
|
24045
|
+
if (this.isLinear(type, subType)) {
|
|
24046
|
+
response = await this.fapiPublicGetFundingRate(this.extend(request, params));
|
|
24047
|
+
}
|
|
24048
|
+
else if (this.isInverse(type, subType)) {
|
|
24049
|
+
response = await this.dapiPublicGetFundingRate(this.extend(request, params));
|
|
24050
|
+
}
|
|
24051
|
+
else {
|
|
24052
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' fetchFundingRateHistory() is not supported for ' + type + ' markets');
|
|
24053
|
+
}
|
|
24061
24054
|
//
|
|
24062
24055
|
// {
|
|
24063
24056
|
// "symbol": "BTCUSDT",
|
|
@@ -24093,22 +24086,21 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
24093
24086
|
*/
|
|
24094
24087
|
await this.loadMarkets();
|
|
24095
24088
|
symbols = this.marketSymbols(symbols);
|
|
24096
|
-
let method = undefined;
|
|
24097
24089
|
const defaultType = this.safeString2(this.options, 'fetchFundingRates', 'defaultType', 'future');
|
|
24098
24090
|
const type = this.safeString(params, 'type', defaultType);
|
|
24099
24091
|
let subType = undefined;
|
|
24100
24092
|
[subType, params] = this.handleSubTypeAndParams('fetchFundingRates', undefined, params, 'linear');
|
|
24101
24093
|
const query = this.omit(params, 'type');
|
|
24094
|
+
let response = undefined;
|
|
24102
24095
|
if (this.isLinear(type, subType)) {
|
|
24103
|
-
|
|
24096
|
+
response = await this.fapiPublicGetPremiumIndex(query);
|
|
24104
24097
|
}
|
|
24105
24098
|
else if (this.isInverse(type, subType)) {
|
|
24106
|
-
|
|
24099
|
+
response = await this.dapiPublicGetPremiumIndex(query);
|
|
24107
24100
|
}
|
|
24108
24101
|
else {
|
|
24109
24102
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' fetchFundingRates() supports linear and inverse contracts only');
|
|
24110
24103
|
}
|
|
24111
|
-
const response = await this[method](query);
|
|
24112
24104
|
const result = [];
|
|
24113
24105
|
for (let i = 0; i < response.length; i++) {
|
|
24114
24106
|
const entry = response[i];
|
|
@@ -24576,22 +24568,21 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
24576
24568
|
// it contains useful stuff like the maintenance margin and initial margin for positions
|
|
24577
24569
|
const leverageBrackets = this.safeValue(this.options, 'leverageBrackets');
|
|
24578
24570
|
if ((leverageBrackets === undefined) || (reload)) {
|
|
24579
|
-
let method = undefined;
|
|
24580
24571
|
const defaultType = this.safeString(this.options, 'defaultType', 'future');
|
|
24581
24572
|
const type = this.safeString(params, 'type', defaultType);
|
|
24582
24573
|
const query = this.omit(params, 'type');
|
|
24583
24574
|
let subType = undefined;
|
|
24584
24575
|
[subType, params] = this.handleSubTypeAndParams('loadLeverageBrackets', undefined, params, 'linear');
|
|
24576
|
+
let response = undefined;
|
|
24585
24577
|
if (this.isLinear(type, subType)) {
|
|
24586
|
-
|
|
24578
|
+
response = await this.fapiPrivateGetLeverageBracket(query);
|
|
24587
24579
|
}
|
|
24588
24580
|
else if (this.isInverse(type, subType)) {
|
|
24589
|
-
|
|
24581
|
+
response = await this.dapiPrivateV2GetLeverageBracket(query);
|
|
24590
24582
|
}
|
|
24591
24583
|
else {
|
|
24592
24584
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' loadLeverageBrackets() supports linear and inverse contracts only');
|
|
24593
24585
|
}
|
|
24594
|
-
const response = await this[method](query);
|
|
24595
24586
|
this.options['leverageBrackets'] = {};
|
|
24596
24587
|
for (let i = 0; i < response.length; i++) {
|
|
24597
24588
|
const entry = response[i];
|
|
@@ -25053,7 +25044,6 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
25053
25044
|
*/
|
|
25054
25045
|
await this.loadMarkets();
|
|
25055
25046
|
let market = undefined;
|
|
25056
|
-
let method = undefined;
|
|
25057
25047
|
const request = {
|
|
25058
25048
|
'incomeType': 'FUNDING_FEE', // "TRANSFER","WELCOME_BONUS", "REALIZED_PNL","FUNDING_FEE", "COMMISSION" and "INSURANCE_CLEAR"
|
|
25059
25049
|
};
|
|
@@ -25075,16 +25065,16 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
25075
25065
|
const defaultType = this.safeString2(this.options, 'fetchFundingHistory', 'defaultType', 'future');
|
|
25076
25066
|
const type = this.safeString(params, 'type', defaultType);
|
|
25077
25067
|
params = this.omit(params, 'type');
|
|
25068
|
+
let response = undefined;
|
|
25078
25069
|
if (this.isLinear(type, subType)) {
|
|
25079
|
-
|
|
25070
|
+
response = await this.fapiPrivateGetIncome(this.extend(request, params));
|
|
25080
25071
|
}
|
|
25081
25072
|
else if (this.isInverse(type, subType)) {
|
|
25082
|
-
|
|
25073
|
+
response = await this.dapiPrivateGetIncome(this.extend(request, params));
|
|
25083
25074
|
}
|
|
25084
25075
|
else {
|
|
25085
25076
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' fetchFundingHistory() supports linear and inverse contracts only');
|
|
25086
25077
|
}
|
|
25087
|
-
const response = await this[method](this.extend(request, params));
|
|
25088
25078
|
return this.parseIncomes(response, market, since, limit);
|
|
25089
25079
|
}
|
|
25090
25080
|
async setLeverage(leverage, symbol = undefined, params = {}) {
|
|
@@ -25838,17 +25828,16 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
25838
25828
|
'symbol': market['id'],
|
|
25839
25829
|
'amount': amount,
|
|
25840
25830
|
};
|
|
25841
|
-
let
|
|
25831
|
+
let response = undefined;
|
|
25842
25832
|
let code = undefined;
|
|
25843
25833
|
if (market['linear']) {
|
|
25844
|
-
method = 'fapiPrivatePostPositionMargin';
|
|
25845
25834
|
code = market['quote'];
|
|
25835
|
+
response = await this.fapiPrivatePostPositionMargin(this.extend(request, params));
|
|
25846
25836
|
}
|
|
25847
25837
|
else {
|
|
25848
|
-
method = 'dapiPrivatePostPositionMargin';
|
|
25849
25838
|
code = market['base'];
|
|
25839
|
+
response = await this.dapiPrivatePostPositionMargin(this.extend(request, params));
|
|
25850
25840
|
}
|
|
25851
|
-
const response = await this[method](this.extend(request, params));
|
|
25852
25841
|
//
|
|
25853
25842
|
// {
|
|
25854
25843
|
// "code": 200,
|
|
@@ -27009,7 +26998,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
27009
26998
|
'cancelOrder': true,
|
|
27010
26999
|
'cancelOrders': true,
|
|
27011
27000
|
'closeAllPositions': true,
|
|
27012
|
-
'closePosition':
|
|
27001
|
+
'closePosition': true,
|
|
27013
27002
|
'createMarketBuyOrderWithCost': true,
|
|
27014
27003
|
'createMarketOrderWithCost': true,
|
|
27015
27004
|
'createMarketSellOrderWithCost': true,
|
|
@@ -27121,6 +27110,16 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
27121
27110
|
},
|
|
27122
27111
|
},
|
|
27123
27112
|
'swap': {
|
|
27113
|
+
'v1': {
|
|
27114
|
+
'private': {
|
|
27115
|
+
'get': {
|
|
27116
|
+
'positionSide/dual': 1,
|
|
27117
|
+
},
|
|
27118
|
+
'post': {
|
|
27119
|
+
'positionSide/dual': 1,
|
|
27120
|
+
},
|
|
27121
|
+
},
|
|
27122
|
+
},
|
|
27124
27123
|
'v2': {
|
|
27125
27124
|
'public': {
|
|
27126
27125
|
'get': {
|
|
@@ -29449,7 +29448,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
29449
29448
|
* @see https://bingx-api.github.io/docs/#/standard/contract-interface.html#Historical%20order
|
|
29450
29449
|
* @param {string} [symbol] unified market symbol of the market orders were made in
|
|
29451
29450
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
29452
|
-
* @param {int} [limit] the maximum number of
|
|
29451
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
29453
29452
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
29454
29453
|
* @param {int} [params.until] the latest time in ms to fetch orders for
|
|
29455
29454
|
* @param {boolean} [params.standard] whether to fetch standard contract orders
|
|
@@ -30348,12 +30347,44 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
30348
30347
|
'datetime': this.iso8601(timestamp),
|
|
30349
30348
|
});
|
|
30350
30349
|
}
|
|
30350
|
+
async closePosition(symbol, side = undefined, params = {}) {
|
|
30351
|
+
/**
|
|
30352
|
+
* @method
|
|
30353
|
+
* @name bingx#closePosition
|
|
30354
|
+
* @description closes open positions for a market
|
|
30355
|
+
* @see https://bingx-api.github.io/docs/#/en-us/swapV2/trade-api.html#One-Click%20Close%20All%20Positions
|
|
30356
|
+
* @param {string} symbol Unified CCXT market symbol
|
|
30357
|
+
* @param {string} [side] not used by bingx
|
|
30358
|
+
* @param {object} [params] extra parameters specific to the bingx api endpoint
|
|
30359
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
30360
|
+
*/
|
|
30361
|
+
await this.loadMarkets();
|
|
30362
|
+
const market = this.market(symbol);
|
|
30363
|
+
const request = {
|
|
30364
|
+
'symbol': market['id'],
|
|
30365
|
+
};
|
|
30366
|
+
const response = await this.swapV2PrivatePostTradeCloseAllPositions(this.extend(request, params));
|
|
30367
|
+
//
|
|
30368
|
+
// {
|
|
30369
|
+
// "code": 0,
|
|
30370
|
+
// "msg": "",
|
|
30371
|
+
// "data": {
|
|
30372
|
+
// "success": [
|
|
30373
|
+
// 1727686766700486656,
|
|
30374
|
+
// ],
|
|
30375
|
+
// "failed": null
|
|
30376
|
+
// }
|
|
30377
|
+
// }
|
|
30378
|
+
//
|
|
30379
|
+
const data = this.safeValue(response, 'data');
|
|
30380
|
+
return this.parseOrder(data);
|
|
30381
|
+
}
|
|
30351
30382
|
async closeAllPositions(params = {}) {
|
|
30352
30383
|
/**
|
|
30353
30384
|
* @method
|
|
30354
30385
|
* @name bitget#closePositions
|
|
30355
30386
|
* @description closes open positions for a market
|
|
30356
|
-
* @see https://
|
|
30387
|
+
* @see https://bingx-api.github.io/docs/#/en-us/swapV2/trade-api.html#One-Click%20Close%20All%20Positions
|
|
30357
30388
|
* @param {object} [params] extra parameters specific to the okx api endpoint
|
|
30358
30389
|
* @param {string} [params.recvWindow] request valid time window value
|
|
30359
30390
|
* @returns {object[]} [A list of position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
|
|
@@ -30392,6 +30423,37 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
30392
30423
|
}
|
|
30393
30424
|
return positions;
|
|
30394
30425
|
}
|
|
30426
|
+
async setPositionMode(hedged, symbol = undefined, params = {}) {
|
|
30427
|
+
/**
|
|
30428
|
+
* @method
|
|
30429
|
+
* @name bingx#setPositionMode
|
|
30430
|
+
* @description set hedged to true or false for a market
|
|
30431
|
+
* @see https://bingx-api.github.io/docs/#/en-us/swapV2/trade-api.html#Set%20Position%20Mode
|
|
30432
|
+
* @param {bool} hedged set to true to use dualSidePosition
|
|
30433
|
+
* @param {string} symbol not used by bingx setPositionMode ()
|
|
30434
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
30435
|
+
* @returns {object} response from the exchange
|
|
30436
|
+
*/
|
|
30437
|
+
let dualSidePosition = undefined;
|
|
30438
|
+
if (hedged) {
|
|
30439
|
+
dualSidePosition = 'true';
|
|
30440
|
+
}
|
|
30441
|
+
else {
|
|
30442
|
+
dualSidePosition = 'false';
|
|
30443
|
+
}
|
|
30444
|
+
const request = {
|
|
30445
|
+
'dualSidePosition': dualSidePosition,
|
|
30446
|
+
};
|
|
30447
|
+
//
|
|
30448
|
+
// {
|
|
30449
|
+
// code: '0',
|
|
30450
|
+
// msg: '',
|
|
30451
|
+
// timeStamp: '1703327432734',
|
|
30452
|
+
// data: { dualSidePosition: 'false' }
|
|
30453
|
+
// }
|
|
30454
|
+
//
|
|
30455
|
+
return await this.swapV1PrivatePostPositionSideDual(this.extend(request, params));
|
|
30456
|
+
}
|
|
30395
30457
|
sign(path, section = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
30396
30458
|
const type = section[0];
|
|
30397
30459
|
const version = section[1];
|
|
@@ -34925,7 +34987,7 @@ class bitfinex extends _abstract_bitfinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
34925
34987
|
* @description fetches information on multiple closed orders made by the user
|
|
34926
34988
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
34927
34989
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
34928
|
-
* @param {int} [limit] the maximum number of
|
|
34990
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
34929
34991
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
34930
34992
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
34931
34993
|
*/
|
|
@@ -37181,7 +37243,7 @@ class bitfinex2 extends _abstract_bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
37181
37243
|
* @see https://docs.bitfinex.com/reference/rest-auth-retrieve-orders-by-symbol
|
|
37182
37244
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
37183
37245
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
37184
|
-
* @param {int} [limit] the maximum number of
|
|
37246
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
37185
37247
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
37186
37248
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
37187
37249
|
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
@@ -39019,7 +39081,7 @@ class bitflyer extends _abstract_bitflyer_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
39019
39081
|
* @see https://lightning.bitflyer.com/docs?lang=en#list-orders
|
|
39020
39082
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
39021
39083
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
39022
|
-
* @param {int} [limit] the maximum number of
|
|
39084
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
39023
39085
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
39024
39086
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
39025
39087
|
*/
|
|
@@ -39064,7 +39126,7 @@ class bitflyer extends _abstract_bitflyer_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
39064
39126
|
* @see https://lightning.bitflyer.com/docs?lang=en#list-orders
|
|
39065
39127
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
39066
39128
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
39067
|
-
* @param {int} [limit] the maximum number of
|
|
39129
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
39068
39130
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
39069
39131
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
39070
39132
|
*/
|
|
@@ -41562,12 +41624,12 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
41562
41624
|
'30m': '30min',
|
|
41563
41625
|
'1h': '1h',
|
|
41564
41626
|
'4h': '4h',
|
|
41565
|
-
'6h': '
|
|
41566
|
-
'12h': '
|
|
41567
|
-
'1d': '
|
|
41568
|
-
'3d': '
|
|
41569
|
-
'1w': '
|
|
41570
|
-
'1M': '
|
|
41627
|
+
'6h': '6Hutc',
|
|
41628
|
+
'12h': '12Hutc',
|
|
41629
|
+
'1d': '1Dutc',
|
|
41630
|
+
'3d': '3Dutc',
|
|
41631
|
+
'1w': '1Wutc',
|
|
41632
|
+
'1M': '1Mutc',
|
|
41571
41633
|
},
|
|
41572
41634
|
'swap': {
|
|
41573
41635
|
'1m': '1m',
|
|
@@ -41578,12 +41640,12 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
41578
41640
|
'1h': '1H',
|
|
41579
41641
|
'2h': '2H',
|
|
41580
41642
|
'4h': '4H',
|
|
41581
|
-
'6h': '
|
|
41582
|
-
'12h': '
|
|
41583
|
-
'1d': '
|
|
41584
|
-
'3d': '
|
|
41585
|
-
'1w': '
|
|
41586
|
-
'1M': '
|
|
41643
|
+
'6h': '6Hutc',
|
|
41644
|
+
'12h': '12Hutc',
|
|
41645
|
+
'1d': '1Dutc',
|
|
41646
|
+
'3d': '3Dutc',
|
|
41647
|
+
'1w': '1Wutc',
|
|
41648
|
+
'1M': '1Mutc',
|
|
41587
41649
|
},
|
|
41588
41650
|
},
|
|
41589
41651
|
'fetchMarkets': [
|
|
@@ -43185,7 +43247,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
43185
43247
|
const currencyCode = this.safeCurrencyCode(this.safeString(feeStructure, 'feeCoin'));
|
|
43186
43248
|
fee = {
|
|
43187
43249
|
'currency': currencyCode,
|
|
43188
|
-
'cost': _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.
|
|
43250
|
+
'cost': _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.stringAbs(this.safeString(feeStructure, 'totalFee')),
|
|
43189
43251
|
};
|
|
43190
43252
|
}
|
|
43191
43253
|
return this.safeTrade({
|
|
@@ -52343,7 +52405,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
52343
52405
|
* @description fetches information on multiple closed orders made by the user
|
|
52344
52406
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
52345
52407
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
52346
|
-
* @param {int} [limit] the maximum number of
|
|
52408
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
52347
52409
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
52348
52410
|
* @param {int} [params.until] timestamp in ms of the latest entry
|
|
52349
52411
|
* @param {string} [params.marginMode] *spot only* 'cross' or 'isolated', for margin trading
|
|
@@ -54784,7 +54846,7 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
54784
54846
|
* @description fetches information on multiple orders made by the user
|
|
54785
54847
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
54786
54848
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
54787
|
-
* @param {int} [limit] the maximum number of
|
|
54849
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
54788
54850
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
54789
54851
|
* @param {int} [params.until] the earliest time in ms to fetch orders for
|
|
54790
54852
|
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
@@ -54848,7 +54910,7 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
54848
54910
|
* @description fetches information on multiple closed orders made by the user
|
|
54849
54911
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
54850
54912
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
54851
|
-
* @param {int} [limit] the maximum number of
|
|
54913
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
54852
54914
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
54853
54915
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
54854
54916
|
*/
|
|
@@ -58010,7 +58072,7 @@ class bitopro extends _abstract_bitopro_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
58010
58072
|
* @see https://github.com/bitoex/bitopro-offical-api-docs/blob/master/api/v3/private/get_orders_data.md
|
|
58011
58073
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
58012
58074
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
58013
|
-
* @param {int} [limit] the maximum number of
|
|
58075
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
58014
58076
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
58015
58077
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
58016
58078
|
*/
|
|
@@ -60293,7 +60355,7 @@ class bitpanda extends _abstract_bitpanda_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
60293
60355
|
* @description fetches information on multiple closed orders made by the user
|
|
60294
60356
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
60295
60357
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
60296
|
-
* @param {int} [limit] the maximum number of
|
|
60358
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
60297
60359
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
60298
60360
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
60299
60361
|
*/
|
|
@@ -68946,7 +69008,7 @@ class bitvavo extends _abstract_bitvavo_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
68946
69008
|
* @description fetches information on multiple orders made by the user
|
|
68947
69009
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
68948
69010
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
68949
|
-
* @param {int} [limit] the maximum number of
|
|
69011
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
68950
69012
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
68951
69013
|
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
68952
69014
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
@@ -70771,7 +70833,7 @@ class blockchaincom extends _abstract_blockchaincom_js__WEBPACK_IMPORTED_MODULE_
|
|
|
70771
70833
|
* @description fetches information on multiple closed orders made by the user
|
|
70772
70834
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
70773
70835
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
70774
|
-
* @param {int} [limit] the maximum number of
|
|
70836
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
70775
70837
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
70776
70838
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
70777
70839
|
*/
|
|
@@ -72048,7 +72110,7 @@ class btcalpha extends _abstract_btcalpha_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
72048
72110
|
* @description fetches information on multiple orders made by the user
|
|
72049
72111
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
72050
72112
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
72051
|
-
* @param {int} [limit] the maximum number of
|
|
72113
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
72052
72114
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
72053
72115
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
72054
72116
|
*/
|
|
@@ -72088,7 +72150,7 @@ class btcalpha extends _abstract_btcalpha_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
72088
72150
|
* @description fetches information on multiple closed orders made by the user
|
|
72089
72151
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
72090
72152
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
72091
|
-
* @param {int} [limit] the maximum number of
|
|
72153
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
72092
72154
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
72093
72155
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
72094
72156
|
*/
|
|
@@ -72677,7 +72739,7 @@ class btcbox extends _abstract_btcbox_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
72677
72739
|
* @description fetches information on multiple orders made by the user
|
|
72678
72740
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
72679
72741
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
72680
|
-
* @param {int} [limit] the maximum number of
|
|
72742
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
72681
72743
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
72682
72744
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
72683
72745
|
*/
|
|
@@ -73789,7 +73851,7 @@ class btcmarkets extends _abstract_btcmarkets_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
73789
73851
|
* @description fetches information on multiple orders made by the user
|
|
73790
73852
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
73791
73853
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
73792
|
-
* @param {int} [limit] the maximum number of
|
|
73854
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
73793
73855
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
73794
73856
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
73795
73857
|
*/
|
|
@@ -73832,7 +73894,7 @@ class btcmarkets extends _abstract_btcmarkets_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
73832
73894
|
* @description fetches information on multiple closed orders made by the user
|
|
73833
73895
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
73834
73896
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
73835
|
-
* @param {int} [limit] the maximum number of
|
|
73897
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
73836
73898
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
73837
73899
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
73838
73900
|
*/
|
|
@@ -74742,7 +74804,7 @@ class btcturk extends _abstract_btcturk_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
74742
74804
|
* @description fetches information on multiple orders made by the user
|
|
74743
74805
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
74744
74806
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
74745
|
-
* @param {int} [limit] the maximum number of
|
|
74807
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
74746
74808
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
74747
74809
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
74748
74810
|
*/
|
|
@@ -79387,7 +79449,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
79387
79449
|
* @see https://bybit-exchange.github.io/docs/v5/order/order-list
|
|
79388
79450
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
79389
79451
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
79390
|
-
* @param {int} [limit] the maximum number of
|
|
79452
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
79391
79453
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
79392
79454
|
* @param {boolean} [params.stop] true if stop order
|
|
79393
79455
|
* @param {string} [params.type] market type, ['swap', 'option', 'spot']
|
|
@@ -79503,7 +79565,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
79503
79565
|
* @see https://bybit-exchange.github.io/docs/v5/order/order-list
|
|
79504
79566
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
79505
79567
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
79506
|
-
* @param {int} [limit] the maximum number of
|
|
79568
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
79507
79569
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
79508
79570
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
79509
79571
|
*/
|
|
@@ -83917,7 +83979,7 @@ class cex extends _abstract_cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
83917
83979
|
* @description fetches information on multiple orders made by the user
|
|
83918
83980
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
83919
83981
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
83920
|
-
* @param {int} [limit] the maximum number of
|
|
83982
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
83921
83983
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
83922
83984
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
83923
83985
|
*/
|
|
@@ -88707,7 +88769,7 @@ class coinbasepro extends _abstract_coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
88707
88769
|
* @description fetches information on multiple orders made by the user
|
|
88708
88770
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
88709
88771
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
88710
|
-
* @param {int} [limit] the maximum number of
|
|
88772
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
88711
88773
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
88712
88774
|
* @param {int} [params.until] the latest time in ms to fetch open orders for
|
|
88713
88775
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -88765,7 +88827,7 @@ class coinbasepro extends _abstract_coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
88765
88827
|
* @description fetches information on multiple closed orders made by the user
|
|
88766
88828
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
88767
88829
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
88768
|
-
* @param {int} [limit] the maximum number of
|
|
88830
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
88769
88831
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
88770
88832
|
* @param {int} [params.until] the latest time in ms to fetch open orders for
|
|
88771
88833
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -93493,7 +93555,7 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
93493
93555
|
* @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot003_trade012_finished_order
|
|
93494
93556
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
93495
93557
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
93496
|
-
* @param {int} [limit] the maximum number of
|
|
93558
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
93497
93559
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
93498
93560
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
93499
93561
|
*/
|
|
@@ -96907,7 +96969,7 @@ class coinlist extends _abstract_coinlist_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
96907
96969
|
* @see https://trade-docs.coinlist.co/?javascript--nodejs#list-orders
|
|
96908
96970
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
96909
96971
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
96910
|
-
* @param {int} [limit] the maximum number of
|
|
96972
|
+
* @param {int} [limit] the maximum number of order structures to retrieve (default 200, max 500)
|
|
96911
96973
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
96912
96974
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
96913
96975
|
* @param {string|string[]} [params.status] the status of the order - 'accepted', 'done', 'canceled', 'rejected', 'pending' (default [ 'accepted', 'done', 'canceled', 'rejected', 'pending' ])
|
|
@@ -113002,7 +113064,7 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
113002
113064
|
* @description fetches information on multiple closed orders made by the user
|
|
113003
113065
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
113004
113066
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
113005
|
-
* @param {int} [limit] the maximum number of
|
|
113067
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
113006
113068
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
113007
113069
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
113008
113070
|
*/
|
|
@@ -116541,7 +116603,7 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
116541
116603
|
* @see https://docs.digifinex.com/en-ww/swap/v2/rest.html#historyorder
|
|
116542
116604
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
116543
116605
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
116544
|
-
* @param {int} [limit] the maximum number of
|
|
116606
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
116545
116607
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
116546
116608
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
116547
116609
|
*/
|
|
@@ -125984,7 +126046,7 @@ class gate extends _abstract_gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
125984
126046
|
* @see https://www.gate.io/docs/developers/apiv4/en/#list-options-orders
|
|
125985
126047
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
125986
126048
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
125987
|
-
* @param {int} [limit] the maximum number of
|
|
126049
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
125988
126050
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
125989
126051
|
* @param {bool} [params.stop] true for fetching stop orders
|
|
125990
126052
|
* @param {string} [params.type] spot, swap or future, if not provided this.options['defaultType'] is used
|
|
@@ -132030,7 +132092,7 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
132030
132092
|
* @see https://api.hitbtc.com/#margin-orders-history
|
|
132031
132093
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
132032
132094
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
132033
|
-
* @param {int} [limit] the maximum number of
|
|
132095
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
132034
132096
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
132035
132097
|
* @param {string} [params.marginMode] 'cross' or 'isolated' only 'isolated' is supported
|
|
132036
132098
|
* @param {bool} [params.margin] true for fetching margin orders
|
|
@@ -134836,7 +134898,7 @@ class hollaex extends _abstract_hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
134836
134898
|
* @description fetches information on multiple closed orders made by the user
|
|
134837
134899
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
134838
134900
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
134839
|
-
* @param {int} [limit] the maximum number of
|
|
134901
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
134840
134902
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
134841
134903
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
134842
134904
|
*/
|
|
@@ -134894,7 +134956,7 @@ class hollaex extends _abstract_hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
134894
134956
|
* @description fetches information on multiple orders made by the user
|
|
134895
134957
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
134896
134958
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
134897
|
-
* @param {int} [limit] the maximum number of
|
|
134959
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
134898
134960
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
134899
134961
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
134900
134962
|
*/
|
|
@@ -139932,7 +139994,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
139932
139994
|
* @description fetches information on multiple closed orders made by the user
|
|
139933
139995
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
139934
139996
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
139935
|
-
* @param {int} [limit] the maximum number of
|
|
139997
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
139936
139998
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
139937
139999
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
139938
140000
|
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
@@ -145822,7 +145884,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
145822
145884
|
* @description fetches information on multiple orders made by the user
|
|
145823
145885
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
145824
145886
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
145825
|
-
* @param {int} [limit] the maximum number of
|
|
145887
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
145826
145888
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
145827
145889
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
145828
145890
|
*/
|
|
@@ -145855,7 +145917,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
145855
145917
|
* @description fetches information on multiple closed orders made by the user
|
|
145856
145918
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
145857
145919
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
145858
|
-
* @param {int} [limit] the maximum number of
|
|
145920
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
145859
145921
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
145860
145922
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
145861
145923
|
*/
|
|
@@ -147505,7 +147567,7 @@ class idex extends _abstract_idex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
147505
147567
|
* @description fetches information on multiple closed orders made by the user
|
|
147506
147568
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
147507
147569
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
147508
|
-
* @param {int} [limit] the maximum number of
|
|
147570
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
147509
147571
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
147510
147572
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
147511
147573
|
*/
|
|
@@ -148869,7 +148931,7 @@ class independentreserve extends _abstract_independentreserve_js__WEBPACK_IMPORT
|
|
|
148869
148931
|
* @description fetches information on multiple closed orders made by the user
|
|
148870
148932
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
148871
148933
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
148872
|
-
* @param {int} [limit] the maximum number of
|
|
148934
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
148873
148935
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
148874
148936
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
148875
148937
|
*/
|
|
@@ -152285,7 +152347,7 @@ class kraken extends _abstract_kraken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
152285
152347
|
* @see https://docs.kraken.com/rest/#tag/Account-Data/operation/getClosedOrders
|
|
152286
152348
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
152287
152349
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
152288
|
-
* @param {int} [limit] the maximum number of
|
|
152350
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
152289
152351
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
152290
152352
|
* @param {int} [params.until] timestamp in ms of the latest entry
|
|
152291
152353
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -155526,15 +155588,15 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
155526
155588
|
'closeAllPositions': false,
|
|
155527
155589
|
'closePosition': false,
|
|
155528
155590
|
'createDepositAddress': true,
|
|
155591
|
+
'createMarketBuyOrderWithCost': true,
|
|
155592
|
+
'createMarketOrderWithCost': true,
|
|
155593
|
+
'createMarketSellOrderWithCost': true,
|
|
155529
155594
|
'createOrder': true,
|
|
155530
155595
|
'createOrders': true,
|
|
155531
155596
|
'createPostOnlyOrder': true,
|
|
155532
155597
|
'createStopLimitOrder': true,
|
|
155533
155598
|
'createStopMarketOrder': true,
|
|
155534
155599
|
'createStopOrder': true,
|
|
155535
|
-
'createMarketBuyOrderWithCost': true,
|
|
155536
|
-
'createMarketOrderWithCost': true,
|
|
155537
|
-
'createMarketSellOrderWithCost': true,
|
|
155538
155600
|
'editOrder': true,
|
|
155539
155601
|
'fetchAccounts': true,
|
|
155540
155602
|
'fetchBalance': true,
|
|
@@ -157921,7 +157983,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
157921
157983
|
* @see https://docs.kucoin.com/spot-hf/#obtain-list-of-filled-hf-orders
|
|
157922
157984
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
157923
157985
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
157924
|
-
* @param {int} [limit] the maximum number of
|
|
157986
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
157925
157987
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
157926
157988
|
* @param {int} [params.till] end time in ms
|
|
157927
157989
|
* @param {string} [params.side] buy or sell
|
|
@@ -161528,7 +161590,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
161528
161590
|
* @see https://docs.kucoin.com/futures/#get-order-list
|
|
161529
161591
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
161530
161592
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
161531
|
-
* @param {int} [limit] the maximum number of
|
|
161593
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
161532
161594
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
161533
161595
|
* @param {int} [params.till] end time in ms
|
|
161534
161596
|
* @param {string} [params.side] buy or sell
|
|
@@ -163708,7 +163770,7 @@ class kuna extends _abstract_kuna_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
163708
163770
|
* @see https://docs.kuna.io/docs/get-private-orders-history
|
|
163709
163771
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
163710
163772
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
163711
|
-
* @param {int} [limit] the maximum number of
|
|
163773
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
163712
163774
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
163713
163775
|
* @param {int} [params.until] the latest time in ms to fetch orders for
|
|
163714
163776
|
*
|
|
@@ -165539,7 +165601,7 @@ class latoken extends _abstract_latoken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
165539
165601
|
* @see https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrdersByPair // stop
|
|
165540
165602
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
165541
165603
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
165542
|
-
* @param {int} [limit] the maximum number of
|
|
165604
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
165543
165605
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
165544
165606
|
* @param {boolean} [params.trigger] true if fetching trigger orders
|
|
165545
165607
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -169447,7 +169509,7 @@ class luno extends _abstract_luno_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
169447
169509
|
* @description fetches information on multiple orders made by the user
|
|
169448
169510
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
169449
169511
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
169450
|
-
* @param {int} [limit] the maximum number of
|
|
169512
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
169451
169513
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
169452
169514
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
169453
169515
|
*/
|
|
@@ -169473,7 +169535,7 @@ class luno extends _abstract_luno_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
169473
169535
|
* @description fetches information on multiple closed orders made by the user
|
|
169474
169536
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
169475
169537
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
169476
|
-
* @param {int} [limit] the maximum number of
|
|
169538
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
169477
169539
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
169478
169540
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
169479
169541
|
*/
|
|
@@ -171001,7 +171063,7 @@ class lykke extends _abstract_lykke_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
171001
171063
|
* @description fetches information on multiple closed orders made by the user
|
|
171002
171064
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
171003
171065
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
171004
|
-
* @param {int} [limit] the maximum number of
|
|
171066
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
171005
171067
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
171006
171068
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
171007
171069
|
*/
|
|
@@ -174748,7 +174810,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
174748
174810
|
* @description fetches information on multiple orders made by the user
|
|
174749
174811
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
174750
174812
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
174751
|
-
* @param {int} [limit] the maximum number of
|
|
174813
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
174752
174814
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
174753
174815
|
* @param {string} [params.marginMode] only 'isolated' is supported, for spot-margin trading
|
|
174754
174816
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -175071,7 +175133,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
175071
175133
|
* @description fetches information on multiple closed orders made by the user
|
|
175072
175134
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
175073
175135
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
175074
|
-
* @param {int} [limit] the maximum number of
|
|
175136
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
175075
175137
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
175076
175138
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
175077
175139
|
*/
|
|
@@ -179336,7 +179398,7 @@ class ndax extends _abstract_ndax_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
179336
179398
|
* @description fetches information on multiple orders made by the user
|
|
179337
179399
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
179338
179400
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
179339
|
-
* @param {int} [limit] the maximum number of
|
|
179401
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
179340
179402
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
179341
179403
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
179342
179404
|
*/
|
|
@@ -181019,7 +181081,7 @@ class novadax extends _abstract_novadax_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
181019
181081
|
* @see https://doc.novadax.com/en-US/#get-order-history
|
|
181020
181082
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
181021
181083
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
181022
|
-
* @param {int} [limit] the maximum number of
|
|
181084
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
181023
181085
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
181024
181086
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
181025
181087
|
*/
|
|
@@ -181096,7 +181158,7 @@ class novadax extends _abstract_novadax_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
181096
181158
|
* @see https://doc.novadax.com/en-US/#get-order-history
|
|
181097
181159
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
181098
181160
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
181099
|
-
* @param {int} [limit] the maximum number of
|
|
181161
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
181100
181162
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
181101
181163
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
181102
181164
|
*/
|
|
@@ -182385,7 +182447,7 @@ class oceanex extends _abstract_oceanex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
182385
182447
|
* @see https://api.oceanex.pro/doc/v1/#order-status-get
|
|
182386
182448
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
182387
182449
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
182388
|
-
* @param {int} [limit] the maximum number of
|
|
182450
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
182389
182451
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
182390
182452
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
182391
182453
|
*/
|
|
@@ -184714,7 +184776,7 @@ class okcoin extends _abstract_okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
184714
184776
|
* @description fetches information on multiple closed orders made by the user
|
|
184715
184777
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
184716
184778
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
184717
|
-
* @param {int} [limit] the maximum number of
|
|
184779
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
184718
184780
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
184719
184781
|
* @param {bool} [params.stop] True if fetching trigger or conditional orders
|
|
184720
184782
|
* @param {string} [params.ordType] "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"
|
|
@@ -189684,7 +189746,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
189684
189746
|
* @see https://www.okx.com/docs-v5/en/#order-book-trading-algo-trading-get-algo-order-history
|
|
189685
189747
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
189686
189748
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
189687
|
-
* @param {int} [limit] the maximum number of
|
|
189749
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
189688
189750
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
189689
189751
|
* @param {bool} [params.stop] True if fetching trigger or conditional orders
|
|
189690
189752
|
* @param {string} [params.ordType] "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"
|
|
@@ -199218,7 +199280,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
199218
199280
|
* @name phemex#setLeverage
|
|
199219
199281
|
* @description set the level of leverage for a market
|
|
199220
199282
|
* @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#set-leverage
|
|
199221
|
-
* @param {float} leverage the rate of leverage
|
|
199283
|
+
* @param {float} leverage the rate of leverage, 100 > leverage > -100 excluding numbers between -1 to 1
|
|
199222
199284
|
* @param {string} symbol unified market symbol
|
|
199223
199285
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
199224
199286
|
* @param {bool} [params.hedged] set to true if hedged position mode is enabled (by default long and short leverage are set to the same value)
|
|
@@ -199231,8 +199293,8 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
199231
199293
|
if (symbol === undefined) {
|
|
199232
199294
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' setLeverage() requires a symbol argument');
|
|
199233
199295
|
}
|
|
199234
|
-
if ((leverage <
|
|
199235
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' setLeverage() leverage should be between
|
|
199296
|
+
if ((leverage < -100) || (leverage > 100)) {
|
|
199297
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' setLeverage() leverage should be between -100 and 100');
|
|
199236
199298
|
}
|
|
199237
199299
|
await this.loadMarkets();
|
|
199238
199300
|
const isHedged = this.safeValue(params, 'hedged', false);
|
|
@@ -203386,7 +203448,7 @@ class poloniexfutures extends _abstract_poloniexfutures_js__WEBPACK_IMPORTED_MOD
|
|
|
203386
203448
|
* @see https://futures-docs.poloniex.com/#get-untriggered-stop-order-list
|
|
203387
203449
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
203388
203450
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
203389
|
-
* @param {int} [limit] the maximum number of
|
|
203451
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
203390
203452
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
203391
203453
|
* @param {int} [params.till] end time in ms
|
|
203392
203454
|
* @param {string} [params.side] buy or sell
|
|
@@ -204156,7 +204218,7 @@ class alpaca extends _alpaca_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
204156
204218
|
* @description watches information on multiple orders made by the user
|
|
204157
204219
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
204158
204220
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
204159
|
-
* @param {int} [limit] the maximum number of
|
|
204221
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
204160
204222
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
204161
204223
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
204162
204224
|
*/
|
|
@@ -205009,7 +205071,7 @@ class ascendex extends _ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
205009
205071
|
* @description watches information on multiple orders made by the user
|
|
205010
205072
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
205011
205073
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
205012
|
-
* @param {int} [limit] the maximum number of
|
|
205074
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
205013
205075
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
205014
205076
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
205015
205077
|
*/
|
|
@@ -207470,7 +207532,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
207470
207532
|
* @description watches information on multiple orders made by the user
|
|
207471
207533
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
207472
207534
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
207473
|
-
* @param {int} [limit] the maximum number of
|
|
207535
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
207474
207536
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
207475
207537
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
207476
207538
|
*/
|
|
@@ -208026,7 +208088,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
208026
208088
|
* @description watches information on multiple trades made by the user
|
|
208027
208089
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
208028
208090
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
208029
|
-
* @param {int} [limit] the maximum number of
|
|
208091
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
208030
208092
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
208031
208093
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure
|
|
208032
208094
|
*/
|
|
@@ -208498,7 +208560,7 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208498
208560
|
* @see https://bingx-api.github.io/docs/#/swapV2/socket/market.html#Subscribe%20the%20Latest%20Trade%20Detail
|
|
208499
208561
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
208500
208562
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
208501
|
-
* @param {int} [limit] the maximum number of
|
|
208563
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
208502
208564
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
208503
208565
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
208504
208566
|
*/
|
|
@@ -208587,7 +208649,8 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208587
208649
|
const data = this.safeValue(message, 'data', []);
|
|
208588
208650
|
const messageHash = this.safeString(message, 'dataType');
|
|
208589
208651
|
const marketId = messageHash.split('@')[0];
|
|
208590
|
-
const
|
|
208652
|
+
const isSwap = client.url.indexOf('swap') >= 0;
|
|
208653
|
+
const marketType = isSwap ? 'swap' : 'spot';
|
|
208591
208654
|
const market = this.safeMarket(marketId, undefined, undefined, marketType);
|
|
208592
208655
|
const symbol = market['symbol'];
|
|
208593
208656
|
let trades = undefined;
|
|
@@ -208702,7 +208765,8 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208702
208765
|
const data = this.safeValue(message, 'data', []);
|
|
208703
208766
|
const messageHash = this.safeString(message, 'dataType');
|
|
208704
208767
|
const marketId = messageHash.split('@')[0];
|
|
208705
|
-
const
|
|
208768
|
+
const isSwap = client.url.indexOf('swap') >= 0;
|
|
208769
|
+
const marketType = isSwap ? 'swap' : 'spot';
|
|
208706
208770
|
const market = this.safeMarket(marketId, undefined, undefined, marketType);
|
|
208707
208771
|
const symbol = market['symbol'];
|
|
208708
208772
|
let orderbook = this.safeValue(this.orderbooks, symbol);
|
|
@@ -208726,8 +208790,11 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208726
208790
|
// "t": 1696687440000
|
|
208727
208791
|
// }
|
|
208728
208792
|
//
|
|
208793
|
+
// for spot, opening-time (t) is used instead of closing-time (T), to be compatible with fetchOHLCV
|
|
208794
|
+
// for swap, (T) is the opening time
|
|
208795
|
+
const timestamp = (market['spot']) ? 't' : 'T';
|
|
208729
208796
|
return [
|
|
208730
|
-
this.safeInteger(ohlcv,
|
|
208797
|
+
this.safeInteger(ohlcv, timestamp),
|
|
208731
208798
|
this.safeNumber(ohlcv, 'o'),
|
|
208732
208799
|
this.safeNumber(ohlcv, 'h'),
|
|
208733
208800
|
this.safeNumber(ohlcv, 'l'),
|
|
@@ -208791,7 +208858,8 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208791
208858
|
const messageHash = this.safeString(message, 'dataType');
|
|
208792
208859
|
const timeframeId = messageHash.split('_')[1];
|
|
208793
208860
|
const marketId = messageHash.split('@')[0];
|
|
208794
|
-
const
|
|
208861
|
+
const isSwap = client.url.indexOf('swap') >= 0;
|
|
208862
|
+
const marketType = isSwap ? 'swap' : 'spot';
|
|
208795
208863
|
const market = this.safeMarket(marketId, undefined, undefined, marketType);
|
|
208796
208864
|
const symbol = market['symbol'];
|
|
208797
208865
|
this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
|
|
@@ -208855,7 +208923,7 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208855
208923
|
* @description watches information on multiple orders made by the user
|
|
208856
208924
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
208857
208925
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
208858
|
-
* @param {int} [limit] the maximum number of
|
|
208926
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
208859
208927
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
208860
208928
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
208861
208929
|
*/
|
|
@@ -209857,7 +209925,7 @@ class bitfinex extends _bitfinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
209857
209925
|
* @description watches information on multiple orders made by the user
|
|
209858
209926
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
209859
209927
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
209860
|
-
* @param {int} [limit] the maximum number of
|
|
209928
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
209861
209929
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
209862
209930
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
209863
209931
|
*/
|
|
@@ -210964,7 +211032,7 @@ class bitfinex2 extends _bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
210964
211032
|
* @description watches information on multiple orders made by the user
|
|
210965
211033
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
210966
211034
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
210967
|
-
* @param {int} [limit] the maximum number of
|
|
211035
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
210968
211036
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
210969
211037
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
210970
211038
|
*/
|
|
@@ -213427,7 +213495,7 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
213427
213495
|
const symbolKeys = Object.keys(symbols);
|
|
213428
213496
|
for (let i = 0; i < symbolKeys.length; i++) {
|
|
213429
213497
|
const symbol = symbolKeys[i];
|
|
213430
|
-
const symbolSpecificMessageHash = messageHash + '
|
|
213498
|
+
const symbolSpecificMessageHash = messageHash + '::' + symbol;
|
|
213431
213499
|
client.resolve(newOrders, symbolSpecificMessageHash);
|
|
213432
213500
|
}
|
|
213433
213501
|
client.resolve(newOrders, messageHash);
|
|
@@ -215217,7 +215285,7 @@ class bitmex extends _bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
215217
215285
|
* @description watches information on multiple orders made by the user
|
|
215218
215286
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
215219
215287
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
215220
|
-
* @param {int} [limit] the maximum number of
|
|
215288
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
215221
215289
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
215222
215290
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
215223
215291
|
*/
|
|
@@ -216758,7 +216826,7 @@ class bitpanda extends _bitpanda_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
216758
216826
|
* @description watches information on multiple orders made by the user
|
|
216759
216827
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
216760
216828
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
216761
|
-
* @param {int} [limit] the maximum number of
|
|
216829
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
216762
216830
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
216763
216831
|
* @param {string} [params.channel] can listen to orders using ACCOUNT_HISTORY or TRADING
|
|
216764
216832
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -219832,7 +219900,7 @@ class blockchaincom extends _blockchaincom_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
219832
219900
|
* @see https://exchange.blockchain.com/api/#mass-order-status-request-ordermassstatusrequest
|
|
219833
219901
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
219834
219902
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
219835
|
-
* @param {int} [limit] the maximum number of
|
|
219903
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
219836
219904
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
219837
219905
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
219838
219906
|
*/
|
|
@@ -221035,7 +221103,7 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
221035
221103
|
* @see https://bybit-exchange.github.io/docs/v5/websocket/private/execution
|
|
221036
221104
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
221037
221105
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
221038
|
-
* @param {int} [limit] the maximum number of
|
|
221106
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
221039
221107
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
221040
221108
|
* @param {boolean} [params.unifiedMargin] use unified margin account
|
|
221041
221109
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
@@ -221300,7 +221368,7 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
221300
221368
|
* @see https://bybit-exchange.github.io/docs/v5/websocket/private/order
|
|
221301
221369
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
221302
221370
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
221303
|
-
* @param {int} [limit] the maximum number of
|
|
221371
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
221304
221372
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
221305
221373
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
221306
221374
|
*/
|
|
@@ -223892,7 +223960,7 @@ class coinbase extends _coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
223892
223960
|
* @see https://docs.cloud.coinbase.com/advanced-trade-api/docs/ws-channels#user-channel
|
|
223893
223961
|
* @param {string} [symbol] unified market symbol of the market orders were made in
|
|
223894
223962
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
223895
|
-
* @param {int} [limit] the maximum number of
|
|
223963
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
223896
223964
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
223897
223965
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
223898
223966
|
*/
|
|
@@ -224460,7 +224528,7 @@ class coinbasepro extends _coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/* ["defau
|
|
|
224460
224528
|
* @description watches information on multiple orders made by the user
|
|
224461
224529
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
224462
224530
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
224463
|
-
* @param {int} [limit] the maximum number of
|
|
224531
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
224464
224532
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
224465
224533
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
224466
224534
|
*/
|
|
@@ -228307,7 +228375,7 @@ class deribit extends _deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
228307
228375
|
* @description watches information on multiple orders made by the user
|
|
228308
228376
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
228309
228377
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
228310
|
-
* @param {int} [limit] the maximum number of
|
|
228378
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
228311
228379
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
228312
228380
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
228313
228381
|
*/
|
|
@@ -230190,7 +230258,7 @@ class gate extends _gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
230190
230258
|
* @description watches information on multiple orders made by the user
|
|
230191
230259
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
230192
230260
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
230193
|
-
* @param {int} [limit] the maximum number of
|
|
230261
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
230194
230262
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
230195
230263
|
* @param {string} [params.type] spot, margin, swap, future, or option. Required if listening to all symbols.
|
|
230196
230264
|
* @param {boolean} [params.isInverse] if future, listen to inverse or linear contracts
|
|
@@ -231023,7 +231091,7 @@ class gemini extends _gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
231023
231091
|
* @see https://docs.gemini.com/websocket-api/#order-events
|
|
231024
231092
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
231025
231093
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
231026
|
-
* @param {int} [limit] the maximum number of
|
|
231094
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
231027
231095
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
231028
231096
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
231029
231097
|
*/
|
|
@@ -232857,7 +232925,7 @@ class hollaex extends _hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
232857
232925
|
* @description watches information on multiple orders made by the user
|
|
232858
232926
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
232859
232927
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
232860
|
-
* @param {int} [limit] the maximum number of
|
|
232928
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
232861
232929
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
232862
232930
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
232863
232931
|
*/
|
|
@@ -233979,7 +234047,7 @@ class htx extends _htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
233979
234047
|
* @description watches information on multiple orders made by the user
|
|
233980
234048
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
233981
234049
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
233982
|
-
* @param {int} [limit] the maximum number of
|
|
234050
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
233983
234051
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
233984
234052
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
233985
234053
|
*/
|
|
@@ -236749,7 +236817,7 @@ class idex extends _idex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
236749
236817
|
* @description watches information on multiple orders made by the user
|
|
236750
236818
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
236751
236819
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
236752
|
-
* @param {int} [limit] the maximum number of
|
|
236820
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
236753
236821
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
236754
236822
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
236755
236823
|
*/
|
|
@@ -238241,7 +238309,7 @@ class kraken extends _kraken_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
238241
238309
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
238242
238310
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
238243
238311
|
* @param {int} [limit] the maximum number of orde structures to retrieve
|
|
238244
|
-
* @param {object} [params]
|
|
238312
|
+
* @param {object} [params] maximum number of orderic to the exchange API endpoint
|
|
238245
238313
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
238246
238314
|
*/
|
|
238247
238315
|
return await this.watchPrivate('openOrders', symbol, since, limit, params);
|
|
@@ -239001,7 +239069,7 @@ class krakenfutures extends _krakenfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
239001
239069
|
* @see https://docs.futures.kraken.com/#websocket-api-private-feeds-fills
|
|
239002
239070
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
239003
239071
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
239004
|
-
* @param {int} [limit] the maximum number of
|
|
239072
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
239005
239073
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
239006
239074
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
|
|
239007
239075
|
*/
|
|
@@ -241858,7 +241926,7 @@ class kucoinfutures extends _kucoinfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
241858
241926
|
* @see https://docs.kucoin.com/futures/#trade-orders-according-to-the-market
|
|
241859
241927
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
241860
241928
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
241861
|
-
* @param {int} [limit] the maximum number of
|
|
241929
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
241862
241930
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
241863
241931
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
241864
241932
|
*/
|
|
@@ -243234,7 +243302,7 @@ class mexc extends _mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
243234
243302
|
* @description watches information on multiple orders made by the user
|
|
243235
243303
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
243236
243304
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
243237
|
-
* @param {int} [limit] the maximum number of
|
|
243305
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
243238
243306
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
243239
243307
|
* @param {string|undefined} params.type the type of orders to retrieve, can be 'spot' or 'margin'
|
|
243240
243308
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -244316,7 +244384,7 @@ class okcoin extends _okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
244316
244384
|
* @description watches information on multiple orders made by the user
|
|
244317
244385
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
244318
244386
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
244319
|
-
* @param {int} [limit] the maximum number of
|
|
244387
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
244320
244388
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
244321
244389
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
244322
244390
|
*/
|
|
@@ -245962,7 +246030,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
245962
246030
|
* @description watches information on multiple orders made by the user
|
|
245963
246031
|
* @param {string} [symbol] unified market symbol of the market orders were made in
|
|
245964
246032
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
245965
|
-
* @param {int} [limit] the maximum number of
|
|
246033
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
245966
246034
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
245967
246035
|
* @param {bool} [params.stop] true if fetching trigger or conditional orders
|
|
245968
246036
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -247451,7 +247519,7 @@ class phemex extends _phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
247451
247519
|
* @description watches information on multiple orders made by the user
|
|
247452
247520
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
247453
247521
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
247454
|
-
* @param {int} [limit] the maximum number of
|
|
247522
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
247455
247523
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
247456
247524
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
247457
247525
|
*/
|
|
@@ -249645,7 +249713,7 @@ class poloniexfutures extends _poloniexfutures_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
249645
249713
|
* @see https://futures-docs.poloniex.com/#private-messages
|
|
249646
249714
|
* @param {string} symbol filter by unified market symbol of the market orders were made in
|
|
249647
249715
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
249648
|
-
* @param {int} [limit] the maximum number of
|
|
249716
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
249649
249717
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
249650
249718
|
* @param {string} [params.method] the method to use will default to /contractMarket/tradeOrders. Set to /contractMarket/advancedOrders to watch stop orders
|
|
249651
249719
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -254762,7 +254830,7 @@ class probit extends _abstract_probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
254762
254830
|
* @description fetches information on multiple closed orders made by the user
|
|
254763
254831
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
254764
254832
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
254765
|
-
* @param {int} [limit] the maximum number of
|
|
254833
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
254766
254834
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
254767
254835
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
254768
254836
|
*/
|
|
@@ -265510,7 +265578,7 @@ class timex extends _abstract_timex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
265510
265578
|
* @description fetches information on multiple closed orders made by the user
|
|
265511
265579
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
265512
265580
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
265513
|
-
* @param {int} [limit] the maximum number of
|
|
265581
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
265514
265582
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
265515
265583
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
265516
265584
|
*/
|
|
@@ -267987,7 +268055,7 @@ class tokocrypto extends _abstract_tokocrypto_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
267987
268055
|
* @description fetches information on multiple closed orders made by the user
|
|
267988
268056
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
267989
268057
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
267990
|
-
* @param {int} [limit] the maximum number of
|
|
268058
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
267991
268059
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
267992
268060
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
267993
268061
|
*/
|
|
@@ -270158,7 +270226,7 @@ class upbit extends _abstract_upbit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
270158
270226
|
* @description fetches information on multiple closed orders made by the user
|
|
270159
270227
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
270160
270228
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
270161
|
-
* @param {int} [limit] the maximum number of
|
|
270229
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
270162
270230
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
270163
270231
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
270164
270232
|
*/
|
|
@@ -272124,7 +272192,7 @@ class wavesexchange extends _abstract_wavesexchange_js__WEBPACK_IMPORTED_MODULE_
|
|
|
272124
272192
|
* @description fetches information on multiple closed orders made by the user
|
|
272125
272193
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
272126
272194
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
272127
|
-
* @param {int} [limit] the maximum number of
|
|
272195
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
272128
272196
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
272129
272197
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
272130
272198
|
*/
|
|
@@ -275478,7 +275546,7 @@ class whitebit extends _abstract_whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
275478
275546
|
* @see https://docs.whitebit.com/private/http-trade-v4/#query-executed-orders
|
|
275479
275547
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
275480
275548
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
275481
|
-
* @param {int} [limit] the maximum number of
|
|
275549
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
275482
275550
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
275483
275551
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
275484
275552
|
*/
|
|
@@ -277580,7 +277648,7 @@ class woo extends _abstract_woo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
277580
277648
|
* @description fetches information on multiple orders made by the user
|
|
277581
277649
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
277582
277650
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
277583
|
-
* @param {int} [limit] the maximum number of
|
|
277651
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
277584
277652
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
277585
277653
|
* @param {boolean} [params.stop] whether the order is a stop/algo order
|
|
277586
277654
|
* @param {boolean} [params.isTriggered] whether the order has been triggered (false by default)
|
|
@@ -280377,752 +280445,6 @@ class yobit extends _abstract_yobit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
280377
280445
|
}
|
|
280378
280446
|
|
|
280379
280447
|
|
|
280380
|
-
/***/ }),
|
|
280381
|
-
|
|
280382
|
-
/***/ 5934:
|
|
280383
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
280384
|
-
|
|
280385
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
280386
|
-
/* harmony export */ Z: () => (/* binding */ zaif)
|
|
280387
|
-
/* harmony export */ });
|
|
280388
|
-
/* harmony import */ var _abstract_zaif_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5224);
|
|
280389
|
-
/* harmony import */ var _base_errors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6689);
|
|
280390
|
-
/* harmony import */ var _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2194);
|
|
280391
|
-
/* harmony import */ var _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9292);
|
|
280392
|
-
/* harmony import */ var _static_dependencies_noble_hashes_sha512_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7110);
|
|
280393
|
-
// ---------------------------------------------------------------------------
|
|
280394
|
-
|
|
280395
|
-
|
|
280396
|
-
|
|
280397
|
-
|
|
280398
|
-
|
|
280399
|
-
// ---------------------------------------------------------------------------
|
|
280400
|
-
/**
|
|
280401
|
-
* @class zaif
|
|
280402
|
-
* @augments Exchange
|
|
280403
|
-
*/
|
|
280404
|
-
class zaif extends _abstract_zaif_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
280405
|
-
describe() {
|
|
280406
|
-
return this.deepExtend(super.describe(), {
|
|
280407
|
-
'id': 'zaif',
|
|
280408
|
-
'name': 'Zaif',
|
|
280409
|
-
'countries': ['JP'],
|
|
280410
|
-
// 10 requests per second = 1000ms / 10 = 100ms between requests (public market endpoints)
|
|
280411
|
-
'rateLimit': 100,
|
|
280412
|
-
'version': '1',
|
|
280413
|
-
'has': {
|
|
280414
|
-
'CORS': undefined,
|
|
280415
|
-
'spot': true,
|
|
280416
|
-
'margin': undefined,
|
|
280417
|
-
'swap': false,
|
|
280418
|
-
'future': false,
|
|
280419
|
-
'option': false,
|
|
280420
|
-
'cancelOrder': true,
|
|
280421
|
-
'createMarketOrder': false,
|
|
280422
|
-
'createOrder': true,
|
|
280423
|
-
'fetchBalance': true,
|
|
280424
|
-
'fetchClosedOrders': true,
|
|
280425
|
-
'fetchFundingHistory': false,
|
|
280426
|
-
'fetchFundingRate': false,
|
|
280427
|
-
'fetchFundingRateHistory': false,
|
|
280428
|
-
'fetchFundingRates': false,
|
|
280429
|
-
'fetchIndexOHLCV': false,
|
|
280430
|
-
'fetchMarkets': true,
|
|
280431
|
-
'fetchMarkOHLCV': false,
|
|
280432
|
-
'fetchOpenInterestHistory': false,
|
|
280433
|
-
'fetchOpenOrders': true,
|
|
280434
|
-
'fetchOrderBook': true,
|
|
280435
|
-
'fetchPremiumIndexOHLCV': false,
|
|
280436
|
-
'fetchTicker': true,
|
|
280437
|
-
'fetchTrades': true,
|
|
280438
|
-
'fetchTradingFee': false,
|
|
280439
|
-
'fetchTradingFees': false,
|
|
280440
|
-
'withdraw': true,
|
|
280441
|
-
},
|
|
280442
|
-
'urls': {
|
|
280443
|
-
'logo': 'https://user-images.githubusercontent.com/1294454/27766927-39ca2ada-5eeb-11e7-972f-1b4199518ca6.jpg',
|
|
280444
|
-
'api': {
|
|
280445
|
-
'rest': 'https://api.zaif.jp',
|
|
280446
|
-
},
|
|
280447
|
-
'www': 'https://zaif.jp',
|
|
280448
|
-
'doc': [
|
|
280449
|
-
'https://techbureau-api-document.readthedocs.io/ja/latest/index.html',
|
|
280450
|
-
'https://corp.zaif.jp/api-docs',
|
|
280451
|
-
'https://corp.zaif.jp/api-docs/api_links',
|
|
280452
|
-
'https://www.npmjs.com/package/zaif.jp',
|
|
280453
|
-
'https://github.com/you21979/node-zaif',
|
|
280454
|
-
],
|
|
280455
|
-
'fees': 'https://zaif.jp/fee?lang=en',
|
|
280456
|
-
},
|
|
280457
|
-
'fees': {
|
|
280458
|
-
'trading': {
|
|
280459
|
-
'percentage': true,
|
|
280460
|
-
'taker': this.parseNumber('0.001'),
|
|
280461
|
-
'maker': this.parseNumber('0'),
|
|
280462
|
-
},
|
|
280463
|
-
},
|
|
280464
|
-
'api': {
|
|
280465
|
-
'public': {
|
|
280466
|
-
'get': {
|
|
280467
|
-
'depth/{pair}': 1,
|
|
280468
|
-
'currencies/{pair}': 1,
|
|
280469
|
-
'currencies/all': 1,
|
|
280470
|
-
'currency_pairs/{pair}': 1,
|
|
280471
|
-
'currency_pairs/all': 1,
|
|
280472
|
-
'last_price/{pair}': 1,
|
|
280473
|
-
'ticker/{pair}': 1,
|
|
280474
|
-
'trades/{pair}': 1,
|
|
280475
|
-
},
|
|
280476
|
-
},
|
|
280477
|
-
'private': {
|
|
280478
|
-
'post': {
|
|
280479
|
-
'active_orders': 5,
|
|
280480
|
-
'cancel_order': 5,
|
|
280481
|
-
'deposit_history': 5,
|
|
280482
|
-
'get_id_info': 5,
|
|
280483
|
-
'get_info': 10,
|
|
280484
|
-
'get_info2': 5,
|
|
280485
|
-
'get_personal_info': 5,
|
|
280486
|
-
'trade': 5,
|
|
280487
|
-
'trade_history': 50,
|
|
280488
|
-
'withdraw': 5,
|
|
280489
|
-
'withdraw_history': 5,
|
|
280490
|
-
},
|
|
280491
|
-
},
|
|
280492
|
-
'ecapi': {
|
|
280493
|
-
'post': {
|
|
280494
|
-
'createInvoice': 1,
|
|
280495
|
-
'getInvoice': 1,
|
|
280496
|
-
'getInvoiceIdsByOrderNumber': 1,
|
|
280497
|
-
'cancelInvoice': 1,
|
|
280498
|
-
},
|
|
280499
|
-
},
|
|
280500
|
-
'tlapi': {
|
|
280501
|
-
'post': {
|
|
280502
|
-
'get_positions': 66,
|
|
280503
|
-
'position_history': 66,
|
|
280504
|
-
'active_positions': 5,
|
|
280505
|
-
'create_position': 33,
|
|
280506
|
-
'change_position': 33,
|
|
280507
|
-
'cancel_position': 33, // 3 in 10 seconds
|
|
280508
|
-
},
|
|
280509
|
-
},
|
|
280510
|
-
'fapi': {
|
|
280511
|
-
'get': {
|
|
280512
|
-
'groups/{group_id}': 1,
|
|
280513
|
-
'last_price/{group_id}/{pair}': 1,
|
|
280514
|
-
'ticker/{group_id}/{pair}': 1,
|
|
280515
|
-
'trades/{group_id}/{pair}': 1,
|
|
280516
|
-
'depth/{group_id}/{pair}': 1,
|
|
280517
|
-
},
|
|
280518
|
-
},
|
|
280519
|
-
},
|
|
280520
|
-
'options': {},
|
|
280521
|
-
'precisionMode': _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__/* .TICK_SIZE */ .sh,
|
|
280522
|
-
'exceptions': {
|
|
280523
|
-
'exact': {
|
|
280524
|
-
'unsupported currency_pair': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest, // {"error": "unsupported currency_pair"}
|
|
280525
|
-
},
|
|
280526
|
-
'broad': {},
|
|
280527
|
-
},
|
|
280528
|
-
});
|
|
280529
|
-
}
|
|
280530
|
-
async fetchMarkets(params = {}) {
|
|
280531
|
-
/**
|
|
280532
|
-
* @method
|
|
280533
|
-
* @name zaif#fetchMarkets
|
|
280534
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id12
|
|
280535
|
-
* @description retrieves data on all markets for zaif
|
|
280536
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280537
|
-
* @returns {object[]} an array of objects representing market data
|
|
280538
|
-
*/
|
|
280539
|
-
const markets = await this.publicGetCurrencyPairsAll(params);
|
|
280540
|
-
//
|
|
280541
|
-
// [
|
|
280542
|
-
// {
|
|
280543
|
-
// "aux_unit_point": 0,
|
|
280544
|
-
// "item_japanese": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3",
|
|
280545
|
-
// "aux_unit_step": 5.0,
|
|
280546
|
-
// "description": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3\u30fb\u65e5\u672c\u5186\u306e\u53d6\u5f15\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059",
|
|
280547
|
-
// "item_unit_min": 0.001,
|
|
280548
|
-
// "event_number": 0,
|
|
280549
|
-
// "currency_pair": "btc_jpy",
|
|
280550
|
-
// "is_token": false,
|
|
280551
|
-
// "aux_unit_min": 5.0,
|
|
280552
|
-
// "aux_japanese": "\u65e5\u672c\u5186",
|
|
280553
|
-
// "id": 1,
|
|
280554
|
-
// "item_unit_step": 0.0001,
|
|
280555
|
-
// "name": "BTC/JPY",
|
|
280556
|
-
// "seq": 0,
|
|
280557
|
-
// "title": "BTC/JPY"
|
|
280558
|
-
// }
|
|
280559
|
-
// ]
|
|
280560
|
-
//
|
|
280561
|
-
return this.parseMarkets(markets);
|
|
280562
|
-
}
|
|
280563
|
-
parseMarket(market) {
|
|
280564
|
-
const id = this.safeString(market, 'currency_pair');
|
|
280565
|
-
const name = this.safeString(market, 'name');
|
|
280566
|
-
const [baseId, quoteId] = name.split('/');
|
|
280567
|
-
const base = this.safeCurrencyCode(baseId);
|
|
280568
|
-
const quote = this.safeCurrencyCode(quoteId);
|
|
280569
|
-
const symbol = base + '/' + quote;
|
|
280570
|
-
return {
|
|
280571
|
-
'id': id,
|
|
280572
|
-
'symbol': symbol,
|
|
280573
|
-
'base': base,
|
|
280574
|
-
'quote': quote,
|
|
280575
|
-
'settle': undefined,
|
|
280576
|
-
'baseId': baseId,
|
|
280577
|
-
'quoteId': quoteId,
|
|
280578
|
-
'settleId': undefined,
|
|
280579
|
-
'type': 'spot',
|
|
280580
|
-
'spot': true,
|
|
280581
|
-
'margin': undefined,
|
|
280582
|
-
'swap': false,
|
|
280583
|
-
'future': false,
|
|
280584
|
-
'option': false,
|
|
280585
|
-
'active': undefined,
|
|
280586
|
-
'contract': false,
|
|
280587
|
-
'linear': undefined,
|
|
280588
|
-
'inverse': undefined,
|
|
280589
|
-
'contractSize': undefined,
|
|
280590
|
-
'expiry': undefined,
|
|
280591
|
-
'expiryDatetime': undefined,
|
|
280592
|
-
'strike': undefined,
|
|
280593
|
-
'optionType': undefined,
|
|
280594
|
-
'precision': {
|
|
280595
|
-
'amount': this.safeNumber(market, 'item_unit_step'),
|
|
280596
|
-
'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'aux_unit_point'))),
|
|
280597
|
-
},
|
|
280598
|
-
'limits': {
|
|
280599
|
-
'leverage': {
|
|
280600
|
-
'min': undefined,
|
|
280601
|
-
'max': undefined,
|
|
280602
|
-
},
|
|
280603
|
-
'amount': {
|
|
280604
|
-
'min': this.safeNumber(market, 'item_unit_min'),
|
|
280605
|
-
'max': undefined,
|
|
280606
|
-
},
|
|
280607
|
-
'price': {
|
|
280608
|
-
'min': this.safeNumber(market, 'aux_unit_min'),
|
|
280609
|
-
'max': undefined,
|
|
280610
|
-
},
|
|
280611
|
-
'cost': {
|
|
280612
|
-
'min': undefined,
|
|
280613
|
-
'max': undefined,
|
|
280614
|
-
},
|
|
280615
|
-
},
|
|
280616
|
-
'created': undefined,
|
|
280617
|
-
'info': market,
|
|
280618
|
-
};
|
|
280619
|
-
}
|
|
280620
|
-
parseBalance(response) {
|
|
280621
|
-
const balances = this.safeValue(response, 'return', {});
|
|
280622
|
-
const deposit = this.safeValue(balances, 'deposit');
|
|
280623
|
-
const result = {
|
|
280624
|
-
'info': response,
|
|
280625
|
-
'timestamp': undefined,
|
|
280626
|
-
'datetime': undefined,
|
|
280627
|
-
};
|
|
280628
|
-
const funds = this.safeValue(balances, 'funds', {});
|
|
280629
|
-
const currencyIds = Object.keys(funds);
|
|
280630
|
-
for (let i = 0; i < currencyIds.length; i++) {
|
|
280631
|
-
const currencyId = currencyIds[i];
|
|
280632
|
-
const code = this.safeCurrencyCode(currencyId);
|
|
280633
|
-
const balance = this.safeString(funds, currencyId);
|
|
280634
|
-
const account = this.account();
|
|
280635
|
-
account['free'] = balance;
|
|
280636
|
-
account['total'] = balance;
|
|
280637
|
-
if (deposit !== undefined) {
|
|
280638
|
-
if (currencyId in deposit) {
|
|
280639
|
-
account['total'] = this.safeString(deposit, currencyId);
|
|
280640
|
-
}
|
|
280641
|
-
}
|
|
280642
|
-
result[code] = account;
|
|
280643
|
-
}
|
|
280644
|
-
return this.safeBalance(result);
|
|
280645
|
-
}
|
|
280646
|
-
async fetchBalance(params = {}) {
|
|
280647
|
-
/**
|
|
280648
|
-
* @method
|
|
280649
|
-
* @name zaif#fetchBalance
|
|
280650
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id10
|
|
280651
|
-
* @description query for balance and get the amount of funds available for trading or funds locked in orders
|
|
280652
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280653
|
-
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
|
|
280654
|
-
*/
|
|
280655
|
-
await this.loadMarkets();
|
|
280656
|
-
const response = await this.privatePostGetInfo(params);
|
|
280657
|
-
return this.parseBalance(response);
|
|
280658
|
-
}
|
|
280659
|
-
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
280660
|
-
/**
|
|
280661
|
-
* @method
|
|
280662
|
-
* @name zaif#fetchOrderBook
|
|
280663
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id34
|
|
280664
|
-
* @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
280665
|
-
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
280666
|
-
* @param {int} [limit] the maximum amount of order book entries to return
|
|
280667
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280668
|
-
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
280669
|
-
*/
|
|
280670
|
-
await this.loadMarkets();
|
|
280671
|
-
const market = this.market(symbol);
|
|
280672
|
-
const request = {
|
|
280673
|
-
'pair': market['id'],
|
|
280674
|
-
};
|
|
280675
|
-
const response = await this.publicGetDepthPair(this.extend(request, params));
|
|
280676
|
-
return this.parseOrderBook(response, market['symbol']);
|
|
280677
|
-
}
|
|
280678
|
-
parseTicker(ticker, market = undefined) {
|
|
280679
|
-
//
|
|
280680
|
-
// {
|
|
280681
|
-
// "last": 9e-08,
|
|
280682
|
-
// "high": 1e-07,
|
|
280683
|
-
// "low": 9e-08,
|
|
280684
|
-
// "vwap": 0.0,
|
|
280685
|
-
// "volume": 135250.0,
|
|
280686
|
-
// "bid": 9e-08,
|
|
280687
|
-
// "ask": 1e-07
|
|
280688
|
-
// }
|
|
280689
|
-
//
|
|
280690
|
-
const symbol = this.safeSymbol(undefined, market);
|
|
280691
|
-
const vwap = this.safeString(ticker, 'vwap');
|
|
280692
|
-
const baseVolume = this.safeString(ticker, 'volume');
|
|
280693
|
-
const quoteVolume = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.stringMul(baseVolume, vwap);
|
|
280694
|
-
const last = this.safeString(ticker, 'last');
|
|
280695
|
-
return this.safeTicker({
|
|
280696
|
-
'symbol': symbol,
|
|
280697
|
-
'timestamp': undefined,
|
|
280698
|
-
'datetime': undefined,
|
|
280699
|
-
'high': this.safeString(ticker, 'high'),
|
|
280700
|
-
'low': this.safeString(ticker, 'low'),
|
|
280701
|
-
'bid': this.safeString(ticker, 'bid'),
|
|
280702
|
-
'bidVolume': undefined,
|
|
280703
|
-
'ask': this.safeString(ticker, 'ask'),
|
|
280704
|
-
'askVolume': undefined,
|
|
280705
|
-
'vwap': vwap,
|
|
280706
|
-
'open': undefined,
|
|
280707
|
-
'close': last,
|
|
280708
|
-
'last': last,
|
|
280709
|
-
'previousClose': undefined,
|
|
280710
|
-
'change': undefined,
|
|
280711
|
-
'percentage': undefined,
|
|
280712
|
-
'average': undefined,
|
|
280713
|
-
'baseVolume': baseVolume,
|
|
280714
|
-
'quoteVolume': quoteVolume,
|
|
280715
|
-
'info': ticker,
|
|
280716
|
-
}, market);
|
|
280717
|
-
}
|
|
280718
|
-
async fetchTicker(symbol, params = {}) {
|
|
280719
|
-
/**
|
|
280720
|
-
* @method
|
|
280721
|
-
* @name zaif#fetchTicker
|
|
280722
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id22
|
|
280723
|
-
* @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
280724
|
-
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
280725
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280726
|
-
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
280727
|
-
*/
|
|
280728
|
-
await this.loadMarkets();
|
|
280729
|
-
const market = this.market(symbol);
|
|
280730
|
-
const request = {
|
|
280731
|
-
'pair': market['id'],
|
|
280732
|
-
};
|
|
280733
|
-
const ticker = await this.publicGetTickerPair(this.extend(request, params));
|
|
280734
|
-
//
|
|
280735
|
-
// {
|
|
280736
|
-
// "last": 9e-08,
|
|
280737
|
-
// "high": 1e-07,
|
|
280738
|
-
// "low": 9e-08,
|
|
280739
|
-
// "vwap": 0.0,
|
|
280740
|
-
// "volume": 135250.0,
|
|
280741
|
-
// "bid": 9e-08,
|
|
280742
|
-
// "ask": 1e-07
|
|
280743
|
-
// }
|
|
280744
|
-
//
|
|
280745
|
-
return this.parseTicker(ticker, market);
|
|
280746
|
-
}
|
|
280747
|
-
parseTrade(trade, market = undefined) {
|
|
280748
|
-
//
|
|
280749
|
-
// fetchTrades (public)
|
|
280750
|
-
//
|
|
280751
|
-
// {
|
|
280752
|
-
// "date": 1648559414,
|
|
280753
|
-
// "price": 5880375.0,
|
|
280754
|
-
// "amount": 0.017,
|
|
280755
|
-
// "tid": 176126557,
|
|
280756
|
-
// "currency_pair": "btc_jpy",
|
|
280757
|
-
// "trade_type": "ask"
|
|
280758
|
-
// }
|
|
280759
|
-
//
|
|
280760
|
-
let side = this.safeString(trade, 'trade_type');
|
|
280761
|
-
side = (side === 'bid') ? 'buy' : 'sell';
|
|
280762
|
-
const timestamp = this.safeTimestamp(trade, 'date');
|
|
280763
|
-
const id = this.safeString2(trade, 'id', 'tid');
|
|
280764
|
-
const priceString = this.safeString(trade, 'price');
|
|
280765
|
-
const amountString = this.safeString(trade, 'amount');
|
|
280766
|
-
const marketId = this.safeString(trade, 'currency_pair');
|
|
280767
|
-
const symbol = this.safeSymbol(marketId, market, '_');
|
|
280768
|
-
return this.safeTrade({
|
|
280769
|
-
'id': id,
|
|
280770
|
-
'info': trade,
|
|
280771
|
-
'timestamp': timestamp,
|
|
280772
|
-
'datetime': this.iso8601(timestamp),
|
|
280773
|
-
'symbol': symbol,
|
|
280774
|
-
'type': undefined,
|
|
280775
|
-
'side': side,
|
|
280776
|
-
'order': undefined,
|
|
280777
|
-
'takerOrMaker': undefined,
|
|
280778
|
-
'price': priceString,
|
|
280779
|
-
'amount': amountString,
|
|
280780
|
-
'cost': undefined,
|
|
280781
|
-
'fee': undefined,
|
|
280782
|
-
}, market);
|
|
280783
|
-
}
|
|
280784
|
-
async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
280785
|
-
/**
|
|
280786
|
-
* @method
|
|
280787
|
-
* @name zaif#fetchTrades
|
|
280788
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id28
|
|
280789
|
-
* @description get the list of most recent trades for a particular symbol
|
|
280790
|
-
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
280791
|
-
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
280792
|
-
* @param {int} [limit] the maximum amount of trades to fetch
|
|
280793
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280794
|
-
* @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
280795
|
-
*/
|
|
280796
|
-
await this.loadMarkets();
|
|
280797
|
-
const market = this.market(symbol);
|
|
280798
|
-
const request = {
|
|
280799
|
-
'pair': market['id'],
|
|
280800
|
-
};
|
|
280801
|
-
let response = await this.publicGetTradesPair(this.extend(request, params));
|
|
280802
|
-
//
|
|
280803
|
-
// [
|
|
280804
|
-
// {
|
|
280805
|
-
// "date": 1648559414,
|
|
280806
|
-
// "price": 5880375.0,
|
|
280807
|
-
// "amount": 0.017,
|
|
280808
|
-
// "tid": 176126557,
|
|
280809
|
-
// "currency_pair": "btc_jpy",
|
|
280810
|
-
// "trade_type": "ask"
|
|
280811
|
-
// }, ...
|
|
280812
|
-
// ]
|
|
280813
|
-
//
|
|
280814
|
-
const numTrades = response.length;
|
|
280815
|
-
if (numTrades === 1) {
|
|
280816
|
-
const firstTrade = response[0];
|
|
280817
|
-
if (!Object.keys(firstTrade).length) {
|
|
280818
|
-
response = [];
|
|
280819
|
-
}
|
|
280820
|
-
}
|
|
280821
|
-
return this.parseTrades(response, market, since, limit);
|
|
280822
|
-
}
|
|
280823
|
-
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
280824
|
-
/**
|
|
280825
|
-
* @method
|
|
280826
|
-
* @name zaif#createOrder
|
|
280827
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/MarginTradingAPI.html#id23
|
|
280828
|
-
* @description create a trade order
|
|
280829
|
-
* @param {string} symbol unified symbol of the market to create an order in
|
|
280830
|
-
* @param {string} type must be 'limit'
|
|
280831
|
-
* @param {string} side 'buy' or 'sell'
|
|
280832
|
-
* @param {float} amount how much of currency you want to trade in units of base currency
|
|
280833
|
-
* @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
|
280834
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280835
|
-
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
280836
|
-
*/
|
|
280837
|
-
await this.loadMarkets();
|
|
280838
|
-
if (type !== 'limit') {
|
|
280839
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(this.id + ' createOrder() allows limit orders only');
|
|
280840
|
-
}
|
|
280841
|
-
const market = this.market(symbol);
|
|
280842
|
-
const request = {
|
|
280843
|
-
'currency_pair': market['id'],
|
|
280844
|
-
'action': (side === 'buy') ? 'bid' : 'ask',
|
|
280845
|
-
'amount': amount,
|
|
280846
|
-
'price': price,
|
|
280847
|
-
};
|
|
280848
|
-
const response = await this.privatePostTrade(this.extend(request, params));
|
|
280849
|
-
return this.safeOrder({
|
|
280850
|
-
'info': response,
|
|
280851
|
-
'id': response['return']['order_id'].toString(),
|
|
280852
|
-
}, market);
|
|
280853
|
-
}
|
|
280854
|
-
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
280855
|
-
/**
|
|
280856
|
-
* @method
|
|
280857
|
-
* @name zaif#cancelOrder
|
|
280858
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id37
|
|
280859
|
-
* @description cancels an open order
|
|
280860
|
-
* @param {string} id order id
|
|
280861
|
-
* @param {string} symbol not used by zaif cancelOrder ()
|
|
280862
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280863
|
-
* @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
280864
|
-
*/
|
|
280865
|
-
const request = {
|
|
280866
|
-
'order_id': id,
|
|
280867
|
-
};
|
|
280868
|
-
return await this.privatePostCancelOrder(this.extend(request, params));
|
|
280869
|
-
}
|
|
280870
|
-
parseOrder(order, market = undefined) {
|
|
280871
|
-
//
|
|
280872
|
-
// {
|
|
280873
|
-
// "currency_pair": "btc_jpy",
|
|
280874
|
-
// "action": "ask",
|
|
280875
|
-
// "amount": 0.03,
|
|
280876
|
-
// "price": 56000,
|
|
280877
|
-
// "timestamp": 1402021125,
|
|
280878
|
-
// "comment" : "demo"
|
|
280879
|
-
// }
|
|
280880
|
-
//
|
|
280881
|
-
let side = this.safeString(order, 'action');
|
|
280882
|
-
side = (side === 'bid') ? 'buy' : 'sell';
|
|
280883
|
-
const timestamp = this.safeTimestamp(order, 'timestamp');
|
|
280884
|
-
const marketId = this.safeString(order, 'currency_pair');
|
|
280885
|
-
const symbol = this.safeSymbol(marketId, market, '_');
|
|
280886
|
-
const price = this.safeString(order, 'price');
|
|
280887
|
-
const amount = this.safeString(order, 'amount');
|
|
280888
|
-
const id = this.safeString(order, 'id');
|
|
280889
|
-
return this.safeOrder({
|
|
280890
|
-
'id': id,
|
|
280891
|
-
'clientOrderId': undefined,
|
|
280892
|
-
'timestamp': timestamp,
|
|
280893
|
-
'datetime': this.iso8601(timestamp),
|
|
280894
|
-
'lastTradeTimestamp': undefined,
|
|
280895
|
-
'status': 'open',
|
|
280896
|
-
'symbol': symbol,
|
|
280897
|
-
'type': 'limit',
|
|
280898
|
-
'timeInForce': undefined,
|
|
280899
|
-
'postOnly': undefined,
|
|
280900
|
-
'side': side,
|
|
280901
|
-
'price': price,
|
|
280902
|
-
'stopPrice': undefined,
|
|
280903
|
-
'triggerPrice': undefined,
|
|
280904
|
-
'cost': undefined,
|
|
280905
|
-
'amount': amount,
|
|
280906
|
-
'filled': undefined,
|
|
280907
|
-
'remaining': undefined,
|
|
280908
|
-
'trades': undefined,
|
|
280909
|
-
'fee': undefined,
|
|
280910
|
-
'info': order,
|
|
280911
|
-
'average': undefined,
|
|
280912
|
-
}, market);
|
|
280913
|
-
}
|
|
280914
|
-
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
280915
|
-
/**
|
|
280916
|
-
* @method
|
|
280917
|
-
* @name zaif#fetchOpenOrders
|
|
280918
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/MarginTradingAPI.html#id28
|
|
280919
|
-
* @description fetch all unfilled currently open orders
|
|
280920
|
-
* @param {string} symbol unified market symbol
|
|
280921
|
-
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
280922
|
-
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
|
280923
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280924
|
-
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
280925
|
-
*/
|
|
280926
|
-
await this.loadMarkets();
|
|
280927
|
-
let market = undefined;
|
|
280928
|
-
const request = {
|
|
280929
|
-
// 'is_token': false,
|
|
280930
|
-
// 'is_token_both': false,
|
|
280931
|
-
};
|
|
280932
|
-
if (symbol !== undefined) {
|
|
280933
|
-
market = this.market(symbol);
|
|
280934
|
-
request['currency_pair'] = market['id'];
|
|
280935
|
-
}
|
|
280936
|
-
const response = await this.privatePostActiveOrders(this.extend(request, params));
|
|
280937
|
-
return this.parseOrders(response['return'], market, since, limit);
|
|
280938
|
-
}
|
|
280939
|
-
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
280940
|
-
/**
|
|
280941
|
-
* @method
|
|
280942
|
-
* @name zaif#fetchClosedOrders
|
|
280943
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id24
|
|
280944
|
-
* @description fetches information on multiple closed orders made by the user
|
|
280945
|
-
* @param {string} symbol unified market symbol of the market orders were made in
|
|
280946
|
-
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
280947
|
-
* @param {int} [limit] the maximum number of orde structures to retrieve
|
|
280948
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280949
|
-
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
280950
|
-
*/
|
|
280951
|
-
await this.loadMarkets();
|
|
280952
|
-
let market = undefined;
|
|
280953
|
-
const request = {
|
|
280954
|
-
// 'from': 0,
|
|
280955
|
-
// 'count': 1000,
|
|
280956
|
-
// 'from_id': 0,
|
|
280957
|
-
// 'end_id': 1000,
|
|
280958
|
-
// 'order': 'DESC',
|
|
280959
|
-
// 'since': 1503821051,
|
|
280960
|
-
// 'end': 1503821051,
|
|
280961
|
-
// 'is_token': false,
|
|
280962
|
-
};
|
|
280963
|
-
if (symbol !== undefined) {
|
|
280964
|
-
market = this.market(symbol);
|
|
280965
|
-
request['currency_pair'] = market['id'];
|
|
280966
|
-
}
|
|
280967
|
-
const response = await this.privatePostTradeHistory(this.extend(request, params));
|
|
280968
|
-
return this.parseOrders(response['return'], market, since, limit);
|
|
280969
|
-
}
|
|
280970
|
-
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
280971
|
-
/**
|
|
280972
|
-
* @method
|
|
280973
|
-
* @name zaif#withdraw
|
|
280974
|
-
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id41
|
|
280975
|
-
* @description make a withdrawal
|
|
280976
|
-
* @param {string} code unified currency code
|
|
280977
|
-
* @param {float} amount the amount to withdraw
|
|
280978
|
-
* @param {string} address the address to withdraw to
|
|
280979
|
-
* @param {string} tag
|
|
280980
|
-
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
280981
|
-
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
|
280982
|
-
*/
|
|
280983
|
-
[tag, params] = this.handleWithdrawTagAndParams(tag, params);
|
|
280984
|
-
this.checkAddress(address);
|
|
280985
|
-
await this.loadMarkets();
|
|
280986
|
-
const currency = this.currency(code);
|
|
280987
|
-
if (code === 'JPY') {
|
|
280988
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(this.id + ' withdraw() does not allow ' + code + ' withdrawals');
|
|
280989
|
-
}
|
|
280990
|
-
const request = {
|
|
280991
|
-
'currency': currency['id'],
|
|
280992
|
-
'amount': amount,
|
|
280993
|
-
'address': address,
|
|
280994
|
-
// 'message': 'Hi!', // XEM and others
|
|
280995
|
-
// 'opt_fee': 0.003, // BTC and MONA only
|
|
280996
|
-
};
|
|
280997
|
-
if (tag !== undefined) {
|
|
280998
|
-
request['message'] = tag;
|
|
280999
|
-
}
|
|
281000
|
-
const result = await this.privatePostWithdraw(this.extend(request, params));
|
|
281001
|
-
//
|
|
281002
|
-
// {
|
|
281003
|
-
// "success": 1,
|
|
281004
|
-
// "return": {
|
|
281005
|
-
// "id": 23634,
|
|
281006
|
-
// "fee": 0.001,
|
|
281007
|
-
// "txid":,
|
|
281008
|
-
// "funds": {
|
|
281009
|
-
// "jpy": 15320,
|
|
281010
|
-
// "btc": 1.392,
|
|
281011
|
-
// "xem": 100.2,
|
|
281012
|
-
// "mona": 2600
|
|
281013
|
-
// }
|
|
281014
|
-
// }
|
|
281015
|
-
// }
|
|
281016
|
-
//
|
|
281017
|
-
const returnData = this.safeValue(result, 'return');
|
|
281018
|
-
return this.parseTransaction(returnData, currency);
|
|
281019
|
-
}
|
|
281020
|
-
parseTransaction(transaction, currency = undefined) {
|
|
281021
|
-
//
|
|
281022
|
-
// {
|
|
281023
|
-
// "id": 23634,
|
|
281024
|
-
// "fee": 0.001,
|
|
281025
|
-
// "txid":,
|
|
281026
|
-
// "funds": {
|
|
281027
|
-
// "jpy": 15320,
|
|
281028
|
-
// "btc": 1.392,
|
|
281029
|
-
// "xem": 100.2,
|
|
281030
|
-
// "mona": 2600
|
|
281031
|
-
// }
|
|
281032
|
-
// }
|
|
281033
|
-
//
|
|
281034
|
-
currency = this.safeCurrency(undefined, currency);
|
|
281035
|
-
let fee = undefined;
|
|
281036
|
-
const feeCost = this.safeValue(transaction, 'fee');
|
|
281037
|
-
if (feeCost !== undefined) {
|
|
281038
|
-
fee = {
|
|
281039
|
-
'cost': feeCost,
|
|
281040
|
-
'currency': currency['code'],
|
|
281041
|
-
};
|
|
281042
|
-
}
|
|
281043
|
-
return {
|
|
281044
|
-
'id': this.safeString(transaction, 'id'),
|
|
281045
|
-
'txid': this.safeString(transaction, 'txid'),
|
|
281046
|
-
'timestamp': undefined,
|
|
281047
|
-
'datetime': undefined,
|
|
281048
|
-
'network': undefined,
|
|
281049
|
-
'addressFrom': undefined,
|
|
281050
|
-
'address': undefined,
|
|
281051
|
-
'addressTo': undefined,
|
|
281052
|
-
'amount': undefined,
|
|
281053
|
-
'type': undefined,
|
|
281054
|
-
'currency': currency['code'],
|
|
281055
|
-
'status': undefined,
|
|
281056
|
-
'updated': undefined,
|
|
281057
|
-
'tagFrom': undefined,
|
|
281058
|
-
'tag': undefined,
|
|
281059
|
-
'tagTo': undefined,
|
|
281060
|
-
'comment': undefined,
|
|
281061
|
-
'internal': undefined,
|
|
281062
|
-
'fee': fee,
|
|
281063
|
-
'info': transaction,
|
|
281064
|
-
};
|
|
281065
|
-
}
|
|
281066
|
-
customNonce() {
|
|
281067
|
-
const num = (this.milliseconds() / 1000).toString();
|
|
281068
|
-
const nonce = parseFloat(num);
|
|
281069
|
-
return nonce.toFixed(8);
|
|
281070
|
-
}
|
|
281071
|
-
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
281072
|
-
let url = this.urls['api']['rest'] + '/';
|
|
281073
|
-
if (api === 'public') {
|
|
281074
|
-
url += 'api/' + this.version + '/' + this.implodeParams(path, params);
|
|
281075
|
-
}
|
|
281076
|
-
else if (api === 'fapi') {
|
|
281077
|
-
url += 'fapi/' + this.version + '/' + this.implodeParams(path, params);
|
|
281078
|
-
}
|
|
281079
|
-
else {
|
|
281080
|
-
this.checkRequiredCredentials();
|
|
281081
|
-
if (api === 'ecapi') {
|
|
281082
|
-
url += 'ecapi';
|
|
281083
|
-
}
|
|
281084
|
-
else if (api === 'tlapi') {
|
|
281085
|
-
url += 'tlapi';
|
|
281086
|
-
}
|
|
281087
|
-
else {
|
|
281088
|
-
url += 'tapi';
|
|
281089
|
-
}
|
|
281090
|
-
const nonce = this.customNonce();
|
|
281091
|
-
body = this.urlencode(this.extend({
|
|
281092
|
-
'method': path,
|
|
281093
|
-
'nonce': nonce,
|
|
281094
|
-
}, params));
|
|
281095
|
-
headers = {
|
|
281096
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
281097
|
-
'Key': this.apiKey,
|
|
281098
|
-
'Sign': this.hmac(this.encode(body), this.encode(this.secret), _static_dependencies_noble_hashes_sha512_js__WEBPACK_IMPORTED_MODULE_4__/* .sha512 */ .o),
|
|
281099
|
-
};
|
|
281100
|
-
}
|
|
281101
|
-
return { 'url': url, 'method': method, 'body': body, 'headers': headers };
|
|
281102
|
-
}
|
|
281103
|
-
handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
|
|
281104
|
-
if (response === undefined) {
|
|
281105
|
-
return undefined;
|
|
281106
|
-
}
|
|
281107
|
-
//
|
|
281108
|
-
// {"error": "unsupported currency_pair"}
|
|
281109
|
-
//
|
|
281110
|
-
const feedback = this.id + ' ' + body;
|
|
281111
|
-
const error = this.safeString(response, 'error');
|
|
281112
|
-
if (error !== undefined) {
|
|
281113
|
-
this.throwExactlyMatchedException(this.exceptions['exact'], error, feedback);
|
|
281114
|
-
this.throwBroadlyMatchedException(this.exceptions['broad'], error, feedback);
|
|
281115
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(feedback); // unknown message
|
|
281116
|
-
}
|
|
281117
|
-
const success = this.safeValue(response, 'success', true);
|
|
281118
|
-
if (!success) {
|
|
281119
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(feedback);
|
|
281120
|
-
}
|
|
281121
|
-
return undefined;
|
|
281122
|
-
}
|
|
281123
|
-
}
|
|
281124
|
-
|
|
281125
|
-
|
|
281126
280448
|
/***/ }),
|
|
281127
280449
|
|
|
281128
280450
|
/***/ 5140:
|
|
@@ -288166,6 +287488,751 @@ YAHOO.lang = {
|
|
|
288166
287488
|
}
|
|
288167
287489
|
};
|
|
288168
287490
|
|
|
287491
|
+
/***/ }),
|
|
287492
|
+
|
|
287493
|
+
/***/ 7558:
|
|
287494
|
+
/***/ (() => {
|
|
287495
|
+
|
|
287496
|
+
|
|
287497
|
+
// ---------------------------------------------------------------------------
|
|
287498
|
+
var __importDefault = (undefined && undefined.__importDefault) || function (mod) {
|
|
287499
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
287500
|
+
};
|
|
287501
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
287502
|
+
const zaif_js_1 = __importDefault(require("./abstract/zaif.js"));
|
|
287503
|
+
const errors_js_1 = require("./base/errors.js");
|
|
287504
|
+
const Precise_js_1 = require("./base/Precise.js");
|
|
287505
|
+
const number_js_1 = require("./base/functions/number.js");
|
|
287506
|
+
const sha512_js_1 = require("./static_dependencies/noble-hashes/sha512.js");
|
|
287507
|
+
// ---------------------------------------------------------------------------
|
|
287508
|
+
/**
|
|
287509
|
+
* @class zaif
|
|
287510
|
+
* @extends Exchange
|
|
287511
|
+
*/
|
|
287512
|
+
class zaif extends zaif_js_1.default {
|
|
287513
|
+
describe() {
|
|
287514
|
+
return this.deepExtend(super.describe(), {
|
|
287515
|
+
'id': 'zaif',
|
|
287516
|
+
'name': 'Zaif',
|
|
287517
|
+
'countries': ['JP'],
|
|
287518
|
+
// 10 requests per second = 1000ms / 10 = 100ms between requests (public market endpoints)
|
|
287519
|
+
'rateLimit': 100,
|
|
287520
|
+
'version': '1',
|
|
287521
|
+
'has': {
|
|
287522
|
+
'CORS': undefined,
|
|
287523
|
+
'spot': true,
|
|
287524
|
+
'margin': undefined,
|
|
287525
|
+
'swap': false,
|
|
287526
|
+
'future': false,
|
|
287527
|
+
'option': false,
|
|
287528
|
+
'cancelOrder': true,
|
|
287529
|
+
'createMarketOrder': false,
|
|
287530
|
+
'createOrder': true,
|
|
287531
|
+
'fetchBalance': true,
|
|
287532
|
+
'fetchClosedOrders': true,
|
|
287533
|
+
'fetchFundingHistory': false,
|
|
287534
|
+
'fetchFundingRate': false,
|
|
287535
|
+
'fetchFundingRateHistory': false,
|
|
287536
|
+
'fetchFundingRates': false,
|
|
287537
|
+
'fetchIndexOHLCV': false,
|
|
287538
|
+
'fetchMarkets': true,
|
|
287539
|
+
'fetchMarkOHLCV': false,
|
|
287540
|
+
'fetchOpenInterestHistory': false,
|
|
287541
|
+
'fetchOpenOrders': true,
|
|
287542
|
+
'fetchOrderBook': true,
|
|
287543
|
+
'fetchPremiumIndexOHLCV': false,
|
|
287544
|
+
'fetchTicker': true,
|
|
287545
|
+
'fetchTrades': true,
|
|
287546
|
+
'fetchTradingFee': false,
|
|
287547
|
+
'fetchTradingFees': false,
|
|
287548
|
+
'withdraw': true,
|
|
287549
|
+
},
|
|
287550
|
+
'urls': {
|
|
287551
|
+
'logo': 'https://user-images.githubusercontent.com/1294454/27766927-39ca2ada-5eeb-11e7-972f-1b4199518ca6.jpg',
|
|
287552
|
+
'api': {
|
|
287553
|
+
'rest': 'https://api.zaif.jp',
|
|
287554
|
+
},
|
|
287555
|
+
'www': 'https://zaif.jp',
|
|
287556
|
+
'doc': [
|
|
287557
|
+
'https://techbureau-api-document.readthedocs.io/ja/latest/index.html',
|
|
287558
|
+
'https://corp.zaif.jp/api-docs',
|
|
287559
|
+
'https://corp.zaif.jp/api-docs/api_links',
|
|
287560
|
+
'https://www.npmjs.com/package/zaif.jp',
|
|
287561
|
+
'https://github.com/you21979/node-zaif',
|
|
287562
|
+
],
|
|
287563
|
+
'fees': 'https://zaif.jp/fee?lang=en',
|
|
287564
|
+
},
|
|
287565
|
+
'fees': {
|
|
287566
|
+
'trading': {
|
|
287567
|
+
'percentage': true,
|
|
287568
|
+
'taker': this.parseNumber('0.001'),
|
|
287569
|
+
'maker': this.parseNumber('0'),
|
|
287570
|
+
},
|
|
287571
|
+
},
|
|
287572
|
+
'api': {
|
|
287573
|
+
'public': {
|
|
287574
|
+
'get': {
|
|
287575
|
+
'depth/{pair}': 1,
|
|
287576
|
+
'currencies/{pair}': 1,
|
|
287577
|
+
'currencies/all': 1,
|
|
287578
|
+
'currency_pairs/{pair}': 1,
|
|
287579
|
+
'currency_pairs/all': 1,
|
|
287580
|
+
'last_price/{pair}': 1,
|
|
287581
|
+
'ticker/{pair}': 1,
|
|
287582
|
+
'trades/{pair}': 1,
|
|
287583
|
+
},
|
|
287584
|
+
},
|
|
287585
|
+
'private': {
|
|
287586
|
+
'post': {
|
|
287587
|
+
'active_orders': 5,
|
|
287588
|
+
'cancel_order': 5,
|
|
287589
|
+
'deposit_history': 5,
|
|
287590
|
+
'get_id_info': 5,
|
|
287591
|
+
'get_info': 10,
|
|
287592
|
+
'get_info2': 5,
|
|
287593
|
+
'get_personal_info': 5,
|
|
287594
|
+
'trade': 5,
|
|
287595
|
+
'trade_history': 50,
|
|
287596
|
+
'withdraw': 5,
|
|
287597
|
+
'withdraw_history': 5,
|
|
287598
|
+
},
|
|
287599
|
+
},
|
|
287600
|
+
'ecapi': {
|
|
287601
|
+
'post': {
|
|
287602
|
+
'createInvoice': 1,
|
|
287603
|
+
'getInvoice': 1,
|
|
287604
|
+
'getInvoiceIdsByOrderNumber': 1,
|
|
287605
|
+
'cancelInvoice': 1,
|
|
287606
|
+
},
|
|
287607
|
+
},
|
|
287608
|
+
'tlapi': {
|
|
287609
|
+
'post': {
|
|
287610
|
+
'get_positions': 66,
|
|
287611
|
+
'position_history': 66,
|
|
287612
|
+
'active_positions': 5,
|
|
287613
|
+
'create_position': 33,
|
|
287614
|
+
'change_position': 33,
|
|
287615
|
+
'cancel_position': 33, // 3 in 10 seconds
|
|
287616
|
+
},
|
|
287617
|
+
},
|
|
287618
|
+
'fapi': {
|
|
287619
|
+
'get': {
|
|
287620
|
+
'groups/{group_id}': 1,
|
|
287621
|
+
'last_price/{group_id}/{pair}': 1,
|
|
287622
|
+
'ticker/{group_id}/{pair}': 1,
|
|
287623
|
+
'trades/{group_id}/{pair}': 1,
|
|
287624
|
+
'depth/{group_id}/{pair}': 1,
|
|
287625
|
+
},
|
|
287626
|
+
},
|
|
287627
|
+
},
|
|
287628
|
+
'options': {},
|
|
287629
|
+
'precisionMode': number_js_1.TICK_SIZE,
|
|
287630
|
+
'exceptions': {
|
|
287631
|
+
'exact': {
|
|
287632
|
+
'unsupported currency_pair': errors_js_1.BadRequest, // {"error": "unsupported currency_pair"}
|
|
287633
|
+
},
|
|
287634
|
+
'broad': {},
|
|
287635
|
+
},
|
|
287636
|
+
});
|
|
287637
|
+
}
|
|
287638
|
+
async fetchMarkets(params = {}) {
|
|
287639
|
+
/**
|
|
287640
|
+
* @method
|
|
287641
|
+
* @name zaif#fetchMarkets
|
|
287642
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id12
|
|
287643
|
+
* @description retrieves data on all markets for zaif
|
|
287644
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287645
|
+
* @returns {object[]} an array of objects representing market data
|
|
287646
|
+
*/
|
|
287647
|
+
const markets = await this.publicGetCurrencyPairsAll(params);
|
|
287648
|
+
//
|
|
287649
|
+
// [
|
|
287650
|
+
// {
|
|
287651
|
+
// "aux_unit_point": 0,
|
|
287652
|
+
// "item_japanese": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3",
|
|
287653
|
+
// "aux_unit_step": 5.0,
|
|
287654
|
+
// "description": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3\u30fb\u65e5\u672c\u5186\u306e\u53d6\u5f15\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059",
|
|
287655
|
+
// "item_unit_min": 0.001,
|
|
287656
|
+
// "event_number": 0,
|
|
287657
|
+
// "currency_pair": "btc_jpy",
|
|
287658
|
+
// "is_token": false,
|
|
287659
|
+
// "aux_unit_min": 5.0,
|
|
287660
|
+
// "aux_japanese": "\u65e5\u672c\u5186",
|
|
287661
|
+
// "id": 1,
|
|
287662
|
+
// "item_unit_step": 0.0001,
|
|
287663
|
+
// "name": "BTC/JPY",
|
|
287664
|
+
// "seq": 0,
|
|
287665
|
+
// "title": "BTC/JPY"
|
|
287666
|
+
// }
|
|
287667
|
+
// ]
|
|
287668
|
+
//
|
|
287669
|
+
return this.parseMarkets(markets);
|
|
287670
|
+
}
|
|
287671
|
+
parseMarket(market) {
|
|
287672
|
+
const id = this.safeString(market, 'currency_pair');
|
|
287673
|
+
const name = this.safeString(market, 'name');
|
|
287674
|
+
const [baseId, quoteId] = name.split('/');
|
|
287675
|
+
const base = this.safeCurrencyCode(baseId);
|
|
287676
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
287677
|
+
const symbol = base + '/' + quote;
|
|
287678
|
+
return {
|
|
287679
|
+
'id': id,
|
|
287680
|
+
'symbol': symbol,
|
|
287681
|
+
'base': base,
|
|
287682
|
+
'quote': quote,
|
|
287683
|
+
'settle': undefined,
|
|
287684
|
+
'baseId': baseId,
|
|
287685
|
+
'quoteId': quoteId,
|
|
287686
|
+
'settleId': undefined,
|
|
287687
|
+
'type': 'spot',
|
|
287688
|
+
'spot': true,
|
|
287689
|
+
'margin': undefined,
|
|
287690
|
+
'swap': false,
|
|
287691
|
+
'future': false,
|
|
287692
|
+
'option': false,
|
|
287693
|
+
'active': undefined,
|
|
287694
|
+
'contract': false,
|
|
287695
|
+
'linear': undefined,
|
|
287696
|
+
'inverse': undefined,
|
|
287697
|
+
'contractSize': undefined,
|
|
287698
|
+
'expiry': undefined,
|
|
287699
|
+
'expiryDatetime': undefined,
|
|
287700
|
+
'strike': undefined,
|
|
287701
|
+
'optionType': undefined,
|
|
287702
|
+
'precision': {
|
|
287703
|
+
'amount': this.safeNumber(market, 'item_unit_step'),
|
|
287704
|
+
'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'aux_unit_point'))),
|
|
287705
|
+
},
|
|
287706
|
+
'limits': {
|
|
287707
|
+
'leverage': {
|
|
287708
|
+
'min': undefined,
|
|
287709
|
+
'max': undefined,
|
|
287710
|
+
},
|
|
287711
|
+
'amount': {
|
|
287712
|
+
'min': this.safeNumber(market, 'item_unit_min'),
|
|
287713
|
+
'max': undefined,
|
|
287714
|
+
},
|
|
287715
|
+
'price': {
|
|
287716
|
+
'min': this.safeNumber(market, 'aux_unit_min'),
|
|
287717
|
+
'max': undefined,
|
|
287718
|
+
},
|
|
287719
|
+
'cost': {
|
|
287720
|
+
'min': undefined,
|
|
287721
|
+
'max': undefined,
|
|
287722
|
+
},
|
|
287723
|
+
},
|
|
287724
|
+
'created': undefined,
|
|
287725
|
+
'info': market,
|
|
287726
|
+
};
|
|
287727
|
+
}
|
|
287728
|
+
parseBalance(response) {
|
|
287729
|
+
const balances = this.safeValue(response, 'return', {});
|
|
287730
|
+
const deposit = this.safeValue(balances, 'deposit');
|
|
287731
|
+
const result = {
|
|
287732
|
+
'info': response,
|
|
287733
|
+
'timestamp': undefined,
|
|
287734
|
+
'datetime': undefined,
|
|
287735
|
+
};
|
|
287736
|
+
const funds = this.safeValue(balances, 'funds', {});
|
|
287737
|
+
const currencyIds = Object.keys(funds);
|
|
287738
|
+
for (let i = 0; i < currencyIds.length; i++) {
|
|
287739
|
+
const currencyId = currencyIds[i];
|
|
287740
|
+
const code = this.safeCurrencyCode(currencyId);
|
|
287741
|
+
const balance = this.safeString(funds, currencyId);
|
|
287742
|
+
const account = this.account();
|
|
287743
|
+
account['free'] = balance;
|
|
287744
|
+
account['total'] = balance;
|
|
287745
|
+
if (deposit !== undefined) {
|
|
287746
|
+
if (currencyId in deposit) {
|
|
287747
|
+
account['total'] = this.safeString(deposit, currencyId);
|
|
287748
|
+
}
|
|
287749
|
+
}
|
|
287750
|
+
result[code] = account;
|
|
287751
|
+
}
|
|
287752
|
+
return this.safeBalance(result);
|
|
287753
|
+
}
|
|
287754
|
+
async fetchBalance(params = {}) {
|
|
287755
|
+
/**
|
|
287756
|
+
* @method
|
|
287757
|
+
* @name zaif#fetchBalance
|
|
287758
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id10
|
|
287759
|
+
* @description query for balance and get the amount of funds available for trading or funds locked in orders
|
|
287760
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287761
|
+
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
|
|
287762
|
+
*/
|
|
287763
|
+
await this.loadMarkets();
|
|
287764
|
+
const response = await this.privatePostGetInfo(params);
|
|
287765
|
+
return this.parseBalance(response);
|
|
287766
|
+
}
|
|
287767
|
+
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
287768
|
+
/**
|
|
287769
|
+
* @method
|
|
287770
|
+
* @name zaif#fetchOrderBook
|
|
287771
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id34
|
|
287772
|
+
* @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
287773
|
+
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
287774
|
+
* @param {int} [limit] the maximum amount of order book entries to return
|
|
287775
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287776
|
+
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
287777
|
+
*/
|
|
287778
|
+
await this.loadMarkets();
|
|
287779
|
+
const market = this.market(symbol);
|
|
287780
|
+
const request = {
|
|
287781
|
+
'pair': market['id'],
|
|
287782
|
+
};
|
|
287783
|
+
const response = await this.publicGetDepthPair(this.extend(request, params));
|
|
287784
|
+
return this.parseOrderBook(response, market['symbol']);
|
|
287785
|
+
}
|
|
287786
|
+
parseTicker(ticker, market = undefined) {
|
|
287787
|
+
//
|
|
287788
|
+
// {
|
|
287789
|
+
// "last": 9e-08,
|
|
287790
|
+
// "high": 1e-07,
|
|
287791
|
+
// "low": 9e-08,
|
|
287792
|
+
// "vwap": 0.0,
|
|
287793
|
+
// "volume": 135250.0,
|
|
287794
|
+
// "bid": 9e-08,
|
|
287795
|
+
// "ask": 1e-07
|
|
287796
|
+
// }
|
|
287797
|
+
//
|
|
287798
|
+
const symbol = this.safeSymbol(undefined, market);
|
|
287799
|
+
const timestamp = this.milliseconds();
|
|
287800
|
+
const vwap = this.safeString(ticker, 'vwap');
|
|
287801
|
+
const baseVolume = this.safeString(ticker, 'volume');
|
|
287802
|
+
const quoteVolume = Precise_js_1.Precise.stringMul(baseVolume, vwap);
|
|
287803
|
+
const last = this.safeString(ticker, 'last');
|
|
287804
|
+
return this.safeTicker({
|
|
287805
|
+
'symbol': symbol,
|
|
287806
|
+
'timestamp': timestamp,
|
|
287807
|
+
'datetime': this.iso8601(timestamp),
|
|
287808
|
+
'high': this.safeString(ticker, 'high'),
|
|
287809
|
+
'low': this.safeString(ticker, 'low'),
|
|
287810
|
+
'bid': this.safeString(ticker, 'bid'),
|
|
287811
|
+
'bidVolume': undefined,
|
|
287812
|
+
'ask': this.safeString(ticker, 'ask'),
|
|
287813
|
+
'askVolume': undefined,
|
|
287814
|
+
'vwap': vwap,
|
|
287815
|
+
'open': undefined,
|
|
287816
|
+
'close': last,
|
|
287817
|
+
'last': last,
|
|
287818
|
+
'previousClose': undefined,
|
|
287819
|
+
'change': undefined,
|
|
287820
|
+
'percentage': undefined,
|
|
287821
|
+
'average': undefined,
|
|
287822
|
+
'baseVolume': baseVolume,
|
|
287823
|
+
'quoteVolume': quoteVolume,
|
|
287824
|
+
'info': ticker,
|
|
287825
|
+
}, market);
|
|
287826
|
+
}
|
|
287827
|
+
async fetchTicker(symbol, params = {}) {
|
|
287828
|
+
/**
|
|
287829
|
+
* @method
|
|
287830
|
+
* @name zaif#fetchTicker
|
|
287831
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id22
|
|
287832
|
+
* @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
287833
|
+
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
287834
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287835
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
287836
|
+
*/
|
|
287837
|
+
await this.loadMarkets();
|
|
287838
|
+
const market = this.market(symbol);
|
|
287839
|
+
const request = {
|
|
287840
|
+
'pair': market['id'],
|
|
287841
|
+
};
|
|
287842
|
+
const ticker = await this.publicGetTickerPair(this.extend(request, params));
|
|
287843
|
+
//
|
|
287844
|
+
// {
|
|
287845
|
+
// "last": 9e-08,
|
|
287846
|
+
// "high": 1e-07,
|
|
287847
|
+
// "low": 9e-08,
|
|
287848
|
+
// "vwap": 0.0,
|
|
287849
|
+
// "volume": 135250.0,
|
|
287850
|
+
// "bid": 9e-08,
|
|
287851
|
+
// "ask": 1e-07
|
|
287852
|
+
// }
|
|
287853
|
+
//
|
|
287854
|
+
return this.parseTicker(ticker, market);
|
|
287855
|
+
}
|
|
287856
|
+
parseTrade(trade, market = undefined) {
|
|
287857
|
+
//
|
|
287858
|
+
// fetchTrades (public)
|
|
287859
|
+
//
|
|
287860
|
+
// {
|
|
287861
|
+
// "date": 1648559414,
|
|
287862
|
+
// "price": 5880375.0,
|
|
287863
|
+
// "amount": 0.017,
|
|
287864
|
+
// "tid": 176126557,
|
|
287865
|
+
// "currency_pair": "btc_jpy",
|
|
287866
|
+
// "trade_type": "ask"
|
|
287867
|
+
// }
|
|
287868
|
+
//
|
|
287869
|
+
let side = this.safeString(trade, 'trade_type');
|
|
287870
|
+
side = (side === 'bid') ? 'buy' : 'sell';
|
|
287871
|
+
const timestamp = this.safeTimestamp(trade, 'date');
|
|
287872
|
+
const id = this.safeString2(trade, 'id', 'tid');
|
|
287873
|
+
const priceString = this.safeString(trade, 'price');
|
|
287874
|
+
const amountString = this.safeString(trade, 'amount');
|
|
287875
|
+
const marketId = this.safeString(trade, 'currency_pair');
|
|
287876
|
+
const symbol = this.safeSymbol(marketId, market, '_');
|
|
287877
|
+
return this.safeTrade({
|
|
287878
|
+
'id': id,
|
|
287879
|
+
'info': trade,
|
|
287880
|
+
'timestamp': timestamp,
|
|
287881
|
+
'datetime': this.iso8601(timestamp),
|
|
287882
|
+
'symbol': symbol,
|
|
287883
|
+
'type': undefined,
|
|
287884
|
+
'side': side,
|
|
287885
|
+
'order': undefined,
|
|
287886
|
+
'takerOrMaker': undefined,
|
|
287887
|
+
'price': priceString,
|
|
287888
|
+
'amount': amountString,
|
|
287889
|
+
'cost': undefined,
|
|
287890
|
+
'fee': undefined,
|
|
287891
|
+
}, market);
|
|
287892
|
+
}
|
|
287893
|
+
async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
287894
|
+
/**
|
|
287895
|
+
* @method
|
|
287896
|
+
* @name zaif#fetchTrades
|
|
287897
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id28
|
|
287898
|
+
* @description get the list of most recent trades for a particular symbol
|
|
287899
|
+
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
287900
|
+
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
287901
|
+
* @param {int} [limit] the maximum amount of trades to fetch
|
|
287902
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287903
|
+
* @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
287904
|
+
*/
|
|
287905
|
+
await this.loadMarkets();
|
|
287906
|
+
const market = this.market(symbol);
|
|
287907
|
+
const request = {
|
|
287908
|
+
'pair': market['id'],
|
|
287909
|
+
};
|
|
287910
|
+
let response = await this.publicGetTradesPair(this.extend(request, params));
|
|
287911
|
+
//
|
|
287912
|
+
// [
|
|
287913
|
+
// {
|
|
287914
|
+
// "date": 1648559414,
|
|
287915
|
+
// "price": 5880375.0,
|
|
287916
|
+
// "amount": 0.017,
|
|
287917
|
+
// "tid": 176126557,
|
|
287918
|
+
// "currency_pair": "btc_jpy",
|
|
287919
|
+
// "trade_type": "ask"
|
|
287920
|
+
// }, ...
|
|
287921
|
+
// ]
|
|
287922
|
+
//
|
|
287923
|
+
const numTrades = response.length;
|
|
287924
|
+
if (numTrades === 1) {
|
|
287925
|
+
const firstTrade = response[0];
|
|
287926
|
+
if (!Object.keys(firstTrade).length) {
|
|
287927
|
+
response = [];
|
|
287928
|
+
}
|
|
287929
|
+
}
|
|
287930
|
+
return this.parseTrades(response, market, since, limit);
|
|
287931
|
+
}
|
|
287932
|
+
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
287933
|
+
/**
|
|
287934
|
+
* @method
|
|
287935
|
+
* @name zaif#createOrder
|
|
287936
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/MarginTradingAPI.html#id23
|
|
287937
|
+
* @description create a trade order
|
|
287938
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
287939
|
+
* @param {string} type must be 'limit'
|
|
287940
|
+
* @param {string} side 'buy' or 'sell'
|
|
287941
|
+
* @param {float} amount how much of currency you want to trade in units of base currency
|
|
287942
|
+
* @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
|
287943
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287944
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
287945
|
+
*/
|
|
287946
|
+
await this.loadMarkets();
|
|
287947
|
+
if (type !== 'limit') {
|
|
287948
|
+
throw new errors_js_1.ExchangeError(this.id + ' createOrder() allows limit orders only');
|
|
287949
|
+
}
|
|
287950
|
+
const market = this.market(symbol);
|
|
287951
|
+
const request = {
|
|
287952
|
+
'currency_pair': market['id'],
|
|
287953
|
+
'action': (side === 'buy') ? 'bid' : 'ask',
|
|
287954
|
+
'amount': amount,
|
|
287955
|
+
'price': price,
|
|
287956
|
+
};
|
|
287957
|
+
const response = await this.privatePostTrade(this.extend(request, params));
|
|
287958
|
+
return this.safeOrder({
|
|
287959
|
+
'info': response,
|
|
287960
|
+
'id': response['return']['order_id'].toString(),
|
|
287961
|
+
}, market);
|
|
287962
|
+
}
|
|
287963
|
+
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
287964
|
+
/**
|
|
287965
|
+
* @method
|
|
287966
|
+
* @name zaif#cancelOrder
|
|
287967
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id37
|
|
287968
|
+
* @description cancels an open order
|
|
287969
|
+
* @param {string} id order id
|
|
287970
|
+
* @param {string} symbol not used by zaif cancelOrder ()
|
|
287971
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287972
|
+
* @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
287973
|
+
*/
|
|
287974
|
+
const request = {
|
|
287975
|
+
'order_id': id,
|
|
287976
|
+
};
|
|
287977
|
+
return await this.privatePostCancelOrder(this.extend(request, params));
|
|
287978
|
+
}
|
|
287979
|
+
parseOrder(order, market = undefined) {
|
|
287980
|
+
//
|
|
287981
|
+
// {
|
|
287982
|
+
// "currency_pair": "btc_jpy",
|
|
287983
|
+
// "action": "ask",
|
|
287984
|
+
// "amount": 0.03,
|
|
287985
|
+
// "price": 56000,
|
|
287986
|
+
// "timestamp": 1402021125,
|
|
287987
|
+
// "comment" : "demo"
|
|
287988
|
+
// }
|
|
287989
|
+
//
|
|
287990
|
+
let side = this.safeString(order, 'action');
|
|
287991
|
+
side = (side === 'bid') ? 'buy' : 'sell';
|
|
287992
|
+
const timestamp = this.safeTimestamp(order, 'timestamp');
|
|
287993
|
+
const marketId = this.safeString(order, 'currency_pair');
|
|
287994
|
+
const symbol = this.safeSymbol(marketId, market, '_');
|
|
287995
|
+
const price = this.safeString(order, 'price');
|
|
287996
|
+
const amount = this.safeString(order, 'amount');
|
|
287997
|
+
const id = this.safeString(order, 'id');
|
|
287998
|
+
return this.safeOrder({
|
|
287999
|
+
'id': id,
|
|
288000
|
+
'clientOrderId': undefined,
|
|
288001
|
+
'timestamp': timestamp,
|
|
288002
|
+
'datetime': this.iso8601(timestamp),
|
|
288003
|
+
'lastTradeTimestamp': undefined,
|
|
288004
|
+
'status': 'open',
|
|
288005
|
+
'symbol': symbol,
|
|
288006
|
+
'type': 'limit',
|
|
288007
|
+
'timeInForce': undefined,
|
|
288008
|
+
'postOnly': undefined,
|
|
288009
|
+
'side': side,
|
|
288010
|
+
'price': price,
|
|
288011
|
+
'stopPrice': undefined,
|
|
288012
|
+
'triggerPrice': undefined,
|
|
288013
|
+
'cost': undefined,
|
|
288014
|
+
'amount': amount,
|
|
288015
|
+
'filled': undefined,
|
|
288016
|
+
'remaining': undefined,
|
|
288017
|
+
'trades': undefined,
|
|
288018
|
+
'fee': undefined,
|
|
288019
|
+
'info': order,
|
|
288020
|
+
'average': undefined,
|
|
288021
|
+
}, market);
|
|
288022
|
+
}
|
|
288023
|
+
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
288024
|
+
/**
|
|
288025
|
+
* @method
|
|
288026
|
+
* @name zaif#fetchOpenOrders
|
|
288027
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/MarginTradingAPI.html#id28
|
|
288028
|
+
* @description fetch all unfilled currently open orders
|
|
288029
|
+
* @param {string} symbol unified market symbol
|
|
288030
|
+
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
288031
|
+
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
|
288032
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
288033
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
288034
|
+
*/
|
|
288035
|
+
await this.loadMarkets();
|
|
288036
|
+
let market = undefined;
|
|
288037
|
+
const request = {
|
|
288038
|
+
// 'is_token': false,
|
|
288039
|
+
// 'is_token_both': false,
|
|
288040
|
+
};
|
|
288041
|
+
if (symbol !== undefined) {
|
|
288042
|
+
market = this.market(symbol);
|
|
288043
|
+
request['currency_pair'] = market['id'];
|
|
288044
|
+
}
|
|
288045
|
+
const response = await this.privatePostActiveOrders(this.extend(request, params));
|
|
288046
|
+
return this.parseOrders(response['return'], market, since, limit);
|
|
288047
|
+
}
|
|
288048
|
+
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
288049
|
+
/**
|
|
288050
|
+
* @method
|
|
288051
|
+
* @name zaif#fetchClosedOrders
|
|
288052
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id24
|
|
288053
|
+
* @description fetches information on multiple closed orders made by the user
|
|
288054
|
+
* @param {string} symbol unified market symbol of the market orders were made in
|
|
288055
|
+
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
288056
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
288057
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
288058
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
288059
|
+
*/
|
|
288060
|
+
await this.loadMarkets();
|
|
288061
|
+
let market = undefined;
|
|
288062
|
+
const request = {
|
|
288063
|
+
// 'from': 0,
|
|
288064
|
+
// 'count': 1000,
|
|
288065
|
+
// 'from_id': 0,
|
|
288066
|
+
// 'end_id': 1000,
|
|
288067
|
+
// 'order': 'DESC',
|
|
288068
|
+
// 'since': 1503821051,
|
|
288069
|
+
// 'end': 1503821051,
|
|
288070
|
+
// 'is_token': false,
|
|
288071
|
+
};
|
|
288072
|
+
if (symbol !== undefined) {
|
|
288073
|
+
market = this.market(symbol);
|
|
288074
|
+
request['currency_pair'] = market['id'];
|
|
288075
|
+
}
|
|
288076
|
+
const response = await this.privatePostTradeHistory(this.extend(request, params));
|
|
288077
|
+
return this.parseOrders(response['return'], market, since, limit);
|
|
288078
|
+
}
|
|
288079
|
+
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
288080
|
+
/**
|
|
288081
|
+
* @method
|
|
288082
|
+
* @name zaif#withdraw
|
|
288083
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id41
|
|
288084
|
+
* @description make a withdrawal
|
|
288085
|
+
* @param {string} code unified currency code
|
|
288086
|
+
* @param {float} amount the amount to withdraw
|
|
288087
|
+
* @param {string} address the address to withdraw to
|
|
288088
|
+
* @param {string} tag
|
|
288089
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
288090
|
+
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
|
288091
|
+
*/
|
|
288092
|
+
[tag, params] = this.handleWithdrawTagAndParams(tag, params);
|
|
288093
|
+
this.checkAddress(address);
|
|
288094
|
+
await this.loadMarkets();
|
|
288095
|
+
const currency = this.currency(code);
|
|
288096
|
+
if (code === 'JPY') {
|
|
288097
|
+
throw new errors_js_1.ExchangeError(this.id + ' withdraw() does not allow ' + code + ' withdrawals');
|
|
288098
|
+
}
|
|
288099
|
+
const request = {
|
|
288100
|
+
'currency': currency['id'],
|
|
288101
|
+
'amount': amount,
|
|
288102
|
+
'address': address,
|
|
288103
|
+
// 'message': 'Hi!', // XEM and others
|
|
288104
|
+
// 'opt_fee': 0.003, // BTC and MONA only
|
|
288105
|
+
};
|
|
288106
|
+
if (tag !== undefined) {
|
|
288107
|
+
request['message'] = tag;
|
|
288108
|
+
}
|
|
288109
|
+
const result = await this.privatePostWithdraw(this.extend(request, params));
|
|
288110
|
+
//
|
|
288111
|
+
// {
|
|
288112
|
+
// "success": 1,
|
|
288113
|
+
// "return": {
|
|
288114
|
+
// "id": 23634,
|
|
288115
|
+
// "fee": 0.001,
|
|
288116
|
+
// "txid":,
|
|
288117
|
+
// "funds": {
|
|
288118
|
+
// "jpy": 15320,
|
|
288119
|
+
// "btc": 1.392,
|
|
288120
|
+
// "xem": 100.2,
|
|
288121
|
+
// "mona": 2600
|
|
288122
|
+
// }
|
|
288123
|
+
// }
|
|
288124
|
+
// }
|
|
288125
|
+
//
|
|
288126
|
+
const returnData = this.safeValue(result, 'return');
|
|
288127
|
+
return this.parseTransaction(returnData, currency);
|
|
288128
|
+
}
|
|
288129
|
+
parseTransaction(transaction, currency = undefined) {
|
|
288130
|
+
//
|
|
288131
|
+
// {
|
|
288132
|
+
// "id": 23634,
|
|
288133
|
+
// "fee": 0.001,
|
|
288134
|
+
// "txid":,
|
|
288135
|
+
// "funds": {
|
|
288136
|
+
// "jpy": 15320,
|
|
288137
|
+
// "btc": 1.392,
|
|
288138
|
+
// "xem": 100.2,
|
|
288139
|
+
// "mona": 2600
|
|
288140
|
+
// }
|
|
288141
|
+
// }
|
|
288142
|
+
//
|
|
288143
|
+
currency = this.safeCurrency(undefined, currency);
|
|
288144
|
+
let fee = undefined;
|
|
288145
|
+
const feeCost = this.safeValue(transaction, 'fee');
|
|
288146
|
+
if (feeCost !== undefined) {
|
|
288147
|
+
fee = {
|
|
288148
|
+
'cost': feeCost,
|
|
288149
|
+
'currency': currency['code'],
|
|
288150
|
+
};
|
|
288151
|
+
}
|
|
288152
|
+
return {
|
|
288153
|
+
'id': this.safeString(transaction, 'id'),
|
|
288154
|
+
'txid': this.safeString(transaction, 'txid'),
|
|
288155
|
+
'timestamp': undefined,
|
|
288156
|
+
'datetime': undefined,
|
|
288157
|
+
'network': undefined,
|
|
288158
|
+
'addressFrom': undefined,
|
|
288159
|
+
'address': undefined,
|
|
288160
|
+
'addressTo': undefined,
|
|
288161
|
+
'amount': undefined,
|
|
288162
|
+
'type': undefined,
|
|
288163
|
+
'currency': currency['code'],
|
|
288164
|
+
'status': undefined,
|
|
288165
|
+
'updated': undefined,
|
|
288166
|
+
'tagFrom': undefined,
|
|
288167
|
+
'tag': undefined,
|
|
288168
|
+
'tagTo': undefined,
|
|
288169
|
+
'comment': undefined,
|
|
288170
|
+
'internal': undefined,
|
|
288171
|
+
'fee': fee,
|
|
288172
|
+
'info': transaction,
|
|
288173
|
+
};
|
|
288174
|
+
}
|
|
288175
|
+
customNonce() {
|
|
288176
|
+
const num = (this.milliseconds() / 1000).toString();
|
|
288177
|
+
const nonce = parseFloat(num);
|
|
288178
|
+
return nonce.toFixed(8);
|
|
288179
|
+
}
|
|
288180
|
+
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
288181
|
+
let url = this.urls['api']['rest'] + '/';
|
|
288182
|
+
if (api === 'public') {
|
|
288183
|
+
url += 'api/' + this.version + '/' + this.implodeParams(path, params);
|
|
288184
|
+
}
|
|
288185
|
+
else if (api === 'fapi') {
|
|
288186
|
+
url += 'fapi/' + this.version + '/' + this.implodeParams(path, params);
|
|
288187
|
+
}
|
|
288188
|
+
else {
|
|
288189
|
+
this.checkRequiredCredentials();
|
|
288190
|
+
if (api === 'ecapi') {
|
|
288191
|
+
url += 'ecapi';
|
|
288192
|
+
}
|
|
288193
|
+
else if (api === 'tlapi') {
|
|
288194
|
+
url += 'tlapi';
|
|
288195
|
+
}
|
|
288196
|
+
else {
|
|
288197
|
+
url += 'tapi';
|
|
288198
|
+
}
|
|
288199
|
+
const nonce = this.customNonce();
|
|
288200
|
+
body = this.urlencode(this.extend({
|
|
288201
|
+
'method': path,
|
|
288202
|
+
'nonce': nonce,
|
|
288203
|
+
}, params));
|
|
288204
|
+
headers = {
|
|
288205
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
288206
|
+
'Key': this.apiKey,
|
|
288207
|
+
'Sign': this.hmac(this.encode(body), this.encode(this.secret), sha512_js_1.sha512),
|
|
288208
|
+
};
|
|
288209
|
+
}
|
|
288210
|
+
return { 'url': url, 'method': method, 'body': body, 'headers': headers };
|
|
288211
|
+
}
|
|
288212
|
+
handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
|
|
288213
|
+
if (response === undefined) {
|
|
288214
|
+
return undefined;
|
|
288215
|
+
}
|
|
288216
|
+
//
|
|
288217
|
+
// {"error": "unsupported currency_pair"}
|
|
288218
|
+
//
|
|
288219
|
+
const feedback = this.id + ' ' + body;
|
|
288220
|
+
const error = this.safeString(response, 'error');
|
|
288221
|
+
if (error !== undefined) {
|
|
288222
|
+
this.throwExactlyMatchedException(this.exceptions['exact'], error, feedback);
|
|
288223
|
+
this.throwBroadlyMatchedException(this.exceptions['broad'], error, feedback);
|
|
288224
|
+
throw new errors_js_1.ExchangeError(feedback); // unknown message
|
|
288225
|
+
}
|
|
288226
|
+
const success = this.safeValue(response, 'success', true);
|
|
288227
|
+
if (!success) {
|
|
288228
|
+
throw new errors_js_1.ExchangeError(feedback);
|
|
288229
|
+
}
|
|
288230
|
+
return undefined;
|
|
288231
|
+
}
|
|
288232
|
+
}
|
|
288233
|
+
exports.default = zaif;
|
|
288234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemFpZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInphaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLCtFQUErRTs7Ozs7QUFFL0UsaUVBQTBDO0FBQzFDLGdEQUE2RDtBQUM3RCxrREFBNEM7QUFDNUMsMERBQXVEO0FBQ3ZELDRFQUFzRTtBQUd0RSwrRUFBK0U7QUFFL0U7OztHQUdHO0FBQ0gsTUFBcUIsSUFBSyxTQUFRLGlCQUFRO0lBQ3RDLFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBRSxJQUFJLENBQUU7WUFDckIsMEZBQTBGO1lBQzFGLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFNBQVMsRUFBRSxHQUFHO1lBQ2QsS0FBSyxFQUFFO2dCQUNILE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUsSUFBSTtnQkFDWixRQUFRLEVBQUUsU0FBUztnQkFDbkIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsbUJBQW1CLEVBQUUsSUFBSTtnQkFDekIscUJBQXFCLEVBQUUsS0FBSztnQkFDNUIsa0JBQWtCLEVBQUUsS0FBSztnQkFDekIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLDBCQUEwQixFQUFFLEtBQUs7Z0JBQ2pDLGlCQUFpQixFQUFFLElBQUk7Z0JBQ3ZCLGdCQUFn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QVMsRUFBRTtZQUNyQixJQUFJLENBQUMsNEJBQTRCLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLDRCQUE0QixDQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlFLE1BQU0sSUFBSSx5QkFBYSxDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCO1NBQ3pEO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixNQUFNLElBQUkseUJBQWEsQ0FBRSxRQUFRLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSjtBQWp1QkQsdUJBaXVCQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5pbXBvcnQgRXhjaGFuZ2UgZnJvbSAnLi9hYnN0cmFjdC96YWlmLmpzJztcbmltcG9ydCB7IEV4Y2hhbmdlRXJyb3IsIEJhZFJlcXVlc3QgfSBmcm9tICcuL2Jhc2UvZXJyb3JzLmpzJztcbmltcG9ydCB7IFByZWNpc2UgfSBmcm9tICcuL2Jhc2UvUHJlY2lzZS5qcyc7XG5pbXBvcnQgeyBUSUNLX1NJWkUgfSBmcm9tICcuL2Jhc2UvZnVuY3Rpb25zL251bWJlci5qcyc7XG5pbXBvcnQgeyBzaGE1MTIgfSBmcm9tICcuL3N0YXRpY19kZXBlbmRlbmNpZXMvbm9ibGUtaGFzaGVzL3NoYTUxMi5qcyc7XG5pbXBvcnQgeyBCYWxhbmNlcywgQ3VycmVuY3ksIEludCwgTWFya2V0LCBPcmRlciwgT3JkZXJCb29rLCBPcmRlclNpZGUsIE9yZGVyVHlwZSwgU3RyLCBUaWNrZXIsIFRyYWRlLCBUcmFuc2FjdGlvbiB9IGZyb20gJy4vYmFzZS90eXBlcy5qcyc7XG5cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBAY2xhc3MgemFpZlxuICogQGV4dGVuZHMgRXhjaGFuZ2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgemFpZiBleHRlbmRzIEV4Y2hhbmdlIHtcbiAgICBkZXNjcmliZSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlZXBFeHRlbmQgKHN1cGVyLmRlc2NyaWJlICgpLCB7XG4gICAgICAgICAgICAnaWQnOiAnemFpZicsXG4gICAgICAgICAgICAnbmFtZSc6ICdaYWlmJyxcbiAgICAgICAgICAgICdjb3VudHJpZXMnOiBbICdKUCcgXSxcbiAgICAgICAgICAgIC8vIDEwIHJlcXVlc3RzIHBlciBzZWNvbmQgPSAxMDAwbXMgLyAxMCA9IDEwMG1zIGJldHdlZW4gcmVxdWVzdHMgKHB1YmxpYyBtYXJrZXQgZW5kcG9pbnRzKVxuICAgICAgICAgICAgJ3JhdGVMaW1pdCc6IDEwMCxcbiAgICAgICAgICAgICd2ZXJzaW9uJzogJzEnLFxuICAgICAgICAgICAgJ2hhcyc6IHtcbiAgICAgICAgICAgICAgICAnQ09SUyc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAnc3BvdCc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ21hcmdpbic6IHVuZGVmaW5lZCwgLy8gaGFzIGJ1dCB1bmltcGxlbWVudGVkXG4gICAgICAgICAgICAgICAgJ3N3YXAnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZnV0dXJlJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ29wdGlvbic6IGZhbHNlLFxuICAgICAgICAgICAgICAgICdjYW5jZWxPcmRlcic6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2NyZWF0ZU1hcmtldE9yZGVyJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ2NyZWF0ZU9yZGVyJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hCYWxhbmNlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hDbG9zZWRPcmRlcnMnOiB0cnVlLFxuICAgICAgICAgICAgICAgICdmZXRjaEZ1bmRpbmdIaXN0b3J5JzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ2ZldGNoRnVuZGluZ1JhdGUnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hGdW5kaW5nUmF0ZUhpc3RvcnknOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hGdW5kaW5nUmF0ZXMnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hJbmRleE9ITENWJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ2ZldGNoTWFya2V0cyc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2ZldGNoTWFya09ITENWJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ2ZldGNoT3BlbkludGVyZXN0SGlzdG9yeSc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICdmZXRjaE9wZW5PcmRlcnMnOiB0cnVlLFxuICAgICAgICAgICAgICAgICdmZXRjaE9yZGVyQm9vayc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2ZldGNoUHJlbWl1bUluZGV4T0hMQ1YnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hUaWNrZXInOiB0cnVlLFxuICAgICAgICAgICAgICAgICdmZXRjaFRyYWRlcyc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2ZldGNoVHJhZGluZ0ZlZSc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICdmZXRjaFRyYWRpbmdGZWVzJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ3dpdGhkcmF3JzogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAndXJscyc6IHtcbiAgICAgICAgICAgICAgICAnbG9nbyc6ICdodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xMjk0NDU0LzI3NzY2OTI3LTM5Y2EyYWRhLTVlZWItMTFlNy05NzJmLTFiNDE5OTUxOGNhNi5qcGcnLFxuICAgICAgICAgICAgICAgICdhcGknOiB7XG4gICAgICAgICAgICAgICAgICAgICdyZXN0JzogJ2h0dHBzOi8vYXBpLnphaWYuanAnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ3d3dyc6ICdodHRwczovL3phaWYuanAnLFxuICAgICAgICAgICAgICAgICdkb2MnOiBbXG4gICAgICAgICAgICAgICAgICAgICdodHRwczovL3RlY2hidXJlYXUtYXBpLWRvY3VtZW50LnJlYWR0aGVkb2NzLmlvL2phL2xhdGVzdC9pbmRleC5odG1sJyxcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vY29ycC56YWlmLmpwL2FwaS1kb2NzJyxcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vY29ycC56YWlmLmpwL2FwaS1kb2NzL2FwaV9saW5rcycsXG4gICAgICAgICAgICAgICAgICAgICdodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS96YWlmLmpwJyxcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS95b3UyMTk3OS9ub2RlLXphaWYnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgJ2ZlZXMnOiAnaHR0cHM6Ly96YWlmLmpwL2ZlZT9sYW5nPWVuJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnZmVlcyc6IHtcbiAgICAgICAgICAgICAgICAndHJhZGluZyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3BlcmNlbnRhZ2UnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAndGFrZXInOiB0aGlzLnBhcnNlTnVtYmVyICgnMC4wMDEnKSxcbiAgICAgICAgICAgICAgICAgICAgJ21ha2VyJzogdGhpcy5wYXJzZU51bWJlciAoJzAnKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdhcGknOiB7XG4gICAgICAgICAgICAgICAgJ3B1YmxpYyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJ2dldCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdkZXB0aC97cGFpcn0nOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbmNpZXMve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW5jaWVzL2FsbCc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVuY3lfcGFpcnMve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW5jeV9wYWlycy9hbGwnOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2xhc3RfcHJpY2Uve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0aWNrZXIve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0cmFkZXMve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdwcml2YXRlJzoge1xuICAgICAgICAgICAgICAgICAgICAncG9zdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmVfb3JkZXJzJzogNSwgLy8gMTAgaW4gNSBzZWNvbmRzID0gMiBwZXIgc2Vjb25kID0+IGNvc3QgPSAxMCAvIDIgPSA1XG4gICAgICAgICAgICAgICAgICAgICAgICAnY2FuY2VsX29yZGVyJzogNSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdkZXBvc2l0X2hpc3RvcnknOiA1LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9pZF9pbmZvJzogNSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfaW5mbyc6IDEwLCAvLyAxMCBpbiAxMCBzZWNvbmRzID0gMSBwZXIgc2Vjb25kID0+IGNvc3QgPSAxMCAvIDEgPSAxMFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9pbmZvMic6IDUsIC8vIDIwIGluIDEwIHNlY29uZHMgPSAyIHBlciBzZWNvbmQgPT4gY29zdCA9IDEwIC8gMiA9IDVcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfcGVyc29uYWxfaW5mbyc6IDUsXG4gICAgICAgICAgICAgICAgICAgICAgICAndHJhZGUnOiA1LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYWRlX2hpc3RvcnknOiA1MCwgLy8gMTIgaW4gNjAgc2Vjb25kcyA9IDAuMiBwZXIgc2Vjb25kID0+IGNvc3QgPSAxMCAvIDAuMiA9IDUwXG4gICAgICAgICAgICAgICAgICAgICAgICAnd2l0aGRyYXcnOiA1LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3dpdGhkcmF3X2hpc3RvcnknOiA1LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2VjYXBpJzoge1xuICAgICAgICAgICAgICAgICAgICAncG9zdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGVJbnZvaWNlJzogMSwgLy8gdW52ZXJpZmllZFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dldEludm9pY2UnOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dldEludm9pY2VJZHNCeU9yZGVyTnVtYmVyJzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdjYW5jZWxJbnZvaWNlJzogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICd0bGFwaSc6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3Bvc3QnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3Bvc2l0aW9ucyc6IDY2LCAvLyAxMCBpbiA2MCBzZWNvbmRzID0gMC4xNjYgcGVyIHNlY29uZCA9PiBjb3N0ID0gMTAgLyAwLjE2NiA9IDY2XG4gICAgICAgICAgICAgICAgICAgICAgICAncG9zaXRpb25faGlzdG9yeSc6IDY2LCAvLyAxMCBpbiA2MCBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlX3Bvc2l0aW9ucyc6IDUsIC8vIDIwIGluIDEwIHNlY29uZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGVfcG9zaXRpb24nOiAzMywgLy8gMyBpbiAxMCBzZWNvbmRzID0gMC4zIHBlciBzZWNvbmQgPT4gY29zdCA9IDEwIC8gMC4zID0gMzNcbiAgICAgICAgICAgICAgICAgICAgICAgICdjaGFuZ2VfcG9zaXRpb24nOiAzMywgLy8gMyBpbiAxMCBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAnY2FuY2VsX3Bvc2l0aW9uJzogMzMsIC8vIDMgaW4gMTAgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2ZhcGknOiB7XG4gICAgICAgICAgICAgICAgICAgICdnZXQnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXBzL3tncm91cF9pZH0nOiAxLCAvLyB0ZXN0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAnbGFzdF9wcmljZS97Z3JvdXBfaWR9L3twYWlyfSc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAndGlja2VyL3tncm91cF9pZH0ve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0cmFkZXMve2dyb3VwX2lkfS97cGFpcn0nOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RlcHRoL3tncm91cF9pZH0ve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdvcHRpb25zJzoge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdwcmVjaXNpb25Nb2RlJzogVElDS19TSVpFLFxuICAgICAgICAgICAgJ2V4Y2VwdGlvbnMnOiB7XG4gICAgICAgICAgICAgICAgJ2V4YWN0Jzoge1xuICAgICAgICAgICAgICAgICAgICAndW5zdXBwb3J0ZWQgY3VycmVuY3lfcGFpcic6IEJhZFJlcXVlc3QsIC8vIHtcImVycm9yXCI6IFwidW5zdXBwb3J0ZWQgY3VycmVuY3lfcGFpclwifVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2Jyb2FkJzoge1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBmZXRjaE1hcmtldHMgKHBhcmFtcyA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBuYW1lIHphaWYjZmV0Y2hNYXJrZXRzXG4gICAgICAgICAqIEBzZWUgaHR0cHM6Ly96YWlmLWFwaS1kb2N1bWVudC5yZWFkdGhlZG9jcy5pby9qYS9sYXRlc3QvUHVibGljQVBJLmh0bWwjaWQxMlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gcmV0cmlldmVzIGRhdGEgb24gYWxsIG1hcmtldHMgZm9yIHphaWZcbiAgICAgICAgICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIGV4dHJhIHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gdGhlIGV4Y2hhbmdlIEFQSSBlbmRwb2ludFxuICAgICAgICAgKiBAcmV0dXJucyB7b2JqZWN0W119IGFuIGFycmF5IG9mIG9iamVjdHMgcmVwcmVzZW50aW5nIG1hcmtldCBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBtYXJrZXRzID0gYXdhaXQgdGhpcy5wdWJsaWNHZXRDdXJyZW5jeVBhaXJzQWxsIChwYXJhbXMpO1xuICAgICAgICAvL1xuICAgICAgICAvLyAgICAgW1xuICAgICAgICAvLyAgICAgICAgIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJhdXhfdW5pdF9wb2ludFwiOiAwLFxuICAgICAgICAvLyAgICAgICAgICAgICBcIml0ZW1famFwYW5lc2VcIjogXCJcXHUzMGQzXFx1MzBjM1xcdTMwYzhcXHUzMGIzXFx1MzBhNFxcdTMwZjNcIixcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJhdXhfdW5pdF9zdGVwXCI6IDUuMCxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlxcdTMwZDNcXHUzMGMzXFx1MzBjOFxcdTMwYjNcXHUzMGE0XFx1MzBmM1xcdTMwZmJcXHU2NWU1XFx1NjcyY1xcdTUxODZcXHUzMDZlXFx1NTNkNlxcdTVmMTVcXHUzMDkyXFx1ODg0Y1xcdTMwNDZcXHUzMDUzXFx1MzA2OFxcdTMwNGNcXHUzMDY3XFx1MzA0ZFxcdTMwN2VcXHUzMDU5XCIsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiaXRlbV91bml0X21pblwiOiAwLjAwMSxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJldmVudF9udW1iZXJcIjogMCxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJjdXJyZW5jeV9wYWlyXCI6IFwiYnRjX2pweVwiLFxuICAgICAgICAvLyAgICAgICAgICAgICBcImlzX3Rva2VuXCI6IGZhbHNlLFxuICAgICAgICAvLyAgICAgICAgICAgICBcImF1eF91bml0X21pblwiOiA1LjAsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiYXV4X2phcGFuZXNlXCI6IFwiXFx1NjVlNVxcdTY3MmNcXHU1MTg2XCIsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiaWRcIjogMSxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJpdGVtX3VuaXRfc3RlcFwiOiAwLjAwMDEsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwibmFtZVwiOiBcIkJUQy9KUFlcIixcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJzZXFcIjogMCxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJ0aXRsZVwiOiBcIkJUQy9KUFlcIlxuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIF1cbiAgICAgICAgLy9cbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VNYXJrZXRzIChtYXJrZXRzKTtcbiAgICB9XG5cbiAgICBwYXJzZU1hcmtldCAobWFya2V0KTogTWFya2V0IHtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLnNhZmVTdHJpbmcgKG1hcmtldCwgJ2N1cnJlbmN5X3BhaXInKTtcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuc2FmZVN0cmluZyAobWFya2V0LCAnbmFtZScpO1xuICAgICAgICBjb25zdCBbIGJhc2VJZCwgcXVvdGVJZCBdID0gbmFtZS5zcGxpdCAoJy8nKTtcbiAgICAgICAgY29uc3QgYmFzZSA9IHRoaXMuc2FmZUN1cnJlbmN5Q29kZSAoYmFzZUlkKTtcbiAgICAgICAgY29uc3QgcXVvdGUgPSB0aGlzLnNhZmVDdXJyZW5jeUNvZGUgKHF1b3RlSWQpO1xuICAgICAgICBjb25zdCBzeW1ib2wgPSBiYXNlICsgJy8nICsgcXVvdGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnaWQnOiBpZCxcbiAgICAgICAgICAgICdzeW1ib2wnOiBzeW1ib2wsXG4gICAgICAgICAgICAnYmFzZSc6IGJhc2UsXG4gICAgICAgICAgICAncXVvdGUnOiBxdW90ZSxcbiAgICAgICAgICAgICdzZXR0bGUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnYmFzZUlkJzogYmFzZUlkLFxuICAgICAgICAgICAgJ3F1b3RlSWQnOiBxdW90ZUlkLFxuICAgICAgICAgICAgJ3NldHRsZUlkJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3R5cGUnOiAnc3BvdCcsXG4gICAgICAgICAgICAnc3BvdCc6IHRydWUsXG4gICAgICAgICAgICAnbWFyZ2luJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3N3YXAnOiBmYWxzZSxcbiAgICAgICAgICAgICdmdXR1cmUnOiBmYWxzZSxcbiAgICAgICAgICAgICdvcHRpb24nOiBmYWxzZSxcbiAgICAgICAgICAgICdhY3RpdmUnOiB1bmRlZmluZWQsIC8vIGNhbiB0cmFkZSBvciBub3RcbiAgICAgICAgICAgICdjb250cmFjdCc6IGZhbHNlLFxuICAgICAgICAgICAgJ2xpbmVhcic6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdpbnZlcnNlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ2NvbnRyYWN0U2l6ZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdleHBpcnknOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnZXhwaXJ5RGF0ZXRpbWUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnc3RyaWtlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ29wdGlvblR5cGUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAncHJlY2lzaW9uJzoge1xuICAgICAgICAgICAgICAgICdhbW91bnQnOiB0aGlzLnNhZmVOdW1iZXIgKG1hcmtldCwgJ2l0ZW1fdW5pdF9zdGVwJyksXG4gICAgICAgICAgICAgICAgJ3ByaWNlJzogdGhpcy5wYXJzZU51bWJlciAodGhpcy5wYXJzZVByZWNpc2lvbiAodGhpcy5zYWZlU3RyaW5nIChtYXJrZXQsICdhdXhfdW5pdF9wb2ludCcpKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ2xpbWl0cyc6IHtcbiAgICAgICAgICAgICAgICAnbGV2ZXJhZ2UnOiB7XG4gICAgICAgICAgICAgICAgICAgICdtaW4nOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICdtYXgnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnYW1vdW50Jzoge1xuICAgICAgICAgICAgICAgICAgICAnbWluJzogdGhpcy5zYWZlTnVtYmVyIChtYXJrZXQsICdpdGVtX3VuaXRfbWluJyksXG4gICAgICAgICAgICAgICAgICAgICdtYXgnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAncHJpY2UnOiB7XG4gICAgICAgICAgICAgICAgICAgICdtaW4nOiB0aGlzLnNhZmVOdW1iZXIgKG1hcmtldCwgJ2F1eF91bml0X21pbicpLFxuICAgICAgICAgICAgICAgICAgICAnbWF4JzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2Nvc3QnOiB7XG4gICAgICAgICAgICAgICAgICAgICdtaW4nOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICdtYXgnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnY3JlYXRlZCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdpbmZvJzogbWFya2V0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHBhcnNlQmFsYW5jZSAocmVzcG9uc2UpOiBCYWxhbmNlcyB7XG4gICAgICAgIGNvbnN0IGJhbGFuY2VzID0gdGhpcy5zYWZlVmFsdWUgKHJlc3BvbnNlLCAncmV0dXJuJywge30pO1xuICAgICAgICBjb25zdCBkZXBvc2l0ID0gdGhpcy5zYWZlVmFsdWUgKGJhbGFuY2VzLCAnZGVwb3NpdCcpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgICAnaW5mbyc6IHJlc3BvbnNlLFxuICAgICAgICAgICAgJ3RpbWVzdGFtcCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdkYXRldGltZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZnVuZHMgPSB0aGlzLnNhZmVWYWx1ZSAoYmFsYW5jZXMsICdmdW5kcycsIHt9KTtcbiAgICAgICAgY29uc3QgY3VycmVuY3lJZHMgPSBPYmplY3Qua2V5cyAoZnVuZHMpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGN1cnJlbmN5SWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW5jeUlkID0gY3VycmVuY3lJZHNbaV07XG4gICAgICAgICAgICBjb25zdCBjb2RlID0gdGhpcy5zYWZlQ3VycmVuY3lDb2RlIChjdXJyZW5jeUlkKTtcbiAgICAgICAgICAgIGNvbnN0IGJhbGFuY2UgPSB0aGlzLnNhZmVTdHJpbmcgKGZ1bmRzLCBjdXJyZW5jeUlkKTtcbiAgICAgICAgICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLmFjY291bnQgKCk7XG4gICAgICAgICAgICBhY2NvdW50WydmcmVlJ10gPSBiYWxhbmNlO1xuICAgICAgICAgICAgYWNjb3VudFsndG90YWwnXSA9IGJhbGFuY2U7XG4gICAgICAgICAgICBpZiAoZGVwb3NpdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbmN5SWQgaW4gZGVwb3NpdCkge1xuICAgICAgICAgICAgICAgICAgICBhY2NvdW50Wyd0b3RhbCddID0gdGhpcy5zYWZlU3RyaW5nIChkZXBvc2l0LCBjdXJyZW5jeUlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRbY29kZV0gPSBhY2NvdW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVCYWxhbmNlIChyZXN1bHQpO1xuICAgIH1cblxuICAgIGFzeW5jIGZldGNoQmFsYW5jZSAocGFyYW1zID0ge30pOiBQcm9taXNlPEJhbGFuY2VzPiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBuYW1lIHphaWYjZmV0Y2hCYWxhbmNlXG4gICAgICAgICAqIEBzZWUgaHR0cHM6Ly96YWlmLWFwaS1kb2N1bWVudC5yZWFkdGhlZG9jcy5pby9qYS9sYXRlc3QvVHJhZGluZ0FQSS5odG1sI2lkMTBcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIHF1ZXJ5IGZvciBiYWxhbmNlIGFuZCBnZXQgdGhlIGFtb3VudCBvZiBmdW5kcyBhdmFpbGFibGUgZm9yIHRyYWRpbmcgb3IgZnVuZHMgbG9ja2VkIGluIG9yZGVyc1xuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gZXh0cmEgcGFyYW1ldGVycyBzcGVjaWZpYyB0byB0aGUgZXhjaGFuZ2UgQVBJIGVuZHBvaW50XG4gICAgICAgICAqIEByZXR1cm5zIHtvYmplY3R9IGEgW2JhbGFuY2Ugc3RydWN0dXJlXXtAbGluayBodHRwczovL2RvY3MuY2N4dC5jb20vIy8/aWQ9YmFsYW5jZS1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucHJpdmF0ZVBvc3RHZXRJbmZvIChwYXJhbXMpO1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUJhbGFuY2UgKHJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICBhc3luYyBmZXRjaE9yZGVyQm9vayAoc3ltYm9sOiBzdHJpbmcsIGxpbWl0OiBJbnQgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9KTogUHJvbWlzZTxPcmRlckJvb2s+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNmZXRjaE9yZGVyQm9va1xuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vemFpZi1hcGktZG9jdW1lbnQucmVhZHRoZWRvY3MuaW8vamEvbGF0ZXN0L1B1YmxpY0FQSS5odG1sI2lkMzRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIGZldGNoZXMgaW5mb3JtYXRpb24gb24gb3BlbiBvcmRlcnMgd2l0aCBiaWQgKGJ1eSkgYW5kIGFzayAoc2VsbCkgcHJpY2VzLCB2b2x1bWVzIGFuZCBvdGhlciBkYXRhXG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzeW1ib2wgdW5pZmllZCBzeW1ib2wgb2YgdGhlIG1hcmtldCB0byBmZXRjaCB0aGUgb3JkZXIgYm9vayBmb3JcbiAgICAgICAgICogQHBhcmFtIHtpbnR9IFtsaW1pdF0gdGhlIG1heGltdW0gYW1vdW50IG9mIG9yZGVyIGJvb2sgZW50cmllcyB0byByZXR1cm5cbiAgICAgICAgICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIGV4dHJhIHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gdGhlIGV4Y2hhbmdlIEFQSSBlbmRwb2ludFxuICAgICAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBBIGRpY3Rpb25hcnkgb2YgW29yZGVyIGJvb2sgc3RydWN0dXJlc117QGxpbmsgaHR0cHM6Ly9kb2NzLmNjeHQuY29tLyMvP2lkPW9yZGVyLWJvb2stc3RydWN0dXJlfSBpbmRleGVkIGJ5IG1hcmtldCBzeW1ib2xzXG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBjb25zdCBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgICdwYWlyJzogbWFya2V0WydpZCddLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucHVibGljR2V0RGVwdGhQYWlyICh0aGlzLmV4dGVuZCAocmVxdWVzdCwgcGFyYW1zKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlT3JkZXJCb29rIChyZXNwb25zZSwgbWFya2V0WydzeW1ib2wnXSk7XG4gICAgfVxuXG4gICAgcGFyc2VUaWNrZXIgKHRpY2tlciwgbWFya2V0OiBNYXJrZXQgPSB1bmRlZmluZWQpOiBUaWNrZXIge1xuICAgICAgICAvL1xuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBcImxhc3RcIjogOWUtMDgsXG4gICAgICAgIC8vICAgICBcImhpZ2hcIjogMWUtMDcsXG4gICAgICAgIC8vICAgICBcImxvd1wiOiA5ZS0wOCxcbiAgICAgICAgLy8gICAgIFwidndhcFwiOiAwLjAsXG4gICAgICAgIC8vICAgICBcInZvbHVtZVwiOiAxMzUyNTAuMCxcbiAgICAgICAgLy8gICAgIFwiYmlkXCI6IDllLTA4LFxuICAgICAgICAvLyAgICAgXCJhc2tcIjogMWUtMDdcbiAgICAgICAgLy8gfVxuICAgICAgICAvL1xuICAgICAgICBjb25zdCBzeW1ib2wgPSB0aGlzLnNhZmVTeW1ib2wgKHVuZGVmaW5lZCwgbWFya2V0KTtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5taWxsaXNlY29uZHMgKCk7XG4gICAgICAgIGNvbnN0IHZ3YXAgPSB0aGlzLnNhZmVTdHJpbmcgKHRpY2tlciwgJ3Z3YXAnKTtcbiAgICAgICAgY29uc3QgYmFzZVZvbHVtZSA9IHRoaXMuc2FmZVN0cmluZyAodGlja2VyLCAndm9sdW1lJyk7XG4gICAgICAgIGNvbnN0IHF1b3RlVm9sdW1lID0gUHJlY2lzZS5zdHJpbmdNdWwgKGJhc2VWb2x1bWUsIHZ3YXApO1xuICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5zYWZlU3RyaW5nICh0aWNrZXIsICdsYXN0Jyk7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVUaWNrZXIgKHtcbiAgICAgICAgICAgICdzeW1ib2wnOiBzeW1ib2wsXG4gICAgICAgICAgICAndGltZXN0YW1wJzogdGltZXN0YW1wLFxuICAgICAgICAgICAgJ2RhdGV0aW1lJzogdGhpcy5pc284NjAxICh0aW1lc3RhbXApLFxuICAgICAgICAgICAgJ2hpZ2gnOiB0aGlzLnNhZmVTdHJpbmcgKHRpY2tlciwgJ2hpZ2gnKSxcbiAgICAgICAgICAgICdsb3cnOiB0aGlzLnNhZmVTdHJpbmcgKHRpY2tlciwgJ2xvdycpLFxuICAgICAgICAgICAgJ2JpZCc6IHRoaXMuc2FmZVN0cmluZyAodGlja2VyLCAnYmlkJyksXG4gICAgICAgICAgICAnYmlkVm9sdW1lJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ2Fzayc6IHRoaXMuc2FmZVN0cmluZyAodGlja2VyLCAnYXNrJyksXG4gICAgICAgICAgICAnYXNrVm9sdW1lJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3Z3YXAnOiB2d2FwLFxuICAgICAgICAgICAgJ29wZW4nOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnY2xvc2UnOiBsYXN0LFxuICAgICAgICAgICAgJ2xhc3QnOiBsYXN0LFxuICAgICAgICAgICAgJ3ByZXZpb3VzQ2xvc2UnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnY2hhbmdlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3BlcmNlbnRhZ2UnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnYXZlcmFnZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdiYXNlVm9sdW1lJzogYmFzZVZvbHVtZSxcbiAgICAgICAgICAgICdxdW90ZVZvbHVtZSc6IHF1b3RlVm9sdW1lLFxuICAgICAgICAgICAgJ2luZm8nOiB0aWNrZXIsXG4gICAgICAgIH0sIG1hcmtldCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZmV0Y2hUaWNrZXIgKHN5bWJvbDogc3RyaW5nLCBwYXJhbXMgPSB7fSk6IFByb21pc2U8VGlja2VyPiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBuYW1lIHphaWYjZmV0Y2hUaWNrZXJcbiAgICAgICAgICogQHNlZSBodHRwczovL3phaWYtYXBpLWRvY3VtZW50LnJlYWR0aGVkb2NzLmlvL2phL2xhdGVzdC9QdWJsaWNBUEkuaHRtbCNpZDIyXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBmZXRjaGVzIGEgcHJpY2UgdGlja2VyLCBhIHN0YXRpc3RpY2FsIGNhbGN1bGF0aW9uIHdpdGggdGhlIGluZm9ybWF0aW9uIGNhbGN1bGF0ZWQgb3ZlciB0aGUgcGFzdCAyNCBob3VycyBmb3IgYSBzcGVjaWZpYyBtYXJrZXRcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHN5bWJvbCB1bmlmaWVkIHN5bWJvbCBvZiB0aGUgbWFya2V0IHRvIGZldGNoIHRoZSB0aWNrZXIgZm9yXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBleHRyYSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoZSBleGNoYW5nZSBBUEkgZW5kcG9pbnRcbiAgICAgICAgICogQHJldHVybnMge29iamVjdH0gYSBbdGlja2VyIHN0cnVjdHVyZV17QGxpbmsgaHR0cHM6Ly9kb2NzLmNjeHQuY29tLyMvP2lkPXRpY2tlci1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBjb25zdCBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgICdwYWlyJzogbWFya2V0WydpZCddLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0aWNrZXIgPSBhd2FpdCB0aGlzLnB1YmxpY0dldFRpY2tlclBhaXIgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8ge1xuICAgICAgICAvLyAgICAgXCJsYXN0XCI6IDllLTA4LFxuICAgICAgICAvLyAgICAgXCJoaWdoXCI6IDFlLTA3LFxuICAgICAgICAvLyAgICAgXCJsb3dcIjogOWUtMDgsXG4gICAgICAgIC8vICAgICBcInZ3YXBcIjogMC4wLFxuICAgICAgICAvLyAgICAgXCJ2b2x1bWVcIjogMTM1MjUwLjAsXG4gICAgICAgIC8vICAgICBcImJpZFwiOiA5ZS0wOCxcbiAgICAgICAgLy8gICAgIFwiYXNrXCI6IDFlLTA3XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy9cbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VUaWNrZXIgKHRpY2tlciwgbWFya2V0KTtcbiAgICB9XG5cbiAgICBwYXJzZVRyYWRlICh0cmFkZSwgbWFya2V0OiBNYXJrZXQgPSB1bmRlZmluZWQpOiBUcmFkZSB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIGZldGNoVHJhZGVzIChwdWJsaWMpXG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICAge1xuICAgICAgICAvLyAgICAgICAgICBcImRhdGVcIjogMTY0ODU1OTQxNCxcbiAgICAgICAgLy8gICAgICAgICAgXCJwcmljZVwiOiA1ODgwMzc1LjAsXG4gICAgICAgIC8vICAgICAgICAgIFwiYW1vdW50XCI6IDAuMDE3LFxuICAgICAgICAvLyAgICAgICAgICBcInRpZFwiOiAxNzYxMjY1NTcsXG4gICAgICAgIC8vICAgICAgICAgIFwiY3VycmVuY3lfcGFpclwiOiBcImJ0Y19qcHlcIixcbiAgICAgICAgLy8gICAgICAgICAgXCJ0cmFkZV90eXBlXCI6IFwiYXNrXCJcbiAgICAgICAgLy8gICAgICB9XG4gICAgICAgIC8vXG4gICAgICAgIGxldCBzaWRlID0gdGhpcy5zYWZlU3RyaW5nICh0cmFkZSwgJ3RyYWRlX3R5cGUnKTtcbiAgICAgICAgc2lkZSA9IChzaWRlID09PSAnYmlkJykgPyAnYnV5JyA6ICdzZWxsJztcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5zYWZlVGltZXN0YW1wICh0cmFkZSwgJ2RhdGUnKTtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLnNhZmVTdHJpbmcyICh0cmFkZSwgJ2lkJywgJ3RpZCcpO1xuICAgICAgICBjb25zdCBwcmljZVN0cmluZyA9IHRoaXMuc2FmZVN0cmluZyAodHJhZGUsICdwcmljZScpO1xuICAgICAgICBjb25zdCBhbW91bnRTdHJpbmcgPSB0aGlzLnNhZmVTdHJpbmcgKHRyYWRlLCAnYW1vdW50Jyk7XG4gICAgICAgIGNvbnN0IG1hcmtldElkID0gdGhpcy5zYWZlU3RyaW5nICh0cmFkZSwgJ2N1cnJlbmN5X3BhaXInKTtcbiAgICAgICAgY29uc3Qgc3ltYm9sID0gdGhpcy5zYWZlU3ltYm9sIChtYXJrZXRJZCwgbWFya2V0LCAnXycpO1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlVHJhZGUgKHtcbiAgICAgICAgICAgICdpZCc6IGlkLFxuICAgICAgICAgICAgJ2luZm8nOiB0cmFkZSxcbiAgICAgICAgICAgICd0aW1lc3RhbXAnOiB0aW1lc3RhbXAsXG4gICAgICAgICAgICAnZGF0ZXRpbWUnOiB0aGlzLmlzbzg2MDEgKHRpbWVzdGFtcCksXG4gICAgICAgICAgICAnc3ltYm9sJzogc3ltYm9sLFxuICAgICAgICAgICAgJ3R5cGUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnc2lkZSc6IHNpZGUsXG4gICAgICAgICAgICAnb3JkZXInOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndGFrZXJPck1ha2VyJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3ByaWNlJzogcHJpY2VTdHJpbmcsXG4gICAgICAgICAgICAnYW1vdW50JzogYW1vdW50U3RyaW5nLFxuICAgICAgICAgICAgJ2Nvc3QnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnZmVlJzogdW5kZWZpbmVkLFxuICAgICAgICB9LCBtYXJrZXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGZldGNoVHJhZGVzIChzeW1ib2w6IHN0cmluZywgc2luY2U6IEludCA9IHVuZGVmaW5lZCwgbGltaXQ6IEludCA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30pOiBQcm9taXNlPFRyYWRlW10+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNmZXRjaFRyYWRlc1xuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vemFpZi1hcGktZG9jdW1lbnQucmVhZHRoZWRvY3MuaW8vamEvbGF0ZXN0L1B1YmxpY0FQSS5odG1sI2lkMjhcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIGdldCB0aGUgbGlzdCBvZiBtb3N0IHJlY2VudCB0cmFkZXMgZm9yIGEgcGFydGljdWxhciBzeW1ib2xcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHN5bWJvbCB1bmlmaWVkIHN5bWJvbCBvZiB0aGUgbWFya2V0IHRvIGZldGNoIHRyYWRlcyBmb3JcbiAgICAgICAgICogQHBhcmFtIHtpbnR9IFtzaW5jZV0gdGltZXN0YW1wIGluIG1zIG9mIHRoZSBlYXJsaWVzdCB0cmFkZSB0byBmZXRjaFxuICAgICAgICAgKiBAcGFyYW0ge2ludH0gW2xpbWl0XSB0aGUgbWF4aW11bSBhbW91bnQgb2YgdHJhZGVzIHRvIGZldGNoXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBleHRyYSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoZSBleGNoYW5nZSBBUEkgZW5kcG9pbnRcbiAgICAgICAgICogQHJldHVybnMge1RyYWRlW119IGEgbGlzdCBvZiBbdHJhZGUgc3RydWN0dXJlc117QGxpbmsgaHR0cHM6Ly9kb2NzLmNjeHQuY29tLyMvP2lkPXB1YmxpYy10cmFkZXN9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBjb25zdCBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgICdwYWlyJzogbWFya2V0WydpZCddLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnB1YmxpY0dldFRyYWRlc1BhaXIgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAgICBbXG4gICAgICAgIC8vICAgICAgICAgIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgIFwiZGF0ZVwiOiAxNjQ4NTU5NDE0LFxuICAgICAgICAvLyAgICAgICAgICAgICAgXCJwcmljZVwiOiA1ODgwMzc1LjAsXG4gICAgICAgIC8vICAgICAgICAgICAgICBcImFtb3VudFwiOiAwLjAxNyxcbiAgICAgICAgLy8gICAgICAgICAgICAgIFwidGlkXCI6IDE3NjEyNjU1NyxcbiAgICAgICAgLy8gICAgICAgICAgICAgIFwiY3VycmVuY3lfcGFpclwiOiBcImJ0Y19qcHlcIixcbiAgICAgICAgLy8gICAgICAgICAgICAgIFwidHJhZGVfdHlwZVwiOiBcImFza1wiXG4gICAgICAgIC8vICAgICAgICAgIH0sIC4uLlxuICAgICAgICAvLyAgICAgIF1cbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgbnVtVHJhZGVzID0gcmVzcG9uc2UubGVuZ3RoO1xuICAgICAgICBpZiAobnVtVHJhZGVzID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFRyYWRlID0gcmVzcG9uc2VbMF07XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzIChmaXJzdFRyYWRlKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlVHJhZGVzIChyZXNwb25zZSwgbWFya2V0LCBzaW5jZSwgbGltaXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGNyZWF0ZU9yZGVyIChzeW1ib2w6IHN0cmluZywgdHlwZTogT3JkZXJUeXBlLCBzaWRlOiBPcmRlclNpZGUsIGFtb3VudCwgcHJpY2UgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBuYW1lIHphaWYjY3JlYXRlT3JkZXJcbiAgICAgICAgICogQHNlZSBodHRwczovL3phaWYtYXBpLWRvY3VtZW50LnJlYWR0aGVkb2NzLmlvL2phL2xhdGVzdC9NYXJnaW5UcmFkaW5nQVBJLmh0bWwjaWQyM1xuICAgICAgICAgKiBAZGVzY3JpcHRpb24gY3JlYXRlIGEgdHJhZGUgb3JkZXJcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHN5bWJvbCB1bmlmaWVkIHN5bWJvbCBvZiB0aGUgbWFya2V0IHRvIGNyZWF0ZSBhbiBvcmRlciBpblxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBtdXN0IGJlICdsaW1pdCdcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNpZGUgJ2J1eScgb3IgJ3NlbGwnXG4gICAgICAgICAqIEBwYXJhbSB7ZmxvYXR9IGFtb3VudCBob3cgbXVjaCBvZiBjdXJyZW5jeSB5b3Ugd2FudCB0byB0cmFkZSBpbiB1bml0cyBvZiBiYXNlIGN1cnJlbmN5XG4gICAgICAgICAqIEBwYXJhbSB7ZmxvYXR9IFtwcmljZV0gdGhlIHByaWNlIGF0IHdoaWNoIHRoZSBvcmRlciBpcyB0byBiZSBmdWxsZmlsbGVkLCBpbiB1bml0cyBvZiB0aGUgcXVvdGUgY3VycmVuY3ksIGlnbm9yZWQgaW4gbWFya2V0IG9yZGVyc1xuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gZXh0cmEgcGFyYW1ldGVycyBzcGVjaWZpYyB0byB0aGUgZXhjaGFuZ2UgQVBJIGVuZHBvaW50XG4gICAgICAgICAqIEByZXR1cm5zIHtvYmplY3R9IGFuIFtvcmRlciBzdHJ1Y3R1cmVde0BsaW5rIGh0dHBzOi8vZG9jcy5jY3h0LmNvbS8jLz9pZD1vcmRlci1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBpZiAodHlwZSAhPT0gJ2xpbWl0Jykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2hhbmdlRXJyb3IgKHRoaXMuaWQgKyAnIGNyZWF0ZU9yZGVyKCkgYWxsb3dzIGxpbWl0IG9yZGVycyBvbmx5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWFya2V0ID0gdGhpcy5tYXJrZXQgKHN5bWJvbCk7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgICAgICAnY3VycmVuY3lfcGFpcic6IG1hcmtldFsnaWQnXSxcbiAgICAgICAgICAgICdhY3Rpb24nOiAoc2lkZSA9PT0gJ2J1eScpID8gJ2JpZCcgOiAnYXNrJyxcbiAgICAgICAgICAgICdhbW91bnQnOiBhbW91bnQsXG4gICAgICAgICAgICAncHJpY2UnOiBwcmljZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnByaXZhdGVQb3N0VHJhZGUgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU9yZGVyICh7XG4gICAgICAgICAgICAnaW5mbyc6IHJlc3BvbnNlLFxuICAgICAgICAgICAgJ2lkJzogcmVzcG9uc2VbJ3JldHVybiddWydvcmRlcl9pZCddLnRvU3RyaW5nICgpLFxuICAgICAgICB9LCBtYXJrZXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGNhbmNlbE9yZGVyIChpZDogc3RyaW5nLCBzeW1ib2w6IFN0ciA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNjYW5jZWxPcmRlclxuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vemFpZi1hcGktZG9jdW1lbnQucmVhZHRoZWRvY3MuaW8vamEvbGF0ZXN0L1RyYWRpbmdBUEkuaHRtbCNpZDM3XG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBjYW5jZWxzIGFuIG9wZW4gb3JkZXJcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGlkIG9yZGVyIGlkXG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzeW1ib2wgbm90IHVzZWQgYnkgemFpZiBjYW5jZWxPcmRlciAoKVxuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gZXh0cmEgcGFyYW1ldGVycyBzcGVjaWZpYyB0byB0aGUgZXhjaGFuZ2UgQVBJIGVuZHBvaW50XG4gICAgICAgICAqIEByZXR1cm5zIHtvYmplY3R9IEFuIFtvcmRlciBzdHJ1Y3R1cmVde0BsaW5rIGh0dHBzOi8vZG9jcy5jY3h0LmNvbS8jLz9pZD1vcmRlci1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICAgICAgJ29yZGVyX2lkJzogaWQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByaXZhdGVQb3N0Q2FuY2VsT3JkZXIgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICB9XG5cbiAgICBwYXJzZU9yZGVyIChvcmRlciwgbWFya2V0OiBNYXJrZXQgPSB1bmRlZmluZWQpOiBPcmRlciB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICB7XG4gICAgICAgIC8vICAgICAgICAgXCJjdXJyZW5jeV9wYWlyXCI6IFwiYnRjX2pweVwiLFxuICAgICAgICAvLyAgICAgICAgIFwiYWN0aW9uXCI6IFwiYXNrXCIsXG4gICAgICAgIC8vICAgICAgICAgXCJhbW91bnRcIjogMC4wMyxcbiAgICAgICAgLy8gICAgICAgICBcInByaWNlXCI6IDU2MDAwLFxuICAgICAgICAvLyAgICAgICAgIFwidGltZXN0YW1wXCI6IDE0MDIwMjExMjUsXG4gICAgICAgIC8vICAgICAgICAgXCJjb21tZW50XCIgOiBcImRlbW9cIlxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvL1xuICAgICAgICBsZXQgc2lkZSA9IHRoaXMuc2FmZVN0cmluZyAob3JkZXIsICdhY3Rpb24nKTtcbiAgICAgICAgc2lkZSA9IChzaWRlID09PSAnYmlkJykgPyAnYnV5JyA6ICdzZWxsJztcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5zYWZlVGltZXN0YW1wIChvcmRlciwgJ3RpbWVzdGFtcCcpO1xuICAgICAgICBjb25zdCBtYXJrZXRJZCA9IHRoaXMuc2FmZVN0cmluZyAob3JkZXIsICdjdXJyZW5jeV9wYWlyJyk7XG4gICAgICAgIGNvbnN0IHN5bWJvbCA9IHRoaXMuc2FmZVN5bWJvbCAobWFya2V0SWQsIG1hcmtldCwgJ18nKTtcbiAgICAgICAgY29uc3QgcHJpY2UgPSB0aGlzLnNhZmVTdHJpbmcgKG9yZGVyLCAncHJpY2UnKTtcbiAgICAgICAgY29uc3QgYW1vdW50ID0gdGhpcy5zYWZlU3RyaW5nIChvcmRlciwgJ2Ftb3VudCcpO1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuc2FmZVN0cmluZyAob3JkZXIsICdpZCcpO1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlT3JkZXIgKHtcbiAgICAgICAgICAgICdpZCc6IGlkLFxuICAgICAgICAgICAgJ2NsaWVudE9yZGVySWQnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndGltZXN0YW1wJzogdGltZXN0YW1wLFxuICAgICAgICAgICAgJ2RhdGV0aW1lJzogdGhpcy5pc284NjAxICh0aW1lc3RhbXApLFxuICAgICAgICAgICAgJ2xhc3RUcmFkZVRpbWVzdGFtcCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdzdGF0dXMnOiAnb3BlbicsXG4gICAgICAgICAgICAnc3ltYm9sJzogc3ltYm9sLFxuICAgICAgICAgICAgJ3R5cGUnOiAnbGltaXQnLFxuICAgICAgICAgICAgJ3RpbWVJbkZvcmNlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3Bvc3RPbmx5JzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3NpZGUnOiBzaWRlLFxuICAgICAgICAgICAgJ3ByaWNlJzogcHJpY2UsXG4gICAgICAgICAgICAnc3RvcFByaWNlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3RyaWdnZXJQcmljZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdjb3N0JzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ2Ftb3VudCc6IGFtb3VudCxcbiAgICAgICAgICAgICdmaWxsZWQnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAncmVtYWluaW5nJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3RyYWRlcyc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdmZWUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnaW5mbyc6IG9yZGVyLFxuICAgICAgICAgICAgJ2F2ZXJhZ2UnOiB1bmRlZmluZWQsXG4gICAgICAgIH0sIG1hcmtldCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZmV0Y2hPcGVuT3JkZXJzIChzeW1ib2w6IFN0ciA9IHVuZGVmaW5lZCwgc2luY2U6IEludCA9IHVuZGVmaW5lZCwgbGltaXQ6IEludCA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30pOiBQcm9taXNlPE9yZGVyW10+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNmZXRjaE9wZW5PcmRlcnNcbiAgICAgICAgICogQHNlZSBodHRwczovL3phaWYtYXBpLWRvY3VtZW50LnJlYWR0aGVkb2NzLmlvL2phL2xhdGVzdC9NYXJnaW5UcmFkaW5nQVBJLmh0bWwjaWQyOFxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gZmV0Y2ggYWxsIHVuZmlsbGVkIGN1cnJlbnRseSBvcGVuIG9yZGVyc1xuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3ltYm9sIHVuaWZpZWQgbWFya2V0IHN5bWJvbFxuICAgICAgICAgKiBAcGFyYW0ge2ludH0gW3NpbmNlXSB0aGUgZWFybGllc3QgdGltZSBpbiBtcyB0byBmZXRjaCBvcGVuIG9yZGVycyBmb3JcbiAgICAgICAgICogQHBhcmFtIHtpbnR9IFtsaW1pdF0gdGhlIG1heGltdW0gbnVtYmVyIG9mICBvcGVuIG9yZGVycyBzdHJ1Y3R1cmVzIHRvIHJldHJpZXZlXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBleHRyYSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoZSBleGNoYW5nZSBBUEkgZW5kcG9pbnRcbiAgICAgICAgICogQHJldHVybnMge09yZGVyW119IGEgbGlzdCBvZiBbb3JkZXIgc3RydWN0dXJlc117QGxpbmsgaHR0cHM6Ly9kb2NzLmNjeHQuY29tLyMvP2lkPW9yZGVyLXN0cnVjdHVyZX1cbiAgICAgICAgICovXG4gICAgICAgIGF3YWl0IHRoaXMubG9hZE1hcmtldHMgKCk7XG4gICAgICAgIGxldCBtYXJrZXQ6IE1hcmtldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgIC8vICdpc190b2tlbic6IGZhbHNlLFxuICAgICAgICAgICAgLy8gJ2lzX3Rva2VuX2JvdGgnOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgICAgIHJlcXVlc3RbJ2N1cnJlbmN5X3BhaXInXSA9IG1hcmtldFsnaWQnXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucHJpdmF0ZVBvc3RBY3RpdmVPcmRlcnMgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VPcmRlcnMgKHJlc3BvbnNlWydyZXR1cm4nXSwgbWFya2V0LCBzaW5jZSwgbGltaXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGZldGNoQ2xvc2VkT3JkZXJzIChzeW1ib2w6IFN0ciA9IHVuZGVmaW5lZCwgc2luY2U6IEludCA9IHVuZGVmaW5lZCwgbGltaXQ6IEludCA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30pOiBQcm9taXNlPE9yZGVyW10+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNmZXRjaENsb3NlZE9yZGVyc1xuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vemFpZi1hcGktZG9jdW1lbnQucmVhZHRoZWRvY3MuaW8vamEvbGF0ZXN0L1RyYWRpbmdBUEkuaHRtbCNpZDI0XG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBmZXRjaGVzIGluZm9ybWF0aW9uIG9uIG11bHRpcGxlIGNsb3NlZCBvcmRlcnMgbWFkZSBieSB0aGUgdXNlclxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3ltYm9sIHVuaWZpZWQgbWFya2V0IHN5bWJvbCBvZiB0aGUgbWFya2V0IG9yZGVycyB3ZXJlIG1hZGUgaW5cbiAgICAgICAgICogQHBhcmFtIHtpbnR9IFtzaW5jZV0gdGhlIGVhcmxpZXN0IHRpbWUgaW4gbXMgdG8gZmV0Y2ggb3JkZXJzIGZvclxuICAgICAgICAgKiBAcGFyYW0ge2ludH0gW2xpbWl0XSB0aGUgbWF4aW11bSBudW1iZXIgb2YgIG9yZGUgc3RydWN0dXJlcyB0byByZXRyaWV2ZVxuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gZXh0cmEgcGFyYW1ldGVycyBzcGVjaWZpYyB0byB0aGUgZXhjaGFuZ2UgQVBJIGVuZHBvaW50XG4gICAgICAgICAqIEByZXR1cm5zIHtPcmRlcltdfSBhIGxpc3Qgb2YgW29yZGVyIHN0cnVjdHVyZXNde0BsaW5rIGh0dHBzOi8vZG9jcy5jY3h0LmNvbS8jLz9pZD1vcmRlci1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBsZXQgbWFya2V0OiBNYXJrZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgICAgICAvLyAnZnJvbSc6IDAsXG4gICAgICAgICAgICAvLyAnY291bnQnOiAxMDAwLFxuICAgICAgICAgICAgLy8gJ2Zyb21faWQnOiAwLFxuICAgICAgICAgICAgLy8gJ2VuZF9pZCc6IDEwMDAsXG4gICAgICAgICAgICAvLyAnb3JkZXInOiAnREVTQycsXG4gICAgICAgICAgICAvLyAnc2luY2UnOiAxNTAzODIxMDUxLFxuICAgICAgICAgICAgLy8gJ2VuZCc6IDE1MDM4MjEwNTEsXG4gICAgICAgICAgICAvLyAnaXNfdG9rZW4nOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgICAgIHJlcXVlc3RbJ2N1cnJlbmN5X3BhaXInXSA9IG1hcmtldFsnaWQnXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucHJpdmF0ZVBvc3RUcmFkZUhpc3RvcnkgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VPcmRlcnMgKHJlc3BvbnNlWydyZXR1cm4nXSwgbWFya2V0LCBzaW5jZSwgbGltaXQpO1xuICAgIH1cblxuICAgIGFzeW5jIHdpdGhkcmF3IChjb2RlOiBzdHJpbmcsIGFtb3VudCwgYWRkcmVzcywgdGFnID0gdW5kZWZpbmVkLCBwYXJhbXMgPSB7fSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQG1ldGhvZFxuICAgICAgICAgKiBAbmFtZSB6YWlmI3dpdGhkcmF3XG4gICAgICAgICAqIEBzZWUgaHR0cHM6Ly96YWlmLWFwaS1kb2N1bWVudC5yZWFkdGhlZG9jcy5pby9qYS9sYXRlc3QvVHJhZGluZ0FQSS5odG1sI2lkNDFcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIG1ha2UgYSB3aXRoZHJhd2FsXG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb2RlIHVuaWZpZWQgY3VycmVuY3kgY29kZVxuICAgICAgICAgKiBAcGFyYW0ge2Zsb2F0fSBhbW91bnQgdGhlIGFtb3VudCB0byB3aXRoZHJhd1xuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyB0byB3aXRoZHJhdyB0b1xuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBleHRyYSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoZSBleGNoYW5nZSBBUEkgZW5kcG9pbnRcbiAgICAgICAgICogQHJldHVybnMge29iamVjdH0gYSBbdHJhbnNhY3Rpb24gc3RydWN0dXJlXXtAbGluayBodHRwczovL2RvY3MuY2N4dC5jb20vIy8/aWQ9dHJhbnNhY3Rpb24tc3RydWN0dXJlfVxuICAgICAgICAgKi9cbiAgICAgICAgWyB0YWcsIHBhcmFtcyBdID0gdGhpcy5oYW5kbGVXaXRoZHJhd1RhZ0FuZFBhcmFtcyAodGFnLCBwYXJhbXMpO1xuICAgICAgICB0aGlzLmNoZWNrQWRkcmVzcyAoYWRkcmVzcyk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZE1hcmtldHMgKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5ID0gdGhpcy5jdXJyZW5jeSAoY29kZSk7XG4gICAgICAgIGlmIChjb2RlID09PSAnSlBZJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2hhbmdlRXJyb3IgKHRoaXMuaWQgKyAnIHdpdGhkcmF3KCkgZG9lcyBub3QgYWxsb3cgJyArIGNvZGUgKyAnIHdpdGhkcmF3YWxzJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgICdjdXJyZW5jeSc6IGN1cnJlbmN5WydpZCddLFxuICAgICAgICAgICAgJ2Ftb3VudCc6IGFtb3VudCxcbiAgICAgICAgICAgICdhZGRyZXNzJzogYWRkcmVzcyxcbiAgICAgICAgICAgIC8vICdtZXNzYWdlJzogJ0hpIScsIC8vIFhFTSBhbmQgb3RoZXJzXG4gICAgICAgICAgICAvLyAnb3B0X2ZlZSc6IDAuMDAzLCAvLyBCVEMgYW5kIE1PTkEgb25seVxuICAgICAgICB9O1xuICAgICAgICBpZiAodGFnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcXVlc3RbJ21lc3NhZ2UnXSA9IHRhZztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnByaXZhdGVQb3N0V2l0aGRyYXcgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAgIHtcbiAgICAgICAgLy8gICAgICAgICBcInN1Y2Nlc3NcIjogMSxcbiAgICAgICAgLy8gICAgICAgICBcInJldHVyblwiOiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIFwiaWRcIjogMjM2MzQsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiZmVlXCI6IDAuMDAxLFxuICAgICAgICAvLyAgICAgICAgICAgICBcInR4aWRcIjosXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiZnVuZHNcIjoge1xuICAgICAgICAvLyAgICAgICAgICAgICAgICAgXCJqcHlcIjogMTUzMjAsXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICBcImJ0Y1wiOiAxLjM5MixcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIFwieGVtXCI6IDEwMC4yLFxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgXCJtb25hXCI6IDI2MDBcbiAgICAgICAgLy8gICAgICAgICAgICAgfVxuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgcmV0dXJuRGF0YSA9IHRoaXMuc2FmZVZhbHVlIChyZXN1bHQsICdyZXR1cm4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VUcmFuc2FjdGlvbiAocmV0dXJuRGF0YSwgY3VycmVuY3kpO1xuICAgIH1cblxuICAgIHBhcnNlVHJhbnNhY3Rpb24gKHRyYW5zYWN0aW9uLCBjdXJyZW5jeTogQ3VycmVuY3kgPSB1bmRlZmluZWQpOiBUcmFuc2FjdGlvbiB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICB7XG4gICAgICAgIC8vICAgICAgICAgXCJpZFwiOiAyMzYzNCxcbiAgICAgICAgLy8gICAgICAgICBcImZlZVwiOiAwLjAwMSxcbiAgICAgICAgLy8gICAgICAgICBcInR4aWRcIjosXG4gICAgICAgIC8vICAgICAgICAgXCJmdW5kc1wiOiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIFwianB5XCI6IDE1MzIwLFxuICAgICAgICAvLyAgICAgICAgICAgICBcImJ0Y1wiOiAxLjM5MixcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJ4ZW1cIjogMTAwLjIsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwibW9uYVwiOiAyNjAwXG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvL1xuICAgICAgICBjdXJyZW5jeSA9IHRoaXMuc2FmZUN1cnJlbmN5ICh1bmRlZmluZWQsIGN1cnJlbmN5KTtcbiAgICAgICAgbGV0IGZlZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmVlQ29zdCA9IHRoaXMuc2FmZVZhbHVlICh0cmFuc2FjdGlvbiwgJ2ZlZScpO1xuICAgICAgICBpZiAoZmVlQ29zdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmZWUgPSB7XG4gICAgICAgICAgICAgICAgJ2Nvc3QnOiBmZWVDb3N0LFxuICAgICAgICAgICAgICAgICdjdXJyZW5jeSc6IGN1cnJlbmN5Wydjb2RlJ10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnaWQnOiB0aGlzLnNhZmVTdHJpbmcgKHRyYW5zYWN0aW9uLCAnaWQnKSxcbiAgICAgICAgICAgICd0eGlkJzogdGhpcy5zYWZlU3RyaW5nICh0cmFuc2FjdGlvbiwgJ3R4aWQnKSxcbiAgICAgICAgICAgICd0aW1lc3RhbXAnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnZGF0ZXRpbWUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnbmV0d29yayc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdhZGRyZXNzRnJvbSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdhZGRyZXNzJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ2FkZHJlc3NUbyc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdhbW91bnQnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndHlwZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdjdXJyZW5jeSc6IGN1cnJlbmN5Wydjb2RlJ10sXG4gICAgICAgICAgICAnc3RhdHVzJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3VwZGF0ZWQnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndGFnRnJvbSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICd0YWcnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndGFnVG8nOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnY29tbWVudCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdpbnRlcm5hbCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdmZWUnOiBmZWUsXG4gICAgICAgICAgICAnaW5mbyc6IHRyYW5zYWN0aW9uLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGN1c3RvbU5vbmNlICgpIHtcbiAgICAgICAgY29uc3QgbnVtID0gKHRoaXMubWlsbGlzZWNvbmRzICgpIC8gMTAwMCkudG9TdHJpbmcgKCk7XG4gICAgICAgIGNvbnN0IG5vbmNlID0gcGFyc2VGbG9hdCAobnVtKTtcbiAgICAgICAgcmV0dXJuIG5vbmNlLnRvRml4ZWQgKDgpO1xuICAgIH1cblxuICAgIHNpZ24gKHBhdGgsIGFwaSA9ICdwdWJsaWMnLCBtZXRob2QgPSAnR0VUJywgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB1bmRlZmluZWQsIGJvZHkgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IHVybCA9IHRoaXMudXJsc1snYXBpJ11bJ3Jlc3QnXSArICcvJztcbiAgICAgICAgaWYgKGFwaSA9PT0gJ3B1YmxpYycpIHtcbiAgICAgICAgICAgIHVybCArPSAnYXBpLycgKyB0aGlzLnZlcnNpb24gKyAnLycgKyB0aGlzLmltcGxvZGVQYXJhbXMgKHBhdGgsIHBhcmFtcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXBpID09PSAnZmFwaScpIHtcbiAgICAgICAgICAgIHVybCArPSAnZmFwaS8nICsgdGhpcy52ZXJzaW9uICsgJy8nICsgdGhpcy5pbXBsb2RlUGFyYW1zIChwYXRoLCBwYXJhbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGVja1JlcXVpcmVkQ3JlZGVudGlhbHMgKCk7XG4gICAgICAgICAgICBpZiAoYXBpID09PSAnZWNhcGknKSB7XG4gICAgICAgICAgICAgICAgdXJsICs9ICdlY2FwaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFwaSA9PT0gJ3RsYXBpJykge1xuICAgICAgICAgICAgICAgIHVybCArPSAndGxhcGknO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cmwgKz0gJ3RhcGknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgbm9uY2UgPSB0aGlzLmN1c3RvbU5vbmNlICgpO1xuICAgICAgICAgICAgYm9keSA9IHRoaXMudXJsZW5jb2RlICh0aGlzLmV4dGVuZCAoe1xuICAgICAgICAgICAgICAgICdtZXRob2QnOiBwYXRoLFxuICAgICAgICAgICAgICAgICdub25jZSc6IG5vbmNlLFxuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG4gICAgICAgICAgICBoZWFkZXJzID0ge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICAgICAgICAgICAgICAnS2V5JzogdGhpcy5hcGlLZXksXG4gICAgICAgICAgICAgICAgJ1NpZ24nOiB0aGlzLmhtYWMgKHRoaXMuZW5jb2RlIChib2R5KSwgdGhpcy5lbmNvZGUgKHRoaXMuc2VjcmV0KSwgc2hhNTEyKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgJ3VybCc6IHVybCwgJ21ldGhvZCc6IG1ldGhvZCwgJ2JvZHknOiBib2R5LCAnaGVhZGVycyc6IGhlYWRlcnMgfTtcbiAgICB9XG5cbiAgICBoYW5kbGVFcnJvcnMgKGh0dHBDb2RlLCByZWFzb24sIHVybCwgbWV0aG9kLCBoZWFkZXJzLCBib2R5LCByZXNwb25zZSwgcmVxdWVzdEhlYWRlcnMsIHJlcXVlc3RCb2R5KSB7XG4gICAgICAgIGlmIChyZXNwb25zZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICB7XCJlcnJvclwiOiBcInVuc3VwcG9ydGVkIGN1cnJlbmN5X3BhaXJcIn1cbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgZmVlZGJhY2sgPSB0aGlzLmlkICsgJyAnICsgYm9keTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLnNhZmVTdHJpbmcgKHJlc3BvbnNlLCAnZXJyb3InKTtcbiAgICAgICAgaWYgKGVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGhyb3dFeGFjdGx5TWF0Y2hlZEV4Y2VwdGlvbiAodGhpcy5leGNlcHRpb25zWydleGFjdCddLCBlcnJvciwgZmVlZGJhY2spO1xuICAgICAgICAgICAgdGhpcy50aHJvd0Jyb2FkbHlNYXRjaGVkRXhjZXB0aW9uICh0aGlzLmV4Y2VwdGlvbnNbJ2Jyb2FkJ10sIGVycm9yLCBmZWVkYmFjayk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXhjaGFuZ2VFcnJvciAoZmVlZGJhY2spOyAvLyB1bmtub3duIG1lc3NhZ2VcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWNjZXNzID0gdGhpcy5zYWZlVmFsdWUgKHJlc3BvbnNlLCAnc3VjY2VzcycsIHRydWUpO1xuICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFeGNoYW5nZUVycm9yIChmZWVkYmFjayk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXX0=
|
|
288235
|
+
|
|
288169
288236
|
/***/ })
|
|
288170
288237
|
|
|
288171
288238
|
/******/ });
|
|
@@ -288274,210 +288341,210 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
288274
288341
|
/* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_154__.O),
|
|
288275
288342
|
/* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_156__.RateLimitExceeded),
|
|
288276
288343
|
/* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_156__.RequestTimeout),
|
|
288277
|
-
/* harmony export */ ace: () => (/* reexport safe */
|
|
288278
|
-
/* harmony export */ alpaca: () => (/* reexport safe */
|
|
288279
|
-
/* harmony export */ ascendex: () => (/* reexport safe */
|
|
288280
|
-
/* harmony export */ bequant: () => (/* reexport safe */
|
|
288281
|
-
/* harmony export */ bigone: () => (/* reexport safe */
|
|
288282
|
-
/* harmony export */ binance: () => (/* reexport safe */
|
|
288283
|
-
/* harmony export */ binancecoinm: () => (/* reexport safe */
|
|
288284
|
-
/* harmony export */ binanceus: () => (/* reexport safe */
|
|
288285
|
-
/* harmony export */ binanceusdm: () => (/* reexport safe */
|
|
288286
|
-
/* harmony export */ bingx: () => (/* reexport safe */
|
|
288287
|
-
/* harmony export */ bit2c: () => (/* reexport safe */
|
|
288288
|
-
/* harmony export */ bitbank: () => (/* reexport safe */
|
|
288289
|
-
/* harmony export */ bitbay: () => (/* reexport safe */
|
|
288290
|
-
/* harmony export */ bitbns: () => (/* reexport safe */
|
|
288291
|
-
/* harmony export */ bitcoincom: () => (/* reexport safe */
|
|
288292
|
-
/* harmony export */ bitfinex: () => (/* reexport safe */
|
|
288293
|
-
/* harmony export */ bitfinex2: () => (/* reexport safe */
|
|
288294
|
-
/* harmony export */ bitflyer: () => (/* reexport safe */
|
|
288295
|
-
/* harmony export */ bitforex: () => (/* reexport safe */
|
|
288296
|
-
/* harmony export */ bitget: () => (/* reexport safe */
|
|
288297
|
-
/* harmony export */ bithumb: () => (/* reexport safe */
|
|
288298
|
-
/* harmony export */ bitmart: () => (/* reexport safe */
|
|
288299
|
-
/* harmony export */ bitmex: () => (/* reexport safe */
|
|
288300
|
-
/* harmony export */ bitopro: () => (/* reexport safe */
|
|
288301
|
-
/* harmony export */ bitpanda: () => (/* reexport safe */
|
|
288302
|
-
/* harmony export */ bitrue: () => (/* reexport safe */
|
|
288303
|
-
/* harmony export */ bitso: () => (/* reexport safe */
|
|
288304
|
-
/* harmony export */ bitstamp: () => (/* reexport safe */
|
|
288305
|
-
/* harmony export */ bitvavo: () => (/* reexport safe */
|
|
288306
|
-
/* harmony export */ bl3p: () => (/* reexport safe */
|
|
288307
|
-
/* harmony export */ blockchaincom: () => (/* reexport safe */
|
|
288308
|
-
/* harmony export */ btcalpha: () => (/* reexport safe */
|
|
288309
|
-
/* harmony export */ btcbox: () => (/* reexport safe */
|
|
288310
|
-
/* harmony export */ btcmarkets: () => (/* reexport safe */
|
|
288311
|
-
/* harmony export */ btcturk: () => (/* reexport safe */
|
|
288312
|
-
/* harmony export */ bybit: () => (/* reexport safe */
|
|
288313
|
-
/* harmony export */ cex: () => (/* reexport safe */
|
|
288314
|
-
/* harmony export */ coinbase: () => (/* reexport safe */
|
|
288315
|
-
/* harmony export */ coinbasepro: () => (/* reexport safe */
|
|
288316
|
-
/* harmony export */ coincheck: () => (/* reexport safe */
|
|
288317
|
-
/* harmony export */ coinex: () => (/* reexport safe */
|
|
288318
|
-
/* harmony export */ coinlist: () => (/* reexport safe */
|
|
288319
|
-
/* harmony export */ coinmate: () => (/* reexport safe */
|
|
288320
|
-
/* harmony export */ coinone: () => (/* reexport safe */
|
|
288321
|
-
/* harmony export */ coinsph: () => (/* reexport safe */
|
|
288322
|
-
/* harmony export */ coinspot: () => (/* reexport safe */
|
|
288323
|
-
/* harmony export */ cryptocom: () => (/* reexport safe */
|
|
288324
|
-
/* harmony export */ currencycom: () => (/* reexport safe */
|
|
288344
|
+
/* harmony export */ ace: () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_2__.Z),
|
|
288345
|
+
/* harmony export */ alpaca: () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_3__.Z),
|
|
288346
|
+
/* harmony export */ ascendex: () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_4__.Z),
|
|
288347
|
+
/* harmony export */ bequant: () => (/* reexport safe */ _src_bequant_js__WEBPACK_IMPORTED_MODULE_5__.Z),
|
|
288348
|
+
/* harmony export */ bigone: () => (/* reexport safe */ _src_bigone_js__WEBPACK_IMPORTED_MODULE_6__.Z),
|
|
288349
|
+
/* harmony export */ binance: () => (/* reexport safe */ _src_binance_js__WEBPACK_IMPORTED_MODULE_7__.Z),
|
|
288350
|
+
/* harmony export */ binancecoinm: () => (/* reexport safe */ _src_binancecoinm_js__WEBPACK_IMPORTED_MODULE_8__.Z),
|
|
288351
|
+
/* harmony export */ binanceus: () => (/* reexport safe */ _src_binanceus_js__WEBPACK_IMPORTED_MODULE_9__.Z),
|
|
288352
|
+
/* harmony export */ binanceusdm: () => (/* reexport safe */ _src_binanceusdm_js__WEBPACK_IMPORTED_MODULE_10__.Z),
|
|
288353
|
+
/* harmony export */ bingx: () => (/* reexport safe */ _src_bingx_js__WEBPACK_IMPORTED_MODULE_11__.Z),
|
|
288354
|
+
/* harmony export */ bit2c: () => (/* reexport safe */ _src_bit2c_js__WEBPACK_IMPORTED_MODULE_12__.Z),
|
|
288355
|
+
/* harmony export */ bitbank: () => (/* reexport safe */ _src_bitbank_js__WEBPACK_IMPORTED_MODULE_13__.Z),
|
|
288356
|
+
/* harmony export */ bitbay: () => (/* reexport safe */ _src_bitbay_js__WEBPACK_IMPORTED_MODULE_14__.Z),
|
|
288357
|
+
/* harmony export */ bitbns: () => (/* reexport safe */ _src_bitbns_js__WEBPACK_IMPORTED_MODULE_15__.Z),
|
|
288358
|
+
/* harmony export */ bitcoincom: () => (/* reexport safe */ _src_bitcoincom_js__WEBPACK_IMPORTED_MODULE_16__.Z),
|
|
288359
|
+
/* harmony export */ bitfinex: () => (/* reexport safe */ _src_bitfinex_js__WEBPACK_IMPORTED_MODULE_17__.Z),
|
|
288360
|
+
/* harmony export */ bitfinex2: () => (/* reexport safe */ _src_bitfinex2_js__WEBPACK_IMPORTED_MODULE_18__.Z),
|
|
288361
|
+
/* harmony export */ bitflyer: () => (/* reexport safe */ _src_bitflyer_js__WEBPACK_IMPORTED_MODULE_19__.Z),
|
|
288362
|
+
/* harmony export */ bitforex: () => (/* reexport safe */ _src_bitforex_js__WEBPACK_IMPORTED_MODULE_20__.Z),
|
|
288363
|
+
/* harmony export */ bitget: () => (/* reexport safe */ _src_bitget_js__WEBPACK_IMPORTED_MODULE_21__.Z),
|
|
288364
|
+
/* harmony export */ bithumb: () => (/* reexport safe */ _src_bithumb_js__WEBPACK_IMPORTED_MODULE_22__.Z),
|
|
288365
|
+
/* harmony export */ bitmart: () => (/* reexport safe */ _src_bitmart_js__WEBPACK_IMPORTED_MODULE_23__.Z),
|
|
288366
|
+
/* harmony export */ bitmex: () => (/* reexport safe */ _src_bitmex_js__WEBPACK_IMPORTED_MODULE_24__.Z),
|
|
288367
|
+
/* harmony export */ bitopro: () => (/* reexport safe */ _src_bitopro_js__WEBPACK_IMPORTED_MODULE_25__.Z),
|
|
288368
|
+
/* harmony export */ bitpanda: () => (/* reexport safe */ _src_bitpanda_js__WEBPACK_IMPORTED_MODULE_26__.Z),
|
|
288369
|
+
/* harmony export */ bitrue: () => (/* reexport safe */ _src_bitrue_js__WEBPACK_IMPORTED_MODULE_27__.Z),
|
|
288370
|
+
/* harmony export */ bitso: () => (/* reexport safe */ _src_bitso_js__WEBPACK_IMPORTED_MODULE_28__.Z),
|
|
288371
|
+
/* harmony export */ bitstamp: () => (/* reexport safe */ _src_bitstamp_js__WEBPACK_IMPORTED_MODULE_29__.Z),
|
|
288372
|
+
/* harmony export */ bitvavo: () => (/* reexport safe */ _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_30__.Z),
|
|
288373
|
+
/* harmony export */ bl3p: () => (/* reexport safe */ _src_bl3p_js__WEBPACK_IMPORTED_MODULE_31__.Z),
|
|
288374
|
+
/* harmony export */ blockchaincom: () => (/* reexport safe */ _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_32__.Z),
|
|
288375
|
+
/* harmony export */ btcalpha: () => (/* reexport safe */ _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_33__.Z),
|
|
288376
|
+
/* harmony export */ btcbox: () => (/* reexport safe */ _src_btcbox_js__WEBPACK_IMPORTED_MODULE_34__.Z),
|
|
288377
|
+
/* harmony export */ btcmarkets: () => (/* reexport safe */ _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_35__.Z),
|
|
288378
|
+
/* harmony export */ btcturk: () => (/* reexport safe */ _src_btcturk_js__WEBPACK_IMPORTED_MODULE_36__.Z),
|
|
288379
|
+
/* harmony export */ bybit: () => (/* reexport safe */ _src_bybit_js__WEBPACK_IMPORTED_MODULE_37__.Z),
|
|
288380
|
+
/* harmony export */ cex: () => (/* reexport safe */ _src_cex_js__WEBPACK_IMPORTED_MODULE_38__.Z),
|
|
288381
|
+
/* harmony export */ coinbase: () => (/* reexport safe */ _src_coinbase_js__WEBPACK_IMPORTED_MODULE_39__.Z),
|
|
288382
|
+
/* harmony export */ coinbasepro: () => (/* reexport safe */ _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_40__.Z),
|
|
288383
|
+
/* harmony export */ coincheck: () => (/* reexport safe */ _src_coincheck_js__WEBPACK_IMPORTED_MODULE_41__.Z),
|
|
288384
|
+
/* harmony export */ coinex: () => (/* reexport safe */ _src_coinex_js__WEBPACK_IMPORTED_MODULE_42__.Z),
|
|
288385
|
+
/* harmony export */ coinlist: () => (/* reexport safe */ _src_coinlist_js__WEBPACK_IMPORTED_MODULE_43__.Z),
|
|
288386
|
+
/* harmony export */ coinmate: () => (/* reexport safe */ _src_coinmate_js__WEBPACK_IMPORTED_MODULE_44__.Z),
|
|
288387
|
+
/* harmony export */ coinone: () => (/* reexport safe */ _src_coinone_js__WEBPACK_IMPORTED_MODULE_45__.Z),
|
|
288388
|
+
/* harmony export */ coinsph: () => (/* reexport safe */ _src_coinsph_js__WEBPACK_IMPORTED_MODULE_46__.Z),
|
|
288389
|
+
/* harmony export */ coinspot: () => (/* reexport safe */ _src_coinspot_js__WEBPACK_IMPORTED_MODULE_47__.Z),
|
|
288390
|
+
/* harmony export */ cryptocom: () => (/* reexport safe */ _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_48__.Z),
|
|
288391
|
+
/* harmony export */ currencycom: () => (/* reexport safe */ _src_currencycom_js__WEBPACK_IMPORTED_MODULE_49__.Z),
|
|
288325
288392
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
288326
|
-
/* harmony export */ delta: () => (/* reexport safe */
|
|
288327
|
-
/* harmony export */ deribit: () => (/* reexport safe */
|
|
288328
|
-
/* harmony export */ digifinex: () => (/* reexport safe */
|
|
288393
|
+
/* harmony export */ delta: () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_50__.Z),
|
|
288394
|
+
/* harmony export */ deribit: () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_51__.Z),
|
|
288395
|
+
/* harmony export */ digifinex: () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_52__.Z),
|
|
288329
288396
|
/* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_156__),
|
|
288330
288397
|
/* harmony export */ exchanges: () => (/* binding */ exchanges),
|
|
288331
|
-
/* harmony export */ exmo: () => (/* reexport safe */
|
|
288332
|
-
/* harmony export */ fmfwio: () => (/* reexport safe */
|
|
288398
|
+
/* harmony export */ exmo: () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_53__.Z),
|
|
288399
|
+
/* harmony export */ fmfwio: () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_54__.Z),
|
|
288333
288400
|
/* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_155__),
|
|
288334
|
-
/* harmony export */ gate: () => (/* reexport safe */
|
|
288335
|
-
/* harmony export */ gateio: () => (/* reexport safe */
|
|
288336
|
-
/* harmony export */ gemini: () => (/* reexport safe */
|
|
288337
|
-
/* harmony export */ hitbtc: () => (/* reexport safe */
|
|
288338
|
-
/* harmony export */ hitbtc3: () => (/* reexport safe */
|
|
288339
|
-
/* harmony export */ hollaex: () => (/* reexport safe */
|
|
288340
|
-
/* harmony export */ htx: () => (/* reexport safe */
|
|
288341
|
-
/* harmony export */ huobi: () => (/* reexport safe */
|
|
288342
|
-
/* harmony export */ huobijp: () => (/* reexport safe */
|
|
288343
|
-
/* harmony export */ idex: () => (/* reexport safe */
|
|
288344
|
-
/* harmony export */ independentreserve: () => (/* reexport safe */
|
|
288345
|
-
/* harmony export */ indodax: () => (/* reexport safe */
|
|
288346
|
-
/* harmony export */ kraken: () => (/* reexport safe */
|
|
288347
|
-
/* harmony export */ krakenfutures: () => (/* reexport safe */
|
|
288348
|
-
/* harmony export */ kucoin: () => (/* reexport safe */
|
|
288349
|
-
/* harmony export */ kucoinfutures: () => (/* reexport safe */
|
|
288350
|
-
/* harmony export */ kuna: () => (/* reexport safe */
|
|
288351
|
-
/* harmony export */ latoken: () => (/* reexport safe */
|
|
288352
|
-
/* harmony export */ lbank: () => (/* reexport safe */
|
|
288353
|
-
/* harmony export */ luno: () => (/* reexport safe */
|
|
288354
|
-
/* harmony export */ lykke: () => (/* reexport safe */
|
|
288355
|
-
/* harmony export */ mercado: () => (/* reexport safe */
|
|
288356
|
-
/* harmony export */ mexc: () => (/* reexport safe */
|
|
288357
|
-
/* harmony export */ ndax: () => (/* reexport safe */
|
|
288358
|
-
/* harmony export */ novadax: () => (/* reexport safe */
|
|
288359
|
-
/* harmony export */ oceanex: () => (/* reexport safe */
|
|
288360
|
-
/* harmony export */ okcoin: () => (/* reexport safe */
|
|
288361
|
-
/* harmony export */ okx: () => (/* reexport safe */
|
|
288362
|
-
/* harmony export */ p2b: () => (/* reexport safe */
|
|
288363
|
-
/* harmony export */ paymium: () => (/* reexport safe */
|
|
288364
|
-
/* harmony export */ phemex: () => (/* reexport safe */
|
|
288365
|
-
/* harmony export */ poloniex: () => (/* reexport safe */
|
|
288366
|
-
/* harmony export */ poloniexfutures: () => (/* reexport safe */
|
|
288401
|
+
/* harmony export */ gate: () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_55__.Z),
|
|
288402
|
+
/* harmony export */ gateio: () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_56__.Z),
|
|
288403
|
+
/* harmony export */ gemini: () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_57__.Z),
|
|
288404
|
+
/* harmony export */ hitbtc: () => (/* reexport safe */ _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_58__.Z),
|
|
288405
|
+
/* harmony export */ hitbtc3: () => (/* reexport safe */ _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_59__.Z),
|
|
288406
|
+
/* harmony export */ hollaex: () => (/* reexport safe */ _src_hollaex_js__WEBPACK_IMPORTED_MODULE_60__.Z),
|
|
288407
|
+
/* harmony export */ htx: () => (/* reexport safe */ _src_htx_js__WEBPACK_IMPORTED_MODULE_61__.Z),
|
|
288408
|
+
/* harmony export */ huobi: () => (/* reexport safe */ _src_huobi_js__WEBPACK_IMPORTED_MODULE_62__.Z),
|
|
288409
|
+
/* harmony export */ huobijp: () => (/* reexport safe */ _src_huobijp_js__WEBPACK_IMPORTED_MODULE_63__.Z),
|
|
288410
|
+
/* harmony export */ idex: () => (/* reexport safe */ _src_idex_js__WEBPACK_IMPORTED_MODULE_64__.Z),
|
|
288411
|
+
/* harmony export */ independentreserve: () => (/* reexport safe */ _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_65__.Z),
|
|
288412
|
+
/* harmony export */ indodax: () => (/* reexport safe */ _src_indodax_js__WEBPACK_IMPORTED_MODULE_66__.Z),
|
|
288413
|
+
/* harmony export */ kraken: () => (/* reexport safe */ _src_kraken_js__WEBPACK_IMPORTED_MODULE_67__.Z),
|
|
288414
|
+
/* harmony export */ krakenfutures: () => (/* reexport safe */ _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_68__.Z),
|
|
288415
|
+
/* harmony export */ kucoin: () => (/* reexport safe */ _src_kucoin_js__WEBPACK_IMPORTED_MODULE_69__.Z),
|
|
288416
|
+
/* harmony export */ kucoinfutures: () => (/* reexport safe */ _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_70__.Z),
|
|
288417
|
+
/* harmony export */ kuna: () => (/* reexport safe */ _src_kuna_js__WEBPACK_IMPORTED_MODULE_71__.Z),
|
|
288418
|
+
/* harmony export */ latoken: () => (/* reexport safe */ _src_latoken_js__WEBPACK_IMPORTED_MODULE_72__.Z),
|
|
288419
|
+
/* harmony export */ lbank: () => (/* reexport safe */ _src_lbank_js__WEBPACK_IMPORTED_MODULE_73__.Z),
|
|
288420
|
+
/* harmony export */ luno: () => (/* reexport safe */ _src_luno_js__WEBPACK_IMPORTED_MODULE_74__.Z),
|
|
288421
|
+
/* harmony export */ lykke: () => (/* reexport safe */ _src_lykke_js__WEBPACK_IMPORTED_MODULE_75__.Z),
|
|
288422
|
+
/* harmony export */ mercado: () => (/* reexport safe */ _src_mercado_js__WEBPACK_IMPORTED_MODULE_76__.Z),
|
|
288423
|
+
/* harmony export */ mexc: () => (/* reexport safe */ _src_mexc_js__WEBPACK_IMPORTED_MODULE_77__.Z),
|
|
288424
|
+
/* harmony export */ ndax: () => (/* reexport safe */ _src_ndax_js__WEBPACK_IMPORTED_MODULE_78__.Z),
|
|
288425
|
+
/* harmony export */ novadax: () => (/* reexport safe */ _src_novadax_js__WEBPACK_IMPORTED_MODULE_79__.Z),
|
|
288426
|
+
/* harmony export */ oceanex: () => (/* reexport safe */ _src_oceanex_js__WEBPACK_IMPORTED_MODULE_80__.Z),
|
|
288427
|
+
/* harmony export */ okcoin: () => (/* reexport safe */ _src_okcoin_js__WEBPACK_IMPORTED_MODULE_81__.Z),
|
|
288428
|
+
/* harmony export */ okx: () => (/* reexport safe */ _src_okx_js__WEBPACK_IMPORTED_MODULE_82__.Z),
|
|
288429
|
+
/* harmony export */ p2b: () => (/* reexport safe */ _src_p2b_js__WEBPACK_IMPORTED_MODULE_83__.Z),
|
|
288430
|
+
/* harmony export */ paymium: () => (/* reexport safe */ _src_paymium_js__WEBPACK_IMPORTED_MODULE_84__.Z),
|
|
288431
|
+
/* harmony export */ phemex: () => (/* reexport safe */ _src_phemex_js__WEBPACK_IMPORTED_MODULE_85__.Z),
|
|
288432
|
+
/* harmony export */ poloniex: () => (/* reexport safe */ _src_poloniex_js__WEBPACK_IMPORTED_MODULE_86__.Z),
|
|
288433
|
+
/* harmony export */ poloniexfutures: () => (/* reexport safe */ _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_87__.Z),
|
|
288367
288434
|
/* harmony export */ pro: () => (/* binding */ pro),
|
|
288368
|
-
/* harmony export */ probit: () => (/* reexport safe */
|
|
288369
|
-
/* harmony export */ timex: () => (/* reexport safe */
|
|
288370
|
-
/* harmony export */ tokocrypto: () => (/* reexport safe */
|
|
288371
|
-
/* harmony export */ upbit: () => (/* reexport safe */
|
|
288435
|
+
/* harmony export */ probit: () => (/* reexport safe */ _src_probit_js__WEBPACK_IMPORTED_MODULE_88__.Z),
|
|
288436
|
+
/* harmony export */ timex: () => (/* reexport safe */ _src_timex_js__WEBPACK_IMPORTED_MODULE_89__.Z),
|
|
288437
|
+
/* harmony export */ tokocrypto: () => (/* reexport safe */ _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_90__.Z),
|
|
288438
|
+
/* harmony export */ upbit: () => (/* reexport safe */ _src_upbit_js__WEBPACK_IMPORTED_MODULE_91__.Z),
|
|
288372
288439
|
/* harmony export */ version: () => (/* binding */ version),
|
|
288373
|
-
/* harmony export */ wavesexchange: () => (/* reexport safe */
|
|
288374
|
-
/* harmony export */ wazirx: () => (/* reexport safe */
|
|
288375
|
-
/* harmony export */ whitebit: () => (/* reexport safe */
|
|
288376
|
-
/* harmony export */ woo: () => (/* reexport safe */
|
|
288377
|
-
/* harmony export */ yobit: () => (/* reexport safe */
|
|
288378
|
-
/* harmony export */ zaif: () => (/* reexport safe */
|
|
288440
|
+
/* harmony export */ wavesexchange: () => (/* reexport safe */ _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_92__.Z),
|
|
288441
|
+
/* harmony export */ wazirx: () => (/* reexport safe */ _src_wazirx_js__WEBPACK_IMPORTED_MODULE_93__.Z),
|
|
288442
|
+
/* harmony export */ whitebit: () => (/* reexport safe */ _src_whitebit_js__WEBPACK_IMPORTED_MODULE_94__.Z),
|
|
288443
|
+
/* harmony export */ woo: () => (/* reexport safe */ _src_woo_js__WEBPACK_IMPORTED_MODULE_95__.Z),
|
|
288444
|
+
/* harmony export */ yobit: () => (/* reexport safe */ _src_yobit_js__WEBPACK_IMPORTED_MODULE_96__.Z),
|
|
288445
|
+
/* harmony export */ zaif: () => (/* reexport safe */ _src_zaif_js__WEBPACK_IMPORTED_MODULE_1__.Z),
|
|
288379
288446
|
/* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_97__.Z)
|
|
288380
288447
|
/* harmony export */ });
|
|
288381
288448
|
/* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
|
|
288382
288449
|
/* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(2194);
|
|
288383
288450
|
/* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(7100);
|
|
288384
288451
|
/* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(6689);
|
|
288385
|
-
/* harmony import */ var
|
|
288386
|
-
/* harmony import */ var
|
|
288387
|
-
/* harmony import */ var
|
|
288388
|
-
/* harmony import */ var
|
|
288389
|
-
/* harmony import */ var
|
|
288390
|
-
/* harmony import */ var
|
|
288391
|
-
/* harmony import */ var
|
|
288392
|
-
/* harmony import */ var
|
|
288393
|
-
/* harmony import */ var
|
|
288394
|
-
/* harmony import */ var
|
|
288395
|
-
/* harmony import */ var
|
|
288396
|
-
/* harmony import */ var
|
|
288397
|
-
/* harmony import */ var
|
|
288398
|
-
/* harmony import */ var
|
|
288399
|
-
/* harmony import */ var
|
|
288400
|
-
/* harmony import */ var
|
|
288401
|
-
/* harmony import */ var
|
|
288402
|
-
/* harmony import */ var
|
|
288403
|
-
/* harmony import */ var
|
|
288404
|
-
/* harmony import */ var
|
|
288405
|
-
/* harmony import */ var
|
|
288406
|
-
/* harmony import */ var
|
|
288407
|
-
/* harmony import */ var
|
|
288408
|
-
/* harmony import */ var
|
|
288409
|
-
/* harmony import */ var
|
|
288410
|
-
/* harmony import */ var
|
|
288411
|
-
/* harmony import */ var
|
|
288412
|
-
/* harmony import */ var
|
|
288413
|
-
/* harmony import */ var
|
|
288414
|
-
/* harmony import */ var
|
|
288415
|
-
/* harmony import */ var
|
|
288416
|
-
/* harmony import */ var
|
|
288417
|
-
/* harmony import */ var
|
|
288418
|
-
/* harmony import */ var
|
|
288419
|
-
/* harmony import */ var
|
|
288420
|
-
/* harmony import */ var
|
|
288421
|
-
/* harmony import */ var
|
|
288422
|
-
/* harmony import */ var
|
|
288423
|
-
/* harmony import */ var
|
|
288424
|
-
/* harmony import */ var
|
|
288425
|
-
/* harmony import */ var
|
|
288426
|
-
/* harmony import */ var
|
|
288427
|
-
/* harmony import */ var
|
|
288428
|
-
/* harmony import */ var
|
|
288429
|
-
/* harmony import */ var
|
|
288430
|
-
/* harmony import */ var
|
|
288431
|
-
/* harmony import */ var
|
|
288432
|
-
/* harmony import */ var
|
|
288433
|
-
/* harmony import */ var
|
|
288434
|
-
/* harmony import */ var
|
|
288435
|
-
/* harmony import */ var
|
|
288436
|
-
/* harmony import */ var
|
|
288437
|
-
/* harmony import */ var
|
|
288438
|
-
/* harmony import */ var
|
|
288439
|
-
/* harmony import */ var
|
|
288440
|
-
/* harmony import */ var
|
|
288441
|
-
/* harmony import */ var
|
|
288442
|
-
/* harmony import */ var
|
|
288443
|
-
/* harmony import */ var
|
|
288444
|
-
/* harmony import */ var
|
|
288445
|
-
/* harmony import */ var
|
|
288446
|
-
/* harmony import */ var
|
|
288447
|
-
/* harmony import */ var
|
|
288448
|
-
/* harmony import */ var
|
|
288449
|
-
/* harmony import */ var
|
|
288450
|
-
/* harmony import */ var
|
|
288451
|
-
/* harmony import */ var
|
|
288452
|
-
/* harmony import */ var
|
|
288453
|
-
/* harmony import */ var
|
|
288454
|
-
/* harmony import */ var
|
|
288455
|
-
/* harmony import */ var
|
|
288456
|
-
/* harmony import */ var
|
|
288457
|
-
/* harmony import */ var
|
|
288458
|
-
/* harmony import */ var
|
|
288459
|
-
/* harmony import */ var
|
|
288460
|
-
/* harmony import */ var
|
|
288461
|
-
/* harmony import */ var
|
|
288462
|
-
/* harmony import */ var
|
|
288463
|
-
/* harmony import */ var
|
|
288464
|
-
/* harmony import */ var
|
|
288465
|
-
/* harmony import */ var
|
|
288466
|
-
/* harmony import */ var
|
|
288467
|
-
/* harmony import */ var
|
|
288468
|
-
/* harmony import */ var
|
|
288469
|
-
/* harmony import */ var
|
|
288470
|
-
/* harmony import */ var
|
|
288471
|
-
/* harmony import */ var
|
|
288472
|
-
/* harmony import */ var
|
|
288473
|
-
/* harmony import */ var
|
|
288474
|
-
/* harmony import */ var
|
|
288475
|
-
/* harmony import */ var
|
|
288476
|
-
/* harmony import */ var
|
|
288477
|
-
/* harmony import */ var
|
|
288478
|
-
/* harmony import */ var
|
|
288479
|
-
/* harmony import */ var
|
|
288480
|
-
/* harmony import */ var
|
|
288452
|
+
/* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9869);
|
|
288453
|
+
/* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5660);
|
|
288454
|
+
/* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9612);
|
|
288455
|
+
/* harmony import */ var _src_bequant_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2049);
|
|
288456
|
+
/* harmony import */ var _src_bigone_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7679);
|
|
288457
|
+
/* harmony import */ var _src_binance_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9987);
|
|
288458
|
+
/* harmony import */ var _src_binancecoinm_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9212);
|
|
288459
|
+
/* harmony import */ var _src_binanceus_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2723);
|
|
288460
|
+
/* harmony import */ var _src_binanceusdm_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(3254);
|
|
288461
|
+
/* harmony import */ var _src_bingx_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(7960);
|
|
288462
|
+
/* harmony import */ var _src_bit2c_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7691);
|
|
288463
|
+
/* harmony import */ var _src_bitbank_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(7820);
|
|
288464
|
+
/* harmony import */ var _src_bitbay_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(668);
|
|
288465
|
+
/* harmony import */ var _src_bitbns_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(7790);
|
|
288466
|
+
/* harmony import */ var _src_bitcoincom_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(1819);
|
|
288467
|
+
/* harmony import */ var _src_bitfinex_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(6537);
|
|
288468
|
+
/* harmony import */ var _src_bitfinex2_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(730);
|
|
288469
|
+
/* harmony import */ var _src_bitflyer_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(8429);
|
|
288470
|
+
/* harmony import */ var _src_bitforex_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(2035);
|
|
288471
|
+
/* harmony import */ var _src_bitget_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(9051);
|
|
288472
|
+
/* harmony import */ var _src_bithumb_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(5305);
|
|
288473
|
+
/* harmony import */ var _src_bitmart_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(3718);
|
|
288474
|
+
/* harmony import */ var _src_bitmex_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(7077);
|
|
288475
|
+
/* harmony import */ var _src_bitopro_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(172);
|
|
288476
|
+
/* harmony import */ var _src_bitpanda_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(2737);
|
|
288477
|
+
/* harmony import */ var _src_bitrue_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(854);
|
|
288478
|
+
/* harmony import */ var _src_bitso_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(4388);
|
|
288479
|
+
/* harmony import */ var _src_bitstamp_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(4667);
|
|
288480
|
+
/* harmony import */ var _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(9943);
|
|
288481
|
+
/* harmony import */ var _src_bl3p_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(9476);
|
|
288482
|
+
/* harmony import */ var _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(182);
|
|
288483
|
+
/* harmony import */ var _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(6246);
|
|
288484
|
+
/* harmony import */ var _src_btcbox_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(7796);
|
|
288485
|
+
/* harmony import */ var _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(1776);
|
|
288486
|
+
/* harmony import */ var _src_btcturk_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(6304);
|
|
288487
|
+
/* harmony import */ var _src_bybit_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(3527);
|
|
288488
|
+
/* harmony import */ var _src_cex_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(6445);
|
|
288489
|
+
/* harmony import */ var _src_coinbase_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(437);
|
|
288490
|
+
/* harmony import */ var _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(8856);
|
|
288491
|
+
/* harmony import */ var _src_coincheck_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(2117);
|
|
288492
|
+
/* harmony import */ var _src_coinex_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(332);
|
|
288493
|
+
/* harmony import */ var _src_coinlist_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(3623);
|
|
288494
|
+
/* harmony import */ var _src_coinmate_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(9816);
|
|
288495
|
+
/* harmony import */ var _src_coinone_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(7811);
|
|
288496
|
+
/* harmony import */ var _src_coinsph_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(5782);
|
|
288497
|
+
/* harmony import */ var _src_coinspot_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(7794);
|
|
288498
|
+
/* harmony import */ var _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(9129);
|
|
288499
|
+
/* harmony import */ var _src_currencycom_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(3214);
|
|
288500
|
+
/* harmony import */ var _src_delta_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(1753);
|
|
288501
|
+
/* harmony import */ var _src_deribit_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(24);
|
|
288502
|
+
/* harmony import */ var _src_digifinex_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(8846);
|
|
288503
|
+
/* harmony import */ var _src_exmo_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(1729);
|
|
288504
|
+
/* harmony import */ var _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(5788);
|
|
288505
|
+
/* harmony import */ var _src_gate_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(7290);
|
|
288506
|
+
/* harmony import */ var _src_gateio_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(7036);
|
|
288507
|
+
/* harmony import */ var _src_gemini_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(6743);
|
|
288508
|
+
/* harmony import */ var _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(4714);
|
|
288509
|
+
/* harmony import */ var _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(4815);
|
|
288510
|
+
/* harmony import */ var _src_hollaex_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(8422);
|
|
288511
|
+
/* harmony import */ var _src_htx_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(5939);
|
|
288512
|
+
/* harmony import */ var _src_huobi_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(8146);
|
|
288513
|
+
/* harmony import */ var _src_huobijp_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(7034);
|
|
288514
|
+
/* harmony import */ var _src_idex_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(8232);
|
|
288515
|
+
/* harmony import */ var _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(9570);
|
|
288516
|
+
/* harmony import */ var _src_indodax_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(1605);
|
|
288517
|
+
/* harmony import */ var _src_kraken_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(9922);
|
|
288518
|
+
/* harmony import */ var _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(4470);
|
|
288519
|
+
/* harmony import */ var _src_kucoin_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(3583);
|
|
288520
|
+
/* harmony import */ var _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(1924);
|
|
288521
|
+
/* harmony import */ var _src_kuna_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(7732);
|
|
288522
|
+
/* harmony import */ var _src_latoken_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(2545);
|
|
288523
|
+
/* harmony import */ var _src_lbank_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(3944);
|
|
288524
|
+
/* harmony import */ var _src_luno_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(1758);
|
|
288525
|
+
/* harmony import */ var _src_lykke_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(3803);
|
|
288526
|
+
/* harmony import */ var _src_mercado_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(9013);
|
|
288527
|
+
/* harmony import */ var _src_mexc_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(6641);
|
|
288528
|
+
/* harmony import */ var _src_ndax_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(4531);
|
|
288529
|
+
/* harmony import */ var _src_novadax_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(2449);
|
|
288530
|
+
/* harmony import */ var _src_oceanex_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(6749);
|
|
288531
|
+
/* harmony import */ var _src_okcoin_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(3007);
|
|
288532
|
+
/* harmony import */ var _src_okx_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(4042);
|
|
288533
|
+
/* harmony import */ var _src_p2b_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(2466);
|
|
288534
|
+
/* harmony import */ var _src_paymium_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(7082);
|
|
288535
|
+
/* harmony import */ var _src_phemex_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(79);
|
|
288536
|
+
/* harmony import */ var _src_poloniex_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(8891);
|
|
288537
|
+
/* harmony import */ var _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(6877);
|
|
288538
|
+
/* harmony import */ var _src_probit_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(3657);
|
|
288539
|
+
/* harmony import */ var _src_timex_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(1067);
|
|
288540
|
+
/* harmony import */ var _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(5261);
|
|
288541
|
+
/* harmony import */ var _src_upbit_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(7584);
|
|
288542
|
+
/* harmony import */ var _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(3853);
|
|
288543
|
+
/* harmony import */ var _src_wazirx_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(6536);
|
|
288544
|
+
/* harmony import */ var _src_whitebit_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(5467);
|
|
288545
|
+
/* harmony import */ var _src_woo_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(517);
|
|
288546
|
+
/* harmony import */ var _src_yobit_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(3850);
|
|
288547
|
+
/* harmony import */ var _src_zaif_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7558);
|
|
288481
288548
|
/* harmony import */ var _src_zonda_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(5140);
|
|
288482
288549
|
/* harmony import */ var _src_pro_alpaca_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(2467);
|
|
288483
288550
|
/* harmony import */ var _src_pro_ascendex_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(2383);
|
|
@@ -288569,7 +288636,7 @@ SOFTWARE.
|
|
|
288569
288636
|
|
|
288570
288637
|
//-----------------------------------------------------------------------------
|
|
288571
288638
|
// this is updated by vss.js when building
|
|
288572
|
-
const version = '4.1.
|
|
288639
|
+
const version = '4.1.98';
|
|
288573
288640
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
|
|
288574
288641
|
//-----------------------------------------------------------------------------
|
|
288575
288642
|
|
|
@@ -288727,102 +288794,102 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
|
|
|
288727
288794
|
|
|
288728
288795
|
|
|
288729
288796
|
const exchanges = {
|
|
288730
|
-
'ace':
|
|
288731
|
-
'alpaca':
|
|
288732
|
-
'ascendex':
|
|
288733
|
-
'bequant':
|
|
288734
|
-
'bigone':
|
|
288735
|
-
'binance':
|
|
288736
|
-
'binancecoinm':
|
|
288737
|
-
'binanceus':
|
|
288738
|
-
'binanceusdm':
|
|
288739
|
-
'bingx':
|
|
288740
|
-
'bit2c':
|
|
288741
|
-
'bitbank':
|
|
288742
|
-
'bitbay':
|
|
288743
|
-
'bitbns':
|
|
288744
|
-
'bitcoincom':
|
|
288745
|
-
'bitfinex':
|
|
288746
|
-
'bitfinex2':
|
|
288747
|
-
'bitflyer':
|
|
288748
|
-
'bitforex':
|
|
288749
|
-
'bitget':
|
|
288750
|
-
'bithumb':
|
|
288751
|
-
'bitmart':
|
|
288752
|
-
'bitmex':
|
|
288753
|
-
'bitopro':
|
|
288754
|
-
'bitpanda':
|
|
288755
|
-
'bitrue':
|
|
288756
|
-
'bitso':
|
|
288757
|
-
'bitstamp':
|
|
288758
|
-
'bitvavo':
|
|
288759
|
-
'bl3p':
|
|
288760
|
-
'blockchaincom':
|
|
288761
|
-
'btcalpha':
|
|
288762
|
-
'btcbox':
|
|
288763
|
-
'btcmarkets':
|
|
288764
|
-
'btcturk':
|
|
288765
|
-
'bybit':
|
|
288766
|
-
'cex':
|
|
288767
|
-
'coinbase':
|
|
288768
|
-
'coinbasepro':
|
|
288769
|
-
'coincheck':
|
|
288770
|
-
'coinex':
|
|
288771
|
-
'coinlist':
|
|
288772
|
-
'coinmate':
|
|
288773
|
-
'coinone':
|
|
288774
|
-
'coinsph':
|
|
288775
|
-
'coinspot':
|
|
288776
|
-
'cryptocom':
|
|
288777
|
-
'currencycom':
|
|
288778
|
-
'delta':
|
|
288779
|
-
'deribit':
|
|
288780
|
-
'digifinex':
|
|
288781
|
-
'exmo':
|
|
288782
|
-
'fmfwio':
|
|
288783
|
-
'gate':
|
|
288784
|
-
'gateio':
|
|
288785
|
-
'gemini':
|
|
288786
|
-
'hitbtc':
|
|
288787
|
-
'hitbtc3':
|
|
288788
|
-
'hollaex':
|
|
288789
|
-
'htx':
|
|
288790
|
-
'huobi':
|
|
288791
|
-
'huobijp':
|
|
288792
|
-
'idex':
|
|
288793
|
-
'independentreserve':
|
|
288794
|
-
'indodax':
|
|
288795
|
-
'kraken':
|
|
288796
|
-
'krakenfutures':
|
|
288797
|
-
'kucoin':
|
|
288798
|
-
'kucoinfutures':
|
|
288799
|
-
'kuna':
|
|
288800
|
-
'latoken':
|
|
288801
|
-
'lbank':
|
|
288802
|
-
'luno':
|
|
288803
|
-
'lykke':
|
|
288804
|
-
'mercado':
|
|
288805
|
-
'mexc':
|
|
288806
|
-
'ndax':
|
|
288807
|
-
'novadax':
|
|
288808
|
-
'oceanex':
|
|
288809
|
-
'okcoin':
|
|
288810
|
-
'okx':
|
|
288811
|
-
'p2b':
|
|
288812
|
-
'paymium':
|
|
288813
|
-
'phemex':
|
|
288814
|
-
'poloniex':
|
|
288815
|
-
'poloniexfutures':
|
|
288816
|
-
'probit':
|
|
288817
|
-
'timex':
|
|
288818
|
-
'tokocrypto':
|
|
288819
|
-
'upbit':
|
|
288820
|
-
'wavesexchange':
|
|
288821
|
-
'wazirx':
|
|
288822
|
-
'whitebit':
|
|
288823
|
-
'woo':
|
|
288824
|
-
'yobit':
|
|
288825
|
-
'zaif':
|
|
288797
|
+
'ace': _src_ace_js__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z,
|
|
288798
|
+
'alpaca': _src_alpaca_js__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z,
|
|
288799
|
+
'ascendex': _src_ascendex_js__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z,
|
|
288800
|
+
'bequant': _src_bequant_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z,
|
|
288801
|
+
'bigone': _src_bigone_js__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z,
|
|
288802
|
+
'binance': _src_binance_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z,
|
|
288803
|
+
'binancecoinm': _src_binancecoinm_js__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z,
|
|
288804
|
+
'binanceus': _src_binanceus_js__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z,
|
|
288805
|
+
'binanceusdm': _src_binanceusdm_js__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z,
|
|
288806
|
+
'bingx': _src_bingx_js__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z,
|
|
288807
|
+
'bit2c': _src_bit2c_js__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z,
|
|
288808
|
+
'bitbank': _src_bitbank_js__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z,
|
|
288809
|
+
'bitbay': _src_bitbay_js__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z,
|
|
288810
|
+
'bitbns': _src_bitbns_js__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z,
|
|
288811
|
+
'bitcoincom': _src_bitcoincom_js__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .Z,
|
|
288812
|
+
'bitfinex': _src_bitfinex_js__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .Z,
|
|
288813
|
+
'bitfinex2': _src_bitfinex2_js__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .Z,
|
|
288814
|
+
'bitflyer': _src_bitflyer_js__WEBPACK_IMPORTED_MODULE_19__/* ["default"] */ .Z,
|
|
288815
|
+
'bitforex': _src_bitforex_js__WEBPACK_IMPORTED_MODULE_20__/* ["default"] */ .Z,
|
|
288816
|
+
'bitget': _src_bitget_js__WEBPACK_IMPORTED_MODULE_21__/* ["default"] */ .Z,
|
|
288817
|
+
'bithumb': _src_bithumb_js__WEBPACK_IMPORTED_MODULE_22__/* ["default"] */ .Z,
|
|
288818
|
+
'bitmart': _src_bitmart_js__WEBPACK_IMPORTED_MODULE_23__/* ["default"] */ .Z,
|
|
288819
|
+
'bitmex': _src_bitmex_js__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .Z,
|
|
288820
|
+
'bitopro': _src_bitopro_js__WEBPACK_IMPORTED_MODULE_25__/* ["default"] */ .Z,
|
|
288821
|
+
'bitpanda': _src_bitpanda_js__WEBPACK_IMPORTED_MODULE_26__/* ["default"] */ .Z,
|
|
288822
|
+
'bitrue': _src_bitrue_js__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .Z,
|
|
288823
|
+
'bitso': _src_bitso_js__WEBPACK_IMPORTED_MODULE_28__/* ["default"] */ .Z,
|
|
288824
|
+
'bitstamp': _src_bitstamp_js__WEBPACK_IMPORTED_MODULE_29__/* ["default"] */ .Z,
|
|
288825
|
+
'bitvavo': _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_30__/* ["default"] */ .Z,
|
|
288826
|
+
'bl3p': _src_bl3p_js__WEBPACK_IMPORTED_MODULE_31__/* ["default"] */ .Z,
|
|
288827
|
+
'blockchaincom': _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .Z,
|
|
288828
|
+
'btcalpha': _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_33__/* ["default"] */ .Z,
|
|
288829
|
+
'btcbox': _src_btcbox_js__WEBPACK_IMPORTED_MODULE_34__/* ["default"] */ .Z,
|
|
288830
|
+
'btcmarkets': _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_35__/* ["default"] */ .Z,
|
|
288831
|
+
'btcturk': _src_btcturk_js__WEBPACK_IMPORTED_MODULE_36__/* ["default"] */ .Z,
|
|
288832
|
+
'bybit': _src_bybit_js__WEBPACK_IMPORTED_MODULE_37__/* ["default"] */ .Z,
|
|
288833
|
+
'cex': _src_cex_js__WEBPACK_IMPORTED_MODULE_38__/* ["default"] */ .Z,
|
|
288834
|
+
'coinbase': _src_coinbase_js__WEBPACK_IMPORTED_MODULE_39__/* ["default"] */ .Z,
|
|
288835
|
+
'coinbasepro': _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_40__/* ["default"] */ .Z,
|
|
288836
|
+
'coincheck': _src_coincheck_js__WEBPACK_IMPORTED_MODULE_41__/* ["default"] */ .Z,
|
|
288837
|
+
'coinex': _src_coinex_js__WEBPACK_IMPORTED_MODULE_42__/* ["default"] */ .Z,
|
|
288838
|
+
'coinlist': _src_coinlist_js__WEBPACK_IMPORTED_MODULE_43__/* ["default"] */ .Z,
|
|
288839
|
+
'coinmate': _src_coinmate_js__WEBPACK_IMPORTED_MODULE_44__/* ["default"] */ .Z,
|
|
288840
|
+
'coinone': _src_coinone_js__WEBPACK_IMPORTED_MODULE_45__/* ["default"] */ .Z,
|
|
288841
|
+
'coinsph': _src_coinsph_js__WEBPACK_IMPORTED_MODULE_46__/* ["default"] */ .Z,
|
|
288842
|
+
'coinspot': _src_coinspot_js__WEBPACK_IMPORTED_MODULE_47__/* ["default"] */ .Z,
|
|
288843
|
+
'cryptocom': _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_48__/* ["default"] */ .Z,
|
|
288844
|
+
'currencycom': _src_currencycom_js__WEBPACK_IMPORTED_MODULE_49__/* ["default"] */ .Z,
|
|
288845
|
+
'delta': _src_delta_js__WEBPACK_IMPORTED_MODULE_50__/* ["default"] */ .Z,
|
|
288846
|
+
'deribit': _src_deribit_js__WEBPACK_IMPORTED_MODULE_51__/* ["default"] */ .Z,
|
|
288847
|
+
'digifinex': _src_digifinex_js__WEBPACK_IMPORTED_MODULE_52__/* ["default"] */ .Z,
|
|
288848
|
+
'exmo': _src_exmo_js__WEBPACK_IMPORTED_MODULE_53__/* ["default"] */ .Z,
|
|
288849
|
+
'fmfwio': _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_54__/* ["default"] */ .Z,
|
|
288850
|
+
'gate': _src_gate_js__WEBPACK_IMPORTED_MODULE_55__/* ["default"] */ .Z,
|
|
288851
|
+
'gateio': _src_gateio_js__WEBPACK_IMPORTED_MODULE_56__/* ["default"] */ .Z,
|
|
288852
|
+
'gemini': _src_gemini_js__WEBPACK_IMPORTED_MODULE_57__/* ["default"] */ .Z,
|
|
288853
|
+
'hitbtc': _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_58__/* ["default"] */ .Z,
|
|
288854
|
+
'hitbtc3': _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_59__/* ["default"] */ .Z,
|
|
288855
|
+
'hollaex': _src_hollaex_js__WEBPACK_IMPORTED_MODULE_60__/* ["default"] */ .Z,
|
|
288856
|
+
'htx': _src_htx_js__WEBPACK_IMPORTED_MODULE_61__/* ["default"] */ .Z,
|
|
288857
|
+
'huobi': _src_huobi_js__WEBPACK_IMPORTED_MODULE_62__/* ["default"] */ .Z,
|
|
288858
|
+
'huobijp': _src_huobijp_js__WEBPACK_IMPORTED_MODULE_63__/* ["default"] */ .Z,
|
|
288859
|
+
'idex': _src_idex_js__WEBPACK_IMPORTED_MODULE_64__/* ["default"] */ .Z,
|
|
288860
|
+
'independentreserve': _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_65__/* ["default"] */ .Z,
|
|
288861
|
+
'indodax': _src_indodax_js__WEBPACK_IMPORTED_MODULE_66__/* ["default"] */ .Z,
|
|
288862
|
+
'kraken': _src_kraken_js__WEBPACK_IMPORTED_MODULE_67__/* ["default"] */ .Z,
|
|
288863
|
+
'krakenfutures': _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_68__/* ["default"] */ .Z,
|
|
288864
|
+
'kucoin': _src_kucoin_js__WEBPACK_IMPORTED_MODULE_69__/* ["default"] */ .Z,
|
|
288865
|
+
'kucoinfutures': _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_70__/* ["default"] */ .Z,
|
|
288866
|
+
'kuna': _src_kuna_js__WEBPACK_IMPORTED_MODULE_71__/* ["default"] */ .Z,
|
|
288867
|
+
'latoken': _src_latoken_js__WEBPACK_IMPORTED_MODULE_72__/* ["default"] */ .Z,
|
|
288868
|
+
'lbank': _src_lbank_js__WEBPACK_IMPORTED_MODULE_73__/* ["default"] */ .Z,
|
|
288869
|
+
'luno': _src_luno_js__WEBPACK_IMPORTED_MODULE_74__/* ["default"] */ .Z,
|
|
288870
|
+
'lykke': _src_lykke_js__WEBPACK_IMPORTED_MODULE_75__/* ["default"] */ .Z,
|
|
288871
|
+
'mercado': _src_mercado_js__WEBPACK_IMPORTED_MODULE_76__/* ["default"] */ .Z,
|
|
288872
|
+
'mexc': _src_mexc_js__WEBPACK_IMPORTED_MODULE_77__/* ["default"] */ .Z,
|
|
288873
|
+
'ndax': _src_ndax_js__WEBPACK_IMPORTED_MODULE_78__/* ["default"] */ .Z,
|
|
288874
|
+
'novadax': _src_novadax_js__WEBPACK_IMPORTED_MODULE_79__/* ["default"] */ .Z,
|
|
288875
|
+
'oceanex': _src_oceanex_js__WEBPACK_IMPORTED_MODULE_80__/* ["default"] */ .Z,
|
|
288876
|
+
'okcoin': _src_okcoin_js__WEBPACK_IMPORTED_MODULE_81__/* ["default"] */ .Z,
|
|
288877
|
+
'okx': _src_okx_js__WEBPACK_IMPORTED_MODULE_82__/* ["default"] */ .Z,
|
|
288878
|
+
'p2b': _src_p2b_js__WEBPACK_IMPORTED_MODULE_83__/* ["default"] */ .Z,
|
|
288879
|
+
'paymium': _src_paymium_js__WEBPACK_IMPORTED_MODULE_84__/* ["default"] */ .Z,
|
|
288880
|
+
'phemex': _src_phemex_js__WEBPACK_IMPORTED_MODULE_85__/* ["default"] */ .Z,
|
|
288881
|
+
'poloniex': _src_poloniex_js__WEBPACK_IMPORTED_MODULE_86__/* ["default"] */ .Z,
|
|
288882
|
+
'poloniexfutures': _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_87__/* ["default"] */ .Z,
|
|
288883
|
+
'probit': _src_probit_js__WEBPACK_IMPORTED_MODULE_88__/* ["default"] */ .Z,
|
|
288884
|
+
'timex': _src_timex_js__WEBPACK_IMPORTED_MODULE_89__/* ["default"] */ .Z,
|
|
288885
|
+
'tokocrypto': _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_90__/* ["default"] */ .Z,
|
|
288886
|
+
'upbit': _src_upbit_js__WEBPACK_IMPORTED_MODULE_91__/* ["default"] */ .Z,
|
|
288887
|
+
'wavesexchange': _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_92__/* ["default"] */ .Z,
|
|
288888
|
+
'wazirx': _src_wazirx_js__WEBPACK_IMPORTED_MODULE_93__/* ["default"] */ .Z,
|
|
288889
|
+
'whitebit': _src_whitebit_js__WEBPACK_IMPORTED_MODULE_94__/* ["default"] */ .Z,
|
|
288890
|
+
'woo': _src_woo_js__WEBPACK_IMPORTED_MODULE_95__/* ["default"] */ .Z,
|
|
288891
|
+
'yobit': _src_yobit_js__WEBPACK_IMPORTED_MODULE_96__/* ["default"] */ .Z,
|
|
288892
|
+
'zaif': _src_zaif_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z,
|
|
288826
288893
|
'zonda': _src_zonda_js__WEBPACK_IMPORTED_MODULE_97__/* ["default"] */ .Z,
|
|
288827
288894
|
};
|
|
288828
288895
|
const pro = {
|