ccxt 4.1.96 → 4.1.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/ccxt.browser.js +1189 -1154
- 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/bingx.js +42 -1
- 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/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/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 +6 -3
- package/dist/cjs/src/pro/bitfinex.js +1 -1
- package/dist/cjs/src/pro/bitfinex2.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/bingx.d.ts +1 -0
- package/js/src/bingx.js +42 -1
- package/js/src/bitfinex.js +1 -1
- package/js/src/bitfinex2.js +1 -1
- package/js/src/bitflyer.js +2 -2
- 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/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 +6 -3
- package/js/src/pro/bitfinex.js +1 -1
- package/js/src/pro/bitfinex2.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 +1 -1
- package/skip-tests.json +1 -0
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
|
*/
|
|
@@ -27121,6 +27113,16 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
27121
27113
|
},
|
|
27122
27114
|
},
|
|
27123
27115
|
'swap': {
|
|
27116
|
+
'v1': {
|
|
27117
|
+
'private': {
|
|
27118
|
+
'get': {
|
|
27119
|
+
'positionSide/dual': 1,
|
|
27120
|
+
},
|
|
27121
|
+
'post': {
|
|
27122
|
+
'positionSide/dual': 1,
|
|
27123
|
+
},
|
|
27124
|
+
},
|
|
27125
|
+
},
|
|
27124
27126
|
'v2': {
|
|
27125
27127
|
'public': {
|
|
27126
27128
|
'get': {
|
|
@@ -29449,7 +29451,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
29449
29451
|
* @see https://bingx-api.github.io/docs/#/standard/contract-interface.html#Historical%20order
|
|
29450
29452
|
* @param {string} [symbol] unified market symbol of the market orders were made in
|
|
29451
29453
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
29452
|
-
* @param {int} [limit] the maximum number of
|
|
29454
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
29453
29455
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
29454
29456
|
* @param {int} [params.until] the latest time in ms to fetch orders for
|
|
29455
29457
|
* @param {boolean} [params.standard] whether to fetch standard contract orders
|
|
@@ -30392,6 +30394,37 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
30392
30394
|
}
|
|
30393
30395
|
return positions;
|
|
30394
30396
|
}
|
|
30397
|
+
async setPositionMode(hedged, symbol = undefined, params = {}) {
|
|
30398
|
+
/**
|
|
30399
|
+
* @method
|
|
30400
|
+
* @name bingx#setPositionMode
|
|
30401
|
+
* @description set hedged to true or false for a market
|
|
30402
|
+
* @see https://bingx-api.github.io/docs/#/en-us/swapV2/trade-api.html#Set%20Position%20Mode
|
|
30403
|
+
* @param {bool} hedged set to true to use dualSidePosition
|
|
30404
|
+
* @param {string} symbol not used by bingx setPositionMode ()
|
|
30405
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
30406
|
+
* @returns {object} response from the exchange
|
|
30407
|
+
*/
|
|
30408
|
+
let dualSidePosition = undefined;
|
|
30409
|
+
if (hedged) {
|
|
30410
|
+
dualSidePosition = 'true';
|
|
30411
|
+
}
|
|
30412
|
+
else {
|
|
30413
|
+
dualSidePosition = 'false';
|
|
30414
|
+
}
|
|
30415
|
+
const request = {
|
|
30416
|
+
'dualSidePosition': dualSidePosition,
|
|
30417
|
+
};
|
|
30418
|
+
//
|
|
30419
|
+
// {
|
|
30420
|
+
// code: '0',
|
|
30421
|
+
// msg: '',
|
|
30422
|
+
// timeStamp: '1703327432734',
|
|
30423
|
+
// data: { dualSidePosition: 'false' }
|
|
30424
|
+
// }
|
|
30425
|
+
//
|
|
30426
|
+
return await this.swapV1PrivatePostPositionSideDual(this.extend(request, params));
|
|
30427
|
+
}
|
|
30395
30428
|
sign(path, section = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
30396
30429
|
const type = section[0];
|
|
30397
30430
|
const version = section[1];
|
|
@@ -34925,7 +34958,7 @@ class bitfinex extends _abstract_bitfinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
34925
34958
|
* @description fetches information on multiple closed orders made by the user
|
|
34926
34959
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
34927
34960
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
34928
|
-
* @param {int} [limit] the maximum number of
|
|
34961
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
34929
34962
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
34930
34963
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
34931
34964
|
*/
|
|
@@ -37181,7 +37214,7 @@ class bitfinex2 extends _abstract_bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
37181
37214
|
* @see https://docs.bitfinex.com/reference/rest-auth-retrieve-orders-by-symbol
|
|
37182
37215
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
37183
37216
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
37184
|
-
* @param {int} [limit] the maximum number of
|
|
37217
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
37185
37218
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
37186
37219
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
37187
37220
|
* @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 +39052,7 @@ class bitflyer extends _abstract_bitflyer_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
39019
39052
|
* @see https://lightning.bitflyer.com/docs?lang=en#list-orders
|
|
39020
39053
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
39021
39054
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
39022
|
-
* @param {int} [limit] the maximum number of
|
|
39055
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
39023
39056
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
39024
39057
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
39025
39058
|
*/
|
|
@@ -39064,7 +39097,7 @@ class bitflyer extends _abstract_bitflyer_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
39064
39097
|
* @see https://lightning.bitflyer.com/docs?lang=en#list-orders
|
|
39065
39098
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
39066
39099
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
39067
|
-
* @param {int} [limit] the maximum number of
|
|
39100
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
39068
39101
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
39069
39102
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
39070
39103
|
*/
|
|
@@ -52343,7 +52376,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
52343
52376
|
* @description fetches information on multiple closed orders made by the user
|
|
52344
52377
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
52345
52378
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
52346
|
-
* @param {int} [limit] the maximum number of
|
|
52379
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
52347
52380
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
52348
52381
|
* @param {int} [params.until] timestamp in ms of the latest entry
|
|
52349
52382
|
* @param {string} [params.marginMode] *spot only* 'cross' or 'isolated', for margin trading
|
|
@@ -54784,7 +54817,7 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
54784
54817
|
* @description fetches information on multiple orders made by the user
|
|
54785
54818
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
54786
54819
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
54787
|
-
* @param {int} [limit] the maximum number of
|
|
54820
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
54788
54821
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
54789
54822
|
* @param {int} [params.until] the earliest time in ms to fetch orders for
|
|
54790
54823
|
* @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 +54881,7 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
54848
54881
|
* @description fetches information on multiple closed orders made by the user
|
|
54849
54882
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
54850
54883
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
54851
|
-
* @param {int} [limit] the maximum number of
|
|
54884
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
54852
54885
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
54853
54886
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
54854
54887
|
*/
|
|
@@ -58010,7 +58043,7 @@ class bitopro extends _abstract_bitopro_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
58010
58043
|
* @see https://github.com/bitoex/bitopro-offical-api-docs/blob/master/api/v3/private/get_orders_data.md
|
|
58011
58044
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
58012
58045
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
58013
|
-
* @param {int} [limit] the maximum number of
|
|
58046
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
58014
58047
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
58015
58048
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
58016
58049
|
*/
|
|
@@ -60293,7 +60326,7 @@ class bitpanda extends _abstract_bitpanda_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
60293
60326
|
* @description fetches information on multiple closed orders made by the user
|
|
60294
60327
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
60295
60328
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
60296
|
-
* @param {int} [limit] the maximum number of
|
|
60329
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
60297
60330
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
60298
60331
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
60299
60332
|
*/
|
|
@@ -68946,7 +68979,7 @@ class bitvavo extends _abstract_bitvavo_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
68946
68979
|
* @description fetches information on multiple orders made by the user
|
|
68947
68980
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
68948
68981
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
68949
|
-
* @param {int} [limit] the maximum number of
|
|
68982
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
68950
68983
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
68951
68984
|
* @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
68985
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
@@ -70771,7 +70804,7 @@ class blockchaincom extends _abstract_blockchaincom_js__WEBPACK_IMPORTED_MODULE_
|
|
|
70771
70804
|
* @description fetches information on multiple closed orders made by the user
|
|
70772
70805
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
70773
70806
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
70774
|
-
* @param {int} [limit] the maximum number of
|
|
70807
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
70775
70808
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
70776
70809
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
70777
70810
|
*/
|
|
@@ -72048,7 +72081,7 @@ class btcalpha extends _abstract_btcalpha_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
72048
72081
|
* @description fetches information on multiple orders made by the user
|
|
72049
72082
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
72050
72083
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
72051
|
-
* @param {int} [limit] the maximum number of
|
|
72084
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
72052
72085
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
72053
72086
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
72054
72087
|
*/
|
|
@@ -72088,7 +72121,7 @@ class btcalpha extends _abstract_btcalpha_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
72088
72121
|
* @description fetches information on multiple closed orders made by the user
|
|
72089
72122
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
72090
72123
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
72091
|
-
* @param {int} [limit] the maximum number of
|
|
72124
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
72092
72125
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
72093
72126
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
72094
72127
|
*/
|
|
@@ -72677,7 +72710,7 @@ class btcbox extends _abstract_btcbox_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
72677
72710
|
* @description fetches information on multiple orders made by the user
|
|
72678
72711
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
72679
72712
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
72680
|
-
* @param {int} [limit] the maximum number of
|
|
72713
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
72681
72714
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
72682
72715
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
72683
72716
|
*/
|
|
@@ -73789,7 +73822,7 @@ class btcmarkets extends _abstract_btcmarkets_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
73789
73822
|
* @description fetches information on multiple orders made by the user
|
|
73790
73823
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
73791
73824
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
73792
|
-
* @param {int} [limit] the maximum number of
|
|
73825
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
73793
73826
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
73794
73827
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
73795
73828
|
*/
|
|
@@ -73832,7 +73865,7 @@ class btcmarkets extends _abstract_btcmarkets_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
73832
73865
|
* @description fetches information on multiple closed orders made by the user
|
|
73833
73866
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
73834
73867
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
73835
|
-
* @param {int} [limit] the maximum number of
|
|
73868
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
73836
73869
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
73837
73870
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
73838
73871
|
*/
|
|
@@ -74742,7 +74775,7 @@ class btcturk extends _abstract_btcturk_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
74742
74775
|
* @description fetches information on multiple orders made by the user
|
|
74743
74776
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
74744
74777
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
74745
|
-
* @param {int} [limit] the maximum number of
|
|
74778
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
74746
74779
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
74747
74780
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
74748
74781
|
*/
|
|
@@ -79387,7 +79420,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
79387
79420
|
* @see https://bybit-exchange.github.io/docs/v5/order/order-list
|
|
79388
79421
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
79389
79422
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
79390
|
-
* @param {int} [limit] the maximum number of
|
|
79423
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
79391
79424
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
79392
79425
|
* @param {boolean} [params.stop] true if stop order
|
|
79393
79426
|
* @param {string} [params.type] market type, ['swap', 'option', 'spot']
|
|
@@ -79503,7 +79536,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
79503
79536
|
* @see https://bybit-exchange.github.io/docs/v5/order/order-list
|
|
79504
79537
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
79505
79538
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
79506
|
-
* @param {int} [limit] the maximum number of
|
|
79539
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
79507
79540
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
79508
79541
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
79509
79542
|
*/
|
|
@@ -83917,7 +83950,7 @@ class cex extends _abstract_cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
83917
83950
|
* @description fetches information on multiple orders made by the user
|
|
83918
83951
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
83919
83952
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
83920
|
-
* @param {int} [limit] the maximum number of
|
|
83953
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
83921
83954
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
83922
83955
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
83923
83956
|
*/
|
|
@@ -88707,7 +88740,7 @@ class coinbasepro extends _abstract_coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
88707
88740
|
* @description fetches information on multiple orders made by the user
|
|
88708
88741
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
88709
88742
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
88710
|
-
* @param {int} [limit] the maximum number of
|
|
88743
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
88711
88744
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
88712
88745
|
* @param {int} [params.until] the latest time in ms to fetch open orders for
|
|
88713
88746
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -88765,7 +88798,7 @@ class coinbasepro extends _abstract_coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
88765
88798
|
* @description fetches information on multiple closed orders made by the user
|
|
88766
88799
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
88767
88800
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
88768
|
-
* @param {int} [limit] the maximum number of
|
|
88801
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
88769
88802
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
88770
88803
|
* @param {int} [params.until] the latest time in ms to fetch open orders for
|
|
88771
88804
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -93493,7 +93526,7 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
93493
93526
|
* @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot003_trade012_finished_order
|
|
93494
93527
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
93495
93528
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
93496
|
-
* @param {int} [limit] the maximum number of
|
|
93529
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
93497
93530
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
93498
93531
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
93499
93532
|
*/
|
|
@@ -96907,7 +96940,7 @@ class coinlist extends _abstract_coinlist_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
96907
96940
|
* @see https://trade-docs.coinlist.co/?javascript--nodejs#list-orders
|
|
96908
96941
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
96909
96942
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
96910
|
-
* @param {int} [limit] the maximum number of
|
|
96943
|
+
* @param {int} [limit] the maximum number of order structures to retrieve (default 200, max 500)
|
|
96911
96944
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
96912
96945
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
96913
96946
|
* @param {string|string[]} [params.status] the status of the order - 'accepted', 'done', 'canceled', 'rejected', 'pending' (default [ 'accepted', 'done', 'canceled', 'rejected', 'pending' ])
|
|
@@ -113002,7 +113035,7 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
113002
113035
|
* @description fetches information on multiple closed orders made by the user
|
|
113003
113036
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
113004
113037
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
113005
|
-
* @param {int} [limit] the maximum number of
|
|
113038
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
113006
113039
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
113007
113040
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
113008
113041
|
*/
|
|
@@ -116541,7 +116574,7 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
116541
116574
|
* @see https://docs.digifinex.com/en-ww/swap/v2/rest.html#historyorder
|
|
116542
116575
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
116543
116576
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
116544
|
-
* @param {int} [limit] the maximum number of
|
|
116577
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
116545
116578
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
116546
116579
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
116547
116580
|
*/
|
|
@@ -125984,7 +126017,7 @@ class gate extends _abstract_gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
125984
126017
|
* @see https://www.gate.io/docs/developers/apiv4/en/#list-options-orders
|
|
125985
126018
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
125986
126019
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
125987
|
-
* @param {int} [limit] the maximum number of
|
|
126020
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
125988
126021
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
125989
126022
|
* @param {bool} [params.stop] true for fetching stop orders
|
|
125990
126023
|
* @param {string} [params.type] spot, swap or future, if not provided this.options['defaultType'] is used
|
|
@@ -132030,7 +132063,7 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
132030
132063
|
* @see https://api.hitbtc.com/#margin-orders-history
|
|
132031
132064
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
132032
132065
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
132033
|
-
* @param {int} [limit] the maximum number of
|
|
132066
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
132034
132067
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
132035
132068
|
* @param {string} [params.marginMode] 'cross' or 'isolated' only 'isolated' is supported
|
|
132036
132069
|
* @param {bool} [params.margin] true for fetching margin orders
|
|
@@ -134836,7 +134869,7 @@ class hollaex extends _abstract_hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
134836
134869
|
* @description fetches information on multiple closed orders made by the user
|
|
134837
134870
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
134838
134871
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
134839
|
-
* @param {int} [limit] the maximum number of
|
|
134872
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
134840
134873
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
134841
134874
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
134842
134875
|
*/
|
|
@@ -134894,7 +134927,7 @@ class hollaex extends _abstract_hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
134894
134927
|
* @description fetches information on multiple orders made by the user
|
|
134895
134928
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
134896
134929
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
134897
|
-
* @param {int} [limit] the maximum number of
|
|
134930
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
134898
134931
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
134899
134932
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
134900
134933
|
*/
|
|
@@ -139932,7 +139965,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
139932
139965
|
* @description fetches information on multiple closed orders made by the user
|
|
139933
139966
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
139934
139967
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
139935
|
-
* @param {int} [limit] the maximum number of
|
|
139968
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
139936
139969
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
139937
139970
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
139938
139971
|
* @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 +145855,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
145822
145855
|
* @description fetches information on multiple orders made by the user
|
|
145823
145856
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
145824
145857
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
145825
|
-
* @param {int} [limit] the maximum number of
|
|
145858
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
145826
145859
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
145827
145860
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
145828
145861
|
*/
|
|
@@ -145855,7 +145888,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
145855
145888
|
* @description fetches information on multiple closed orders made by the user
|
|
145856
145889
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
145857
145890
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
145858
|
-
* @param {int} [limit] the maximum number of
|
|
145891
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
145859
145892
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
145860
145893
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
145861
145894
|
*/
|
|
@@ -147505,7 +147538,7 @@ class idex extends _abstract_idex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
147505
147538
|
* @description fetches information on multiple closed orders made by the user
|
|
147506
147539
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
147507
147540
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
147508
|
-
* @param {int} [limit] the maximum number of
|
|
147541
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
147509
147542
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
147510
147543
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
147511
147544
|
*/
|
|
@@ -148869,7 +148902,7 @@ class independentreserve extends _abstract_independentreserve_js__WEBPACK_IMPORT
|
|
|
148869
148902
|
* @description fetches information on multiple closed orders made by the user
|
|
148870
148903
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
148871
148904
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
148872
|
-
* @param {int} [limit] the maximum number of
|
|
148905
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
148873
148906
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
148874
148907
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
148875
148908
|
*/
|
|
@@ -152285,7 +152318,7 @@ class kraken extends _abstract_kraken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
152285
152318
|
* @see https://docs.kraken.com/rest/#tag/Account-Data/operation/getClosedOrders
|
|
152286
152319
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
152287
152320
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
152288
|
-
* @param {int} [limit] the maximum number of
|
|
152321
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
152289
152322
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
152290
152323
|
* @param {int} [params.until] timestamp in ms of the latest entry
|
|
152291
152324
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -155526,15 +155559,15 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
155526
155559
|
'closeAllPositions': false,
|
|
155527
155560
|
'closePosition': false,
|
|
155528
155561
|
'createDepositAddress': true,
|
|
155562
|
+
'createMarketBuyOrderWithCost': true,
|
|
155563
|
+
'createMarketOrderWithCost': true,
|
|
155564
|
+
'createMarketSellOrderWithCost': true,
|
|
155529
155565
|
'createOrder': true,
|
|
155530
155566
|
'createOrders': true,
|
|
155531
155567
|
'createPostOnlyOrder': true,
|
|
155532
155568
|
'createStopLimitOrder': true,
|
|
155533
155569
|
'createStopMarketOrder': true,
|
|
155534
155570
|
'createStopOrder': true,
|
|
155535
|
-
'createMarketBuyOrderWithCost': true,
|
|
155536
|
-
'createMarketOrderWithCost': true,
|
|
155537
|
-
'createMarketSellOrderWithCost': true,
|
|
155538
155571
|
'editOrder': true,
|
|
155539
155572
|
'fetchAccounts': true,
|
|
155540
155573
|
'fetchBalance': true,
|
|
@@ -157921,7 +157954,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
157921
157954
|
* @see https://docs.kucoin.com/spot-hf/#obtain-list-of-filled-hf-orders
|
|
157922
157955
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
157923
157956
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
157924
|
-
* @param {int} [limit] the maximum number of
|
|
157957
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
157925
157958
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
157926
157959
|
* @param {int} [params.till] end time in ms
|
|
157927
157960
|
* @param {string} [params.side] buy or sell
|
|
@@ -161528,7 +161561,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
161528
161561
|
* @see https://docs.kucoin.com/futures/#get-order-list
|
|
161529
161562
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
161530
161563
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
161531
|
-
* @param {int} [limit] the maximum number of
|
|
161564
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
161532
161565
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
161533
161566
|
* @param {int} [params.till] end time in ms
|
|
161534
161567
|
* @param {string} [params.side] buy or sell
|
|
@@ -163708,7 +163741,7 @@ class kuna extends _abstract_kuna_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
163708
163741
|
* @see https://docs.kuna.io/docs/get-private-orders-history
|
|
163709
163742
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
163710
163743
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
163711
|
-
* @param {int} [limit] the maximum number of
|
|
163744
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
163712
163745
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
163713
163746
|
* @param {int} [params.until] the latest time in ms to fetch orders for
|
|
163714
163747
|
*
|
|
@@ -165539,7 +165572,7 @@ class latoken extends _abstract_latoken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
165539
165572
|
* @see https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrdersByPair // stop
|
|
165540
165573
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
165541
165574
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
165542
|
-
* @param {int} [limit] the maximum number of
|
|
165575
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
165543
165576
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
165544
165577
|
* @param {boolean} [params.trigger] true if fetching trigger orders
|
|
165545
165578
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -169447,7 +169480,7 @@ class luno extends _abstract_luno_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
169447
169480
|
* @description fetches information on multiple orders made by the user
|
|
169448
169481
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
169449
169482
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
169450
|
-
* @param {int} [limit] the maximum number of
|
|
169483
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
169451
169484
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
169452
169485
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
169453
169486
|
*/
|
|
@@ -169473,7 +169506,7 @@ class luno extends _abstract_luno_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
169473
169506
|
* @description fetches information on multiple closed orders made by the user
|
|
169474
169507
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
169475
169508
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
169476
|
-
* @param {int} [limit] the maximum number of
|
|
169509
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
169477
169510
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
169478
169511
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
169479
169512
|
*/
|
|
@@ -171001,7 +171034,7 @@ class lykke extends _abstract_lykke_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
171001
171034
|
* @description fetches information on multiple closed orders made by the user
|
|
171002
171035
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
171003
171036
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
171004
|
-
* @param {int} [limit] the maximum number of
|
|
171037
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
171005
171038
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
171006
171039
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
171007
171040
|
*/
|
|
@@ -174748,7 +174781,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
174748
174781
|
* @description fetches information on multiple orders made by the user
|
|
174749
174782
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
174750
174783
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
174751
|
-
* @param {int} [limit] the maximum number of
|
|
174784
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
174752
174785
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
174753
174786
|
* @param {string} [params.marginMode] only 'isolated' is supported, for spot-margin trading
|
|
174754
174787
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -175071,7 +175104,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
175071
175104
|
* @description fetches information on multiple closed orders made by the user
|
|
175072
175105
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
175073
175106
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
175074
|
-
* @param {int} [limit] the maximum number of
|
|
175107
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
175075
175108
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
175076
175109
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
175077
175110
|
*/
|
|
@@ -179336,7 +179369,7 @@ class ndax extends _abstract_ndax_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
179336
179369
|
* @description fetches information on multiple orders made by the user
|
|
179337
179370
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
179338
179371
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
179339
|
-
* @param {int} [limit] the maximum number of
|
|
179372
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
179340
179373
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
179341
179374
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
179342
179375
|
*/
|
|
@@ -181019,7 +181052,7 @@ class novadax extends _abstract_novadax_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
181019
181052
|
* @see https://doc.novadax.com/en-US/#get-order-history
|
|
181020
181053
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
181021
181054
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
181022
|
-
* @param {int} [limit] the maximum number of
|
|
181055
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
181023
181056
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
181024
181057
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
181025
181058
|
*/
|
|
@@ -181096,7 +181129,7 @@ class novadax extends _abstract_novadax_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
181096
181129
|
* @see https://doc.novadax.com/en-US/#get-order-history
|
|
181097
181130
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
181098
181131
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
181099
|
-
* @param {int} [limit] the maximum number of
|
|
181132
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
181100
181133
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
181101
181134
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
181102
181135
|
*/
|
|
@@ -182385,7 +182418,7 @@ class oceanex extends _abstract_oceanex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
182385
182418
|
* @see https://api.oceanex.pro/doc/v1/#order-status-get
|
|
182386
182419
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
182387
182420
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
182388
|
-
* @param {int} [limit] the maximum number of
|
|
182421
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
182389
182422
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
182390
182423
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
182391
182424
|
*/
|
|
@@ -184714,7 +184747,7 @@ class okcoin extends _abstract_okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
184714
184747
|
* @description fetches information on multiple closed orders made by the user
|
|
184715
184748
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
184716
184749
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
184717
|
-
* @param {int} [limit] the maximum number of
|
|
184750
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
184718
184751
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
184719
184752
|
* @param {bool} [params.stop] True if fetching trigger or conditional orders
|
|
184720
184753
|
* @param {string} [params.ordType] "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"
|
|
@@ -189684,7 +189717,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
189684
189717
|
* @see https://www.okx.com/docs-v5/en/#order-book-trading-algo-trading-get-algo-order-history
|
|
189685
189718
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
189686
189719
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
189687
|
-
* @param {int} [limit] the maximum number of
|
|
189720
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
189688
189721
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
189689
189722
|
* @param {bool} [params.stop] True if fetching trigger or conditional orders
|
|
189690
189723
|
* @param {string} [params.ordType] "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"
|
|
@@ -203386,7 +203419,7 @@ class poloniexfutures extends _abstract_poloniexfutures_js__WEBPACK_IMPORTED_MOD
|
|
|
203386
203419
|
* @see https://futures-docs.poloniex.com/#get-untriggered-stop-order-list
|
|
203387
203420
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
203388
203421
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
203389
|
-
* @param {int} [limit] the maximum number of
|
|
203422
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
203390
203423
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
203391
203424
|
* @param {int} [params.till] end time in ms
|
|
203392
203425
|
* @param {string} [params.side] buy or sell
|
|
@@ -204156,7 +204189,7 @@ class alpaca extends _alpaca_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
204156
204189
|
* @description watches information on multiple orders made by the user
|
|
204157
204190
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
204158
204191
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
204159
|
-
* @param {int} [limit] the maximum number of
|
|
204192
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
204160
204193
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
204161
204194
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
204162
204195
|
*/
|
|
@@ -205009,7 +205042,7 @@ class ascendex extends _ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
205009
205042
|
* @description watches information on multiple orders made by the user
|
|
205010
205043
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
205011
205044
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
205012
|
-
* @param {int} [limit] the maximum number of
|
|
205045
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
205013
205046
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
205014
205047
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
205015
205048
|
*/
|
|
@@ -207470,7 +207503,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
207470
207503
|
* @description watches information on multiple orders made by the user
|
|
207471
207504
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
207472
207505
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
207473
|
-
* @param {int} [limit] the maximum number of
|
|
207506
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
207474
207507
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
207475
207508
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
207476
207509
|
*/
|
|
@@ -208026,7 +208059,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
208026
208059
|
* @description watches information on multiple trades made by the user
|
|
208027
208060
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
208028
208061
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
208029
|
-
* @param {int} [limit] the maximum number of
|
|
208062
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
208030
208063
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
208031
208064
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure
|
|
208032
208065
|
*/
|
|
@@ -208498,7 +208531,7 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208498
208531
|
* @see https://bingx-api.github.io/docs/#/swapV2/socket/market.html#Subscribe%20the%20Latest%20Trade%20Detail
|
|
208499
208532
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
208500
208533
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
208501
|
-
* @param {int} [limit] the maximum number of
|
|
208534
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
208502
208535
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
208503
208536
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
208504
208537
|
*/
|
|
@@ -208726,8 +208759,11 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208726
208759
|
// "t": 1696687440000
|
|
208727
208760
|
// }
|
|
208728
208761
|
//
|
|
208762
|
+
// for spot, opening-time (t) is used instead of closing-time (T), to be compatible with fetchOHLCV
|
|
208763
|
+
// for swap, (T) is the opening time
|
|
208764
|
+
const timestamp = (market['spot']) ? 't' : 'T';
|
|
208729
208765
|
return [
|
|
208730
|
-
this.safeInteger(ohlcv,
|
|
208766
|
+
this.safeInteger(ohlcv, timestamp),
|
|
208731
208767
|
this.safeNumber(ohlcv, 'o'),
|
|
208732
208768
|
this.safeNumber(ohlcv, 'h'),
|
|
208733
208769
|
this.safeNumber(ohlcv, 'l'),
|
|
@@ -208855,7 +208891,7 @@ class bingx extends _bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
208855
208891
|
* @description watches information on multiple orders made by the user
|
|
208856
208892
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
208857
208893
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
208858
|
-
* @param {int} [limit] the maximum number of
|
|
208894
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
208859
208895
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
208860
208896
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
208861
208897
|
*/
|
|
@@ -209857,7 +209893,7 @@ class bitfinex extends _bitfinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
209857
209893
|
* @description watches information on multiple orders made by the user
|
|
209858
209894
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
209859
209895
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
209860
|
-
* @param {int} [limit] the maximum number of
|
|
209896
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
209861
209897
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
209862
209898
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
209863
209899
|
*/
|
|
@@ -210964,7 +211000,7 @@ class bitfinex2 extends _bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
210964
211000
|
* @description watches information on multiple orders made by the user
|
|
210965
211001
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
210966
211002
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
210967
|
-
* @param {int} [limit] the maximum number of
|
|
211003
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
210968
211004
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
210969
211005
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
210970
211006
|
*/
|
|
@@ -215217,7 +215253,7 @@ class bitmex extends _bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
215217
215253
|
* @description watches information on multiple orders made by the user
|
|
215218
215254
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
215219
215255
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
215220
|
-
* @param {int} [limit] the maximum number of
|
|
215256
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
215221
215257
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
215222
215258
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
215223
215259
|
*/
|
|
@@ -216758,7 +216794,7 @@ class bitpanda extends _bitpanda_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
216758
216794
|
* @description watches information on multiple orders made by the user
|
|
216759
216795
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
216760
216796
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
216761
|
-
* @param {int} [limit] the maximum number of
|
|
216797
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
216762
216798
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
216763
216799
|
* @param {string} [params.channel] can listen to orders using ACCOUNT_HISTORY or TRADING
|
|
216764
216800
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -219832,7 +219868,7 @@ class blockchaincom extends _blockchaincom_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
219832
219868
|
* @see https://exchange.blockchain.com/api/#mass-order-status-request-ordermassstatusrequest
|
|
219833
219869
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
219834
219870
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
219835
|
-
* @param {int} [limit] the maximum number of
|
|
219871
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
219836
219872
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
219837
219873
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
219838
219874
|
*/
|
|
@@ -221035,7 +221071,7 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
221035
221071
|
* @see https://bybit-exchange.github.io/docs/v5/websocket/private/execution
|
|
221036
221072
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
221037
221073
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
221038
|
-
* @param {int} [limit] the maximum number of
|
|
221074
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
221039
221075
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
221040
221076
|
* @param {boolean} [params.unifiedMargin] use unified margin account
|
|
221041
221077
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
@@ -221300,7 +221336,7 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
221300
221336
|
* @see https://bybit-exchange.github.io/docs/v5/websocket/private/order
|
|
221301
221337
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
221302
221338
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
221303
|
-
* @param {int} [limit] the maximum number of
|
|
221339
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
221304
221340
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
221305
221341
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
221306
221342
|
*/
|
|
@@ -223892,7 +223928,7 @@ class coinbase extends _coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
|
|
|
223892
223928
|
* @see https://docs.cloud.coinbase.com/advanced-trade-api/docs/ws-channels#user-channel
|
|
223893
223929
|
* @param {string} [symbol] unified market symbol of the market orders were made in
|
|
223894
223930
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
223895
|
-
* @param {int} [limit] the maximum number of
|
|
223931
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
223896
223932
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
223897
223933
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
223898
223934
|
*/
|
|
@@ -224460,7 +224496,7 @@ class coinbasepro extends _coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/* ["defau
|
|
|
224460
224496
|
* @description watches information on multiple orders made by the user
|
|
224461
224497
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
224462
224498
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
224463
|
-
* @param {int} [limit] the maximum number of
|
|
224499
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
224464
224500
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
224465
224501
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
224466
224502
|
*/
|
|
@@ -228307,7 +228343,7 @@ class deribit extends _deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
228307
228343
|
* @description watches information on multiple orders made by the user
|
|
228308
228344
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
228309
228345
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
228310
|
-
* @param {int} [limit] the maximum number of
|
|
228346
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
228311
228347
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
228312
228348
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
|
228313
228349
|
*/
|
|
@@ -230190,7 +230226,7 @@ class gate extends _gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
230190
230226
|
* @description watches information on multiple orders made by the user
|
|
230191
230227
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
230192
230228
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
230193
|
-
* @param {int} [limit] the maximum number of
|
|
230229
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
230194
230230
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
230195
230231
|
* @param {string} [params.type] spot, margin, swap, future, or option. Required if listening to all symbols.
|
|
230196
230232
|
* @param {boolean} [params.isInverse] if future, listen to inverse or linear contracts
|
|
@@ -231023,7 +231059,7 @@ class gemini extends _gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
231023
231059
|
* @see https://docs.gemini.com/websocket-api/#order-events
|
|
231024
231060
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
231025
231061
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
231026
|
-
* @param {int} [limit] the maximum number of
|
|
231062
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
231027
231063
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
231028
231064
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
231029
231065
|
*/
|
|
@@ -232857,7 +232893,7 @@ class hollaex extends _hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
232857
232893
|
* @description watches information on multiple orders made by the user
|
|
232858
232894
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
232859
232895
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
232860
|
-
* @param {int} [limit] the maximum number of
|
|
232896
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
232861
232897
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
232862
232898
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
232863
232899
|
*/
|
|
@@ -233979,7 +234015,7 @@ class htx extends _htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
233979
234015
|
* @description watches information on multiple orders made by the user
|
|
233980
234016
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
233981
234017
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
233982
|
-
* @param {int} [limit] the maximum number of
|
|
234018
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
233983
234019
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
233984
234020
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
233985
234021
|
*/
|
|
@@ -236749,7 +236785,7 @@ class idex extends _idex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
236749
236785
|
* @description watches information on multiple orders made by the user
|
|
236750
236786
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
236751
236787
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
236752
|
-
* @param {int} [limit] the maximum number of
|
|
236788
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
236753
236789
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
236754
236790
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
236755
236791
|
*/
|
|
@@ -238241,7 +238277,7 @@ class kraken extends _kraken_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
238241
238277
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
238242
238278
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
238243
238279
|
* @param {int} [limit] the maximum number of orde structures to retrieve
|
|
238244
|
-
* @param {object} [params]
|
|
238280
|
+
* @param {object} [params] maximum number of orderic to the exchange API endpoint
|
|
238245
238281
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
238246
238282
|
*/
|
|
238247
238283
|
return await this.watchPrivate('openOrders', symbol, since, limit, params);
|
|
@@ -239001,7 +239037,7 @@ class krakenfutures extends _krakenfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
239001
239037
|
* @see https://docs.futures.kraken.com/#websocket-api-private-feeds-fills
|
|
239002
239038
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
239003
239039
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
239004
|
-
* @param {int} [limit] the maximum number of
|
|
239040
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
239005
239041
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
239006
239042
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
|
|
239007
239043
|
*/
|
|
@@ -241858,7 +241894,7 @@ class kucoinfutures extends _kucoinfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
241858
241894
|
* @see https://docs.kucoin.com/futures/#trade-orders-according-to-the-market
|
|
241859
241895
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
241860
241896
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
241861
|
-
* @param {int} [limit] the maximum number of
|
|
241897
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
241862
241898
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
241863
241899
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
241864
241900
|
*/
|
|
@@ -243234,7 +243270,7 @@ class mexc extends _mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
243234
243270
|
* @description watches information on multiple orders made by the user
|
|
243235
243271
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
243236
243272
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
243237
|
-
* @param {int} [limit] the maximum number of
|
|
243273
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
243238
243274
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
243239
243275
|
* @param {string|undefined} params.type the type of orders to retrieve, can be 'spot' or 'margin'
|
|
243240
243276
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -244316,7 +244352,7 @@ class okcoin extends _okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
244316
244352
|
* @description watches information on multiple orders made by the user
|
|
244317
244353
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
244318
244354
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
244319
|
-
* @param {int} [limit] the maximum number of
|
|
244355
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
244320
244356
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
244321
244357
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
244322
244358
|
*/
|
|
@@ -245962,7 +245998,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
245962
245998
|
* @description watches information on multiple orders made by the user
|
|
245963
245999
|
* @param {string} [symbol] unified market symbol of the market orders were made in
|
|
245964
246000
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
245965
|
-
* @param {int} [limit] the maximum number of
|
|
246001
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
245966
246002
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
245967
246003
|
* @param {bool} [params.stop] true if fetching trigger or conditional orders
|
|
245968
246004
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -247451,7 +247487,7 @@ class phemex extends _phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
247451
247487
|
* @description watches information on multiple orders made by the user
|
|
247452
247488
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
247453
247489
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
247454
|
-
* @param {int} [limit] the maximum number of
|
|
247490
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
247455
247491
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
247456
247492
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
247457
247493
|
*/
|
|
@@ -249645,7 +249681,7 @@ class poloniexfutures extends _poloniexfutures_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
249645
249681
|
* @see https://futures-docs.poloniex.com/#private-messages
|
|
249646
249682
|
* @param {string} symbol filter by unified market symbol of the market orders were made in
|
|
249647
249683
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
249648
|
-
* @param {int} [limit] the maximum number of
|
|
249684
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
249649
249685
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
249650
249686
|
* @param {string} [params.method] the method to use will default to /contractMarket/tradeOrders. Set to /contractMarket/advancedOrders to watch stop orders
|
|
249651
249687
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -254762,7 +254798,7 @@ class probit extends _abstract_probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
254762
254798
|
* @description fetches information on multiple closed orders made by the user
|
|
254763
254799
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
254764
254800
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
254765
|
-
* @param {int} [limit] the maximum number of
|
|
254801
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
254766
254802
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
254767
254803
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
254768
254804
|
*/
|
|
@@ -265510,7 +265546,7 @@ class timex extends _abstract_timex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
265510
265546
|
* @description fetches information on multiple closed orders made by the user
|
|
265511
265547
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
265512
265548
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
265513
|
-
* @param {int} [limit] the maximum number of
|
|
265549
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
265514
265550
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
265515
265551
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
265516
265552
|
*/
|
|
@@ -267987,7 +268023,7 @@ class tokocrypto extends _abstract_tokocrypto_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
267987
268023
|
* @description fetches information on multiple closed orders made by the user
|
|
267988
268024
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
267989
268025
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
267990
|
-
* @param {int} [limit] the maximum number of
|
|
268026
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
267991
268027
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
267992
268028
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
267993
268029
|
*/
|
|
@@ -270158,7 +270194,7 @@ class upbit extends _abstract_upbit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
270158
270194
|
* @description fetches information on multiple closed orders made by the user
|
|
270159
270195
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
270160
270196
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
270161
|
-
* @param {int} [limit] the maximum number of
|
|
270197
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
270162
270198
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
270163
270199
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
270164
270200
|
*/
|
|
@@ -272124,7 +272160,7 @@ class wavesexchange extends _abstract_wavesexchange_js__WEBPACK_IMPORTED_MODULE_
|
|
|
272124
272160
|
* @description fetches information on multiple closed orders made by the user
|
|
272125
272161
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
272126
272162
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
272127
|
-
* @param {int} [limit] the maximum number of
|
|
272163
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
272128
272164
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
272129
272165
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
272130
272166
|
*/
|
|
@@ -275478,7 +275514,7 @@ class whitebit extends _abstract_whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
275478
275514
|
* @see https://docs.whitebit.com/private/http-trade-v4/#query-executed-orders
|
|
275479
275515
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
275480
275516
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
275481
|
-
* @param {int} [limit] the maximum number of
|
|
275517
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
275482
275518
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
275483
275519
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
275484
275520
|
*/
|
|
@@ -277580,7 +277616,7 @@ class woo extends _abstract_woo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
277580
277616
|
* @description fetches information on multiple orders made by the user
|
|
277581
277617
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
277582
277618
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
277583
|
-
* @param {int} [limit] the maximum number of
|
|
277619
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
277584
277620
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
277585
277621
|
* @param {boolean} [params.stop] whether the order is a stop/algo order
|
|
277586
277622
|
* @param {boolean} [params.isTriggered] whether the order has been triggered (false by default)
|
|
@@ -280377,752 +280413,6 @@ class yobit extends _abstract_yobit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
280377
280413
|
}
|
|
280378
280414
|
|
|
280379
280415
|
|
|
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
280416
|
/***/ }),
|
|
281127
280417
|
|
|
281128
280418
|
/***/ 5140:
|
|
@@ -288166,6 +287456,751 @@ YAHOO.lang = {
|
|
|
288166
287456
|
}
|
|
288167
287457
|
};
|
|
288168
287458
|
|
|
287459
|
+
/***/ }),
|
|
287460
|
+
|
|
287461
|
+
/***/ 7558:
|
|
287462
|
+
/***/ (() => {
|
|
287463
|
+
|
|
287464
|
+
|
|
287465
|
+
// ---------------------------------------------------------------------------
|
|
287466
|
+
var __importDefault = (undefined && undefined.__importDefault) || function (mod) {
|
|
287467
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
287468
|
+
};
|
|
287469
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
287470
|
+
const zaif_js_1 = __importDefault(require("./abstract/zaif.js"));
|
|
287471
|
+
const errors_js_1 = require("./base/errors.js");
|
|
287472
|
+
const Precise_js_1 = require("./base/Precise.js");
|
|
287473
|
+
const number_js_1 = require("./base/functions/number.js");
|
|
287474
|
+
const sha512_js_1 = require("./static_dependencies/noble-hashes/sha512.js");
|
|
287475
|
+
// ---------------------------------------------------------------------------
|
|
287476
|
+
/**
|
|
287477
|
+
* @class zaif
|
|
287478
|
+
* @extends Exchange
|
|
287479
|
+
*/
|
|
287480
|
+
class zaif extends zaif_js_1.default {
|
|
287481
|
+
describe() {
|
|
287482
|
+
return this.deepExtend(super.describe(), {
|
|
287483
|
+
'id': 'zaif',
|
|
287484
|
+
'name': 'Zaif',
|
|
287485
|
+
'countries': ['JP'],
|
|
287486
|
+
// 10 requests per second = 1000ms / 10 = 100ms between requests (public market endpoints)
|
|
287487
|
+
'rateLimit': 100,
|
|
287488
|
+
'version': '1',
|
|
287489
|
+
'has': {
|
|
287490
|
+
'CORS': undefined,
|
|
287491
|
+
'spot': true,
|
|
287492
|
+
'margin': undefined,
|
|
287493
|
+
'swap': false,
|
|
287494
|
+
'future': false,
|
|
287495
|
+
'option': false,
|
|
287496
|
+
'cancelOrder': true,
|
|
287497
|
+
'createMarketOrder': false,
|
|
287498
|
+
'createOrder': true,
|
|
287499
|
+
'fetchBalance': true,
|
|
287500
|
+
'fetchClosedOrders': true,
|
|
287501
|
+
'fetchFundingHistory': false,
|
|
287502
|
+
'fetchFundingRate': false,
|
|
287503
|
+
'fetchFundingRateHistory': false,
|
|
287504
|
+
'fetchFundingRates': false,
|
|
287505
|
+
'fetchIndexOHLCV': false,
|
|
287506
|
+
'fetchMarkets': true,
|
|
287507
|
+
'fetchMarkOHLCV': false,
|
|
287508
|
+
'fetchOpenInterestHistory': false,
|
|
287509
|
+
'fetchOpenOrders': true,
|
|
287510
|
+
'fetchOrderBook': true,
|
|
287511
|
+
'fetchPremiumIndexOHLCV': false,
|
|
287512
|
+
'fetchTicker': true,
|
|
287513
|
+
'fetchTrades': true,
|
|
287514
|
+
'fetchTradingFee': false,
|
|
287515
|
+
'fetchTradingFees': false,
|
|
287516
|
+
'withdraw': true,
|
|
287517
|
+
},
|
|
287518
|
+
'urls': {
|
|
287519
|
+
'logo': 'https://user-images.githubusercontent.com/1294454/27766927-39ca2ada-5eeb-11e7-972f-1b4199518ca6.jpg',
|
|
287520
|
+
'api': {
|
|
287521
|
+
'rest': 'https://api.zaif.jp',
|
|
287522
|
+
},
|
|
287523
|
+
'www': 'https://zaif.jp',
|
|
287524
|
+
'doc': [
|
|
287525
|
+
'https://techbureau-api-document.readthedocs.io/ja/latest/index.html',
|
|
287526
|
+
'https://corp.zaif.jp/api-docs',
|
|
287527
|
+
'https://corp.zaif.jp/api-docs/api_links',
|
|
287528
|
+
'https://www.npmjs.com/package/zaif.jp',
|
|
287529
|
+
'https://github.com/you21979/node-zaif',
|
|
287530
|
+
],
|
|
287531
|
+
'fees': 'https://zaif.jp/fee?lang=en',
|
|
287532
|
+
},
|
|
287533
|
+
'fees': {
|
|
287534
|
+
'trading': {
|
|
287535
|
+
'percentage': true,
|
|
287536
|
+
'taker': this.parseNumber('0.001'),
|
|
287537
|
+
'maker': this.parseNumber('0'),
|
|
287538
|
+
},
|
|
287539
|
+
},
|
|
287540
|
+
'api': {
|
|
287541
|
+
'public': {
|
|
287542
|
+
'get': {
|
|
287543
|
+
'depth/{pair}': 1,
|
|
287544
|
+
'currencies/{pair}': 1,
|
|
287545
|
+
'currencies/all': 1,
|
|
287546
|
+
'currency_pairs/{pair}': 1,
|
|
287547
|
+
'currency_pairs/all': 1,
|
|
287548
|
+
'last_price/{pair}': 1,
|
|
287549
|
+
'ticker/{pair}': 1,
|
|
287550
|
+
'trades/{pair}': 1,
|
|
287551
|
+
},
|
|
287552
|
+
},
|
|
287553
|
+
'private': {
|
|
287554
|
+
'post': {
|
|
287555
|
+
'active_orders': 5,
|
|
287556
|
+
'cancel_order': 5,
|
|
287557
|
+
'deposit_history': 5,
|
|
287558
|
+
'get_id_info': 5,
|
|
287559
|
+
'get_info': 10,
|
|
287560
|
+
'get_info2': 5,
|
|
287561
|
+
'get_personal_info': 5,
|
|
287562
|
+
'trade': 5,
|
|
287563
|
+
'trade_history': 50,
|
|
287564
|
+
'withdraw': 5,
|
|
287565
|
+
'withdraw_history': 5,
|
|
287566
|
+
},
|
|
287567
|
+
},
|
|
287568
|
+
'ecapi': {
|
|
287569
|
+
'post': {
|
|
287570
|
+
'createInvoice': 1,
|
|
287571
|
+
'getInvoice': 1,
|
|
287572
|
+
'getInvoiceIdsByOrderNumber': 1,
|
|
287573
|
+
'cancelInvoice': 1,
|
|
287574
|
+
},
|
|
287575
|
+
},
|
|
287576
|
+
'tlapi': {
|
|
287577
|
+
'post': {
|
|
287578
|
+
'get_positions': 66,
|
|
287579
|
+
'position_history': 66,
|
|
287580
|
+
'active_positions': 5,
|
|
287581
|
+
'create_position': 33,
|
|
287582
|
+
'change_position': 33,
|
|
287583
|
+
'cancel_position': 33, // 3 in 10 seconds
|
|
287584
|
+
},
|
|
287585
|
+
},
|
|
287586
|
+
'fapi': {
|
|
287587
|
+
'get': {
|
|
287588
|
+
'groups/{group_id}': 1,
|
|
287589
|
+
'last_price/{group_id}/{pair}': 1,
|
|
287590
|
+
'ticker/{group_id}/{pair}': 1,
|
|
287591
|
+
'trades/{group_id}/{pair}': 1,
|
|
287592
|
+
'depth/{group_id}/{pair}': 1,
|
|
287593
|
+
},
|
|
287594
|
+
},
|
|
287595
|
+
},
|
|
287596
|
+
'options': {},
|
|
287597
|
+
'precisionMode': number_js_1.TICK_SIZE,
|
|
287598
|
+
'exceptions': {
|
|
287599
|
+
'exact': {
|
|
287600
|
+
'unsupported currency_pair': errors_js_1.BadRequest, // {"error": "unsupported currency_pair"}
|
|
287601
|
+
},
|
|
287602
|
+
'broad': {},
|
|
287603
|
+
},
|
|
287604
|
+
});
|
|
287605
|
+
}
|
|
287606
|
+
async fetchMarkets(params = {}) {
|
|
287607
|
+
/**
|
|
287608
|
+
* @method
|
|
287609
|
+
* @name zaif#fetchMarkets
|
|
287610
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id12
|
|
287611
|
+
* @description retrieves data on all markets for zaif
|
|
287612
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287613
|
+
* @returns {object[]} an array of objects representing market data
|
|
287614
|
+
*/
|
|
287615
|
+
const markets = await this.publicGetCurrencyPairsAll(params);
|
|
287616
|
+
//
|
|
287617
|
+
// [
|
|
287618
|
+
// {
|
|
287619
|
+
// "aux_unit_point": 0,
|
|
287620
|
+
// "item_japanese": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3",
|
|
287621
|
+
// "aux_unit_step": 5.0,
|
|
287622
|
+
// "description": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3\u30fb\u65e5\u672c\u5186\u306e\u53d6\u5f15\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059",
|
|
287623
|
+
// "item_unit_min": 0.001,
|
|
287624
|
+
// "event_number": 0,
|
|
287625
|
+
// "currency_pair": "btc_jpy",
|
|
287626
|
+
// "is_token": false,
|
|
287627
|
+
// "aux_unit_min": 5.0,
|
|
287628
|
+
// "aux_japanese": "\u65e5\u672c\u5186",
|
|
287629
|
+
// "id": 1,
|
|
287630
|
+
// "item_unit_step": 0.0001,
|
|
287631
|
+
// "name": "BTC/JPY",
|
|
287632
|
+
// "seq": 0,
|
|
287633
|
+
// "title": "BTC/JPY"
|
|
287634
|
+
// }
|
|
287635
|
+
// ]
|
|
287636
|
+
//
|
|
287637
|
+
return this.parseMarkets(markets);
|
|
287638
|
+
}
|
|
287639
|
+
parseMarket(market) {
|
|
287640
|
+
const id = this.safeString(market, 'currency_pair');
|
|
287641
|
+
const name = this.safeString(market, 'name');
|
|
287642
|
+
const [baseId, quoteId] = name.split('/');
|
|
287643
|
+
const base = this.safeCurrencyCode(baseId);
|
|
287644
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
287645
|
+
const symbol = base + '/' + quote;
|
|
287646
|
+
return {
|
|
287647
|
+
'id': id,
|
|
287648
|
+
'symbol': symbol,
|
|
287649
|
+
'base': base,
|
|
287650
|
+
'quote': quote,
|
|
287651
|
+
'settle': undefined,
|
|
287652
|
+
'baseId': baseId,
|
|
287653
|
+
'quoteId': quoteId,
|
|
287654
|
+
'settleId': undefined,
|
|
287655
|
+
'type': 'spot',
|
|
287656
|
+
'spot': true,
|
|
287657
|
+
'margin': undefined,
|
|
287658
|
+
'swap': false,
|
|
287659
|
+
'future': false,
|
|
287660
|
+
'option': false,
|
|
287661
|
+
'active': undefined,
|
|
287662
|
+
'contract': false,
|
|
287663
|
+
'linear': undefined,
|
|
287664
|
+
'inverse': undefined,
|
|
287665
|
+
'contractSize': undefined,
|
|
287666
|
+
'expiry': undefined,
|
|
287667
|
+
'expiryDatetime': undefined,
|
|
287668
|
+
'strike': undefined,
|
|
287669
|
+
'optionType': undefined,
|
|
287670
|
+
'precision': {
|
|
287671
|
+
'amount': this.safeNumber(market, 'item_unit_step'),
|
|
287672
|
+
'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'aux_unit_point'))),
|
|
287673
|
+
},
|
|
287674
|
+
'limits': {
|
|
287675
|
+
'leverage': {
|
|
287676
|
+
'min': undefined,
|
|
287677
|
+
'max': undefined,
|
|
287678
|
+
},
|
|
287679
|
+
'amount': {
|
|
287680
|
+
'min': this.safeNumber(market, 'item_unit_min'),
|
|
287681
|
+
'max': undefined,
|
|
287682
|
+
},
|
|
287683
|
+
'price': {
|
|
287684
|
+
'min': this.safeNumber(market, 'aux_unit_min'),
|
|
287685
|
+
'max': undefined,
|
|
287686
|
+
},
|
|
287687
|
+
'cost': {
|
|
287688
|
+
'min': undefined,
|
|
287689
|
+
'max': undefined,
|
|
287690
|
+
},
|
|
287691
|
+
},
|
|
287692
|
+
'created': undefined,
|
|
287693
|
+
'info': market,
|
|
287694
|
+
};
|
|
287695
|
+
}
|
|
287696
|
+
parseBalance(response) {
|
|
287697
|
+
const balances = this.safeValue(response, 'return', {});
|
|
287698
|
+
const deposit = this.safeValue(balances, 'deposit');
|
|
287699
|
+
const result = {
|
|
287700
|
+
'info': response,
|
|
287701
|
+
'timestamp': undefined,
|
|
287702
|
+
'datetime': undefined,
|
|
287703
|
+
};
|
|
287704
|
+
const funds = this.safeValue(balances, 'funds', {});
|
|
287705
|
+
const currencyIds = Object.keys(funds);
|
|
287706
|
+
for (let i = 0; i < currencyIds.length; i++) {
|
|
287707
|
+
const currencyId = currencyIds[i];
|
|
287708
|
+
const code = this.safeCurrencyCode(currencyId);
|
|
287709
|
+
const balance = this.safeString(funds, currencyId);
|
|
287710
|
+
const account = this.account();
|
|
287711
|
+
account['free'] = balance;
|
|
287712
|
+
account['total'] = balance;
|
|
287713
|
+
if (deposit !== undefined) {
|
|
287714
|
+
if (currencyId in deposit) {
|
|
287715
|
+
account['total'] = this.safeString(deposit, currencyId);
|
|
287716
|
+
}
|
|
287717
|
+
}
|
|
287718
|
+
result[code] = account;
|
|
287719
|
+
}
|
|
287720
|
+
return this.safeBalance(result);
|
|
287721
|
+
}
|
|
287722
|
+
async fetchBalance(params = {}) {
|
|
287723
|
+
/**
|
|
287724
|
+
* @method
|
|
287725
|
+
* @name zaif#fetchBalance
|
|
287726
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id10
|
|
287727
|
+
* @description query for balance and get the amount of funds available for trading or funds locked in orders
|
|
287728
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287729
|
+
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
|
|
287730
|
+
*/
|
|
287731
|
+
await this.loadMarkets();
|
|
287732
|
+
const response = await this.privatePostGetInfo(params);
|
|
287733
|
+
return this.parseBalance(response);
|
|
287734
|
+
}
|
|
287735
|
+
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
287736
|
+
/**
|
|
287737
|
+
* @method
|
|
287738
|
+
* @name zaif#fetchOrderBook
|
|
287739
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id34
|
|
287740
|
+
* @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
287741
|
+
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
287742
|
+
* @param {int} [limit] the maximum amount of order book entries to return
|
|
287743
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287744
|
+
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
287745
|
+
*/
|
|
287746
|
+
await this.loadMarkets();
|
|
287747
|
+
const market = this.market(symbol);
|
|
287748
|
+
const request = {
|
|
287749
|
+
'pair': market['id'],
|
|
287750
|
+
};
|
|
287751
|
+
const response = await this.publicGetDepthPair(this.extend(request, params));
|
|
287752
|
+
return this.parseOrderBook(response, market['symbol']);
|
|
287753
|
+
}
|
|
287754
|
+
parseTicker(ticker, market = undefined) {
|
|
287755
|
+
//
|
|
287756
|
+
// {
|
|
287757
|
+
// "last": 9e-08,
|
|
287758
|
+
// "high": 1e-07,
|
|
287759
|
+
// "low": 9e-08,
|
|
287760
|
+
// "vwap": 0.0,
|
|
287761
|
+
// "volume": 135250.0,
|
|
287762
|
+
// "bid": 9e-08,
|
|
287763
|
+
// "ask": 1e-07
|
|
287764
|
+
// }
|
|
287765
|
+
//
|
|
287766
|
+
const symbol = this.safeSymbol(undefined, market);
|
|
287767
|
+
const timestamp = this.milliseconds();
|
|
287768
|
+
const vwap = this.safeString(ticker, 'vwap');
|
|
287769
|
+
const baseVolume = this.safeString(ticker, 'volume');
|
|
287770
|
+
const quoteVolume = Precise_js_1.Precise.stringMul(baseVolume, vwap);
|
|
287771
|
+
const last = this.safeString(ticker, 'last');
|
|
287772
|
+
return this.safeTicker({
|
|
287773
|
+
'symbol': symbol,
|
|
287774
|
+
'timestamp': timestamp,
|
|
287775
|
+
'datetime': this.iso8601(timestamp),
|
|
287776
|
+
'high': this.safeString(ticker, 'high'),
|
|
287777
|
+
'low': this.safeString(ticker, 'low'),
|
|
287778
|
+
'bid': this.safeString(ticker, 'bid'),
|
|
287779
|
+
'bidVolume': undefined,
|
|
287780
|
+
'ask': this.safeString(ticker, 'ask'),
|
|
287781
|
+
'askVolume': undefined,
|
|
287782
|
+
'vwap': vwap,
|
|
287783
|
+
'open': undefined,
|
|
287784
|
+
'close': last,
|
|
287785
|
+
'last': last,
|
|
287786
|
+
'previousClose': undefined,
|
|
287787
|
+
'change': undefined,
|
|
287788
|
+
'percentage': undefined,
|
|
287789
|
+
'average': undefined,
|
|
287790
|
+
'baseVolume': baseVolume,
|
|
287791
|
+
'quoteVolume': quoteVolume,
|
|
287792
|
+
'info': ticker,
|
|
287793
|
+
}, market);
|
|
287794
|
+
}
|
|
287795
|
+
async fetchTicker(symbol, params = {}) {
|
|
287796
|
+
/**
|
|
287797
|
+
* @method
|
|
287798
|
+
* @name zaif#fetchTicker
|
|
287799
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id22
|
|
287800
|
+
* @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
287801
|
+
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
287802
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287803
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
287804
|
+
*/
|
|
287805
|
+
await this.loadMarkets();
|
|
287806
|
+
const market = this.market(symbol);
|
|
287807
|
+
const request = {
|
|
287808
|
+
'pair': market['id'],
|
|
287809
|
+
};
|
|
287810
|
+
const ticker = await this.publicGetTickerPair(this.extend(request, params));
|
|
287811
|
+
//
|
|
287812
|
+
// {
|
|
287813
|
+
// "last": 9e-08,
|
|
287814
|
+
// "high": 1e-07,
|
|
287815
|
+
// "low": 9e-08,
|
|
287816
|
+
// "vwap": 0.0,
|
|
287817
|
+
// "volume": 135250.0,
|
|
287818
|
+
// "bid": 9e-08,
|
|
287819
|
+
// "ask": 1e-07
|
|
287820
|
+
// }
|
|
287821
|
+
//
|
|
287822
|
+
return this.parseTicker(ticker, market);
|
|
287823
|
+
}
|
|
287824
|
+
parseTrade(trade, market = undefined) {
|
|
287825
|
+
//
|
|
287826
|
+
// fetchTrades (public)
|
|
287827
|
+
//
|
|
287828
|
+
// {
|
|
287829
|
+
// "date": 1648559414,
|
|
287830
|
+
// "price": 5880375.0,
|
|
287831
|
+
// "amount": 0.017,
|
|
287832
|
+
// "tid": 176126557,
|
|
287833
|
+
// "currency_pair": "btc_jpy",
|
|
287834
|
+
// "trade_type": "ask"
|
|
287835
|
+
// }
|
|
287836
|
+
//
|
|
287837
|
+
let side = this.safeString(trade, 'trade_type');
|
|
287838
|
+
side = (side === 'bid') ? 'buy' : 'sell';
|
|
287839
|
+
const timestamp = this.safeTimestamp(trade, 'date');
|
|
287840
|
+
const id = this.safeString2(trade, 'id', 'tid');
|
|
287841
|
+
const priceString = this.safeString(trade, 'price');
|
|
287842
|
+
const amountString = this.safeString(trade, 'amount');
|
|
287843
|
+
const marketId = this.safeString(trade, 'currency_pair');
|
|
287844
|
+
const symbol = this.safeSymbol(marketId, market, '_');
|
|
287845
|
+
return this.safeTrade({
|
|
287846
|
+
'id': id,
|
|
287847
|
+
'info': trade,
|
|
287848
|
+
'timestamp': timestamp,
|
|
287849
|
+
'datetime': this.iso8601(timestamp),
|
|
287850
|
+
'symbol': symbol,
|
|
287851
|
+
'type': undefined,
|
|
287852
|
+
'side': side,
|
|
287853
|
+
'order': undefined,
|
|
287854
|
+
'takerOrMaker': undefined,
|
|
287855
|
+
'price': priceString,
|
|
287856
|
+
'amount': amountString,
|
|
287857
|
+
'cost': undefined,
|
|
287858
|
+
'fee': undefined,
|
|
287859
|
+
}, market);
|
|
287860
|
+
}
|
|
287861
|
+
async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
287862
|
+
/**
|
|
287863
|
+
* @method
|
|
287864
|
+
* @name zaif#fetchTrades
|
|
287865
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id28
|
|
287866
|
+
* @description get the list of most recent trades for a particular symbol
|
|
287867
|
+
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
287868
|
+
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
287869
|
+
* @param {int} [limit] the maximum amount of trades to fetch
|
|
287870
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287871
|
+
* @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
287872
|
+
*/
|
|
287873
|
+
await this.loadMarkets();
|
|
287874
|
+
const market = this.market(symbol);
|
|
287875
|
+
const request = {
|
|
287876
|
+
'pair': market['id'],
|
|
287877
|
+
};
|
|
287878
|
+
let response = await this.publicGetTradesPair(this.extend(request, params));
|
|
287879
|
+
//
|
|
287880
|
+
// [
|
|
287881
|
+
// {
|
|
287882
|
+
// "date": 1648559414,
|
|
287883
|
+
// "price": 5880375.0,
|
|
287884
|
+
// "amount": 0.017,
|
|
287885
|
+
// "tid": 176126557,
|
|
287886
|
+
// "currency_pair": "btc_jpy",
|
|
287887
|
+
// "trade_type": "ask"
|
|
287888
|
+
// }, ...
|
|
287889
|
+
// ]
|
|
287890
|
+
//
|
|
287891
|
+
const numTrades = response.length;
|
|
287892
|
+
if (numTrades === 1) {
|
|
287893
|
+
const firstTrade = response[0];
|
|
287894
|
+
if (!Object.keys(firstTrade).length) {
|
|
287895
|
+
response = [];
|
|
287896
|
+
}
|
|
287897
|
+
}
|
|
287898
|
+
return this.parseTrades(response, market, since, limit);
|
|
287899
|
+
}
|
|
287900
|
+
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
287901
|
+
/**
|
|
287902
|
+
* @method
|
|
287903
|
+
* @name zaif#createOrder
|
|
287904
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/MarginTradingAPI.html#id23
|
|
287905
|
+
* @description create a trade order
|
|
287906
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
287907
|
+
* @param {string} type must be 'limit'
|
|
287908
|
+
* @param {string} side 'buy' or 'sell'
|
|
287909
|
+
* @param {float} amount how much of currency you want to trade in units of base currency
|
|
287910
|
+
* @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
|
287911
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287912
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
287913
|
+
*/
|
|
287914
|
+
await this.loadMarkets();
|
|
287915
|
+
if (type !== 'limit') {
|
|
287916
|
+
throw new errors_js_1.ExchangeError(this.id + ' createOrder() allows limit orders only');
|
|
287917
|
+
}
|
|
287918
|
+
const market = this.market(symbol);
|
|
287919
|
+
const request = {
|
|
287920
|
+
'currency_pair': market['id'],
|
|
287921
|
+
'action': (side === 'buy') ? 'bid' : 'ask',
|
|
287922
|
+
'amount': amount,
|
|
287923
|
+
'price': price,
|
|
287924
|
+
};
|
|
287925
|
+
const response = await this.privatePostTrade(this.extend(request, params));
|
|
287926
|
+
return this.safeOrder({
|
|
287927
|
+
'info': response,
|
|
287928
|
+
'id': response['return']['order_id'].toString(),
|
|
287929
|
+
}, market);
|
|
287930
|
+
}
|
|
287931
|
+
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
287932
|
+
/**
|
|
287933
|
+
* @method
|
|
287934
|
+
* @name zaif#cancelOrder
|
|
287935
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id37
|
|
287936
|
+
* @description cancels an open order
|
|
287937
|
+
* @param {string} id order id
|
|
287938
|
+
* @param {string} symbol not used by zaif cancelOrder ()
|
|
287939
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
287940
|
+
* @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
287941
|
+
*/
|
|
287942
|
+
const request = {
|
|
287943
|
+
'order_id': id,
|
|
287944
|
+
};
|
|
287945
|
+
return await this.privatePostCancelOrder(this.extend(request, params));
|
|
287946
|
+
}
|
|
287947
|
+
parseOrder(order, market = undefined) {
|
|
287948
|
+
//
|
|
287949
|
+
// {
|
|
287950
|
+
// "currency_pair": "btc_jpy",
|
|
287951
|
+
// "action": "ask",
|
|
287952
|
+
// "amount": 0.03,
|
|
287953
|
+
// "price": 56000,
|
|
287954
|
+
// "timestamp": 1402021125,
|
|
287955
|
+
// "comment" : "demo"
|
|
287956
|
+
// }
|
|
287957
|
+
//
|
|
287958
|
+
let side = this.safeString(order, 'action');
|
|
287959
|
+
side = (side === 'bid') ? 'buy' : 'sell';
|
|
287960
|
+
const timestamp = this.safeTimestamp(order, 'timestamp');
|
|
287961
|
+
const marketId = this.safeString(order, 'currency_pair');
|
|
287962
|
+
const symbol = this.safeSymbol(marketId, market, '_');
|
|
287963
|
+
const price = this.safeString(order, 'price');
|
|
287964
|
+
const amount = this.safeString(order, 'amount');
|
|
287965
|
+
const id = this.safeString(order, 'id');
|
|
287966
|
+
return this.safeOrder({
|
|
287967
|
+
'id': id,
|
|
287968
|
+
'clientOrderId': undefined,
|
|
287969
|
+
'timestamp': timestamp,
|
|
287970
|
+
'datetime': this.iso8601(timestamp),
|
|
287971
|
+
'lastTradeTimestamp': undefined,
|
|
287972
|
+
'status': 'open',
|
|
287973
|
+
'symbol': symbol,
|
|
287974
|
+
'type': 'limit',
|
|
287975
|
+
'timeInForce': undefined,
|
|
287976
|
+
'postOnly': undefined,
|
|
287977
|
+
'side': side,
|
|
287978
|
+
'price': price,
|
|
287979
|
+
'stopPrice': undefined,
|
|
287980
|
+
'triggerPrice': undefined,
|
|
287981
|
+
'cost': undefined,
|
|
287982
|
+
'amount': amount,
|
|
287983
|
+
'filled': undefined,
|
|
287984
|
+
'remaining': undefined,
|
|
287985
|
+
'trades': undefined,
|
|
287986
|
+
'fee': undefined,
|
|
287987
|
+
'info': order,
|
|
287988
|
+
'average': undefined,
|
|
287989
|
+
}, market);
|
|
287990
|
+
}
|
|
287991
|
+
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
287992
|
+
/**
|
|
287993
|
+
* @method
|
|
287994
|
+
* @name zaif#fetchOpenOrders
|
|
287995
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/MarginTradingAPI.html#id28
|
|
287996
|
+
* @description fetch all unfilled currently open orders
|
|
287997
|
+
* @param {string} symbol unified market symbol
|
|
287998
|
+
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
287999
|
+
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
|
288000
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
288001
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
288002
|
+
*/
|
|
288003
|
+
await this.loadMarkets();
|
|
288004
|
+
let market = undefined;
|
|
288005
|
+
const request = {
|
|
288006
|
+
// 'is_token': false,
|
|
288007
|
+
// 'is_token_both': false,
|
|
288008
|
+
};
|
|
288009
|
+
if (symbol !== undefined) {
|
|
288010
|
+
market = this.market(symbol);
|
|
288011
|
+
request['currency_pair'] = market['id'];
|
|
288012
|
+
}
|
|
288013
|
+
const response = await this.privatePostActiveOrders(this.extend(request, params));
|
|
288014
|
+
return this.parseOrders(response['return'], market, since, limit);
|
|
288015
|
+
}
|
|
288016
|
+
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
288017
|
+
/**
|
|
288018
|
+
* @method
|
|
288019
|
+
* @name zaif#fetchClosedOrders
|
|
288020
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id24
|
|
288021
|
+
* @description fetches information on multiple closed orders made by the user
|
|
288022
|
+
* @param {string} symbol unified market symbol of the market orders were made in
|
|
288023
|
+
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
288024
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
288025
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
288026
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
288027
|
+
*/
|
|
288028
|
+
await this.loadMarkets();
|
|
288029
|
+
let market = undefined;
|
|
288030
|
+
const request = {
|
|
288031
|
+
// 'from': 0,
|
|
288032
|
+
// 'count': 1000,
|
|
288033
|
+
// 'from_id': 0,
|
|
288034
|
+
// 'end_id': 1000,
|
|
288035
|
+
// 'order': 'DESC',
|
|
288036
|
+
// 'since': 1503821051,
|
|
288037
|
+
// 'end': 1503821051,
|
|
288038
|
+
// 'is_token': false,
|
|
288039
|
+
};
|
|
288040
|
+
if (symbol !== undefined) {
|
|
288041
|
+
market = this.market(symbol);
|
|
288042
|
+
request['currency_pair'] = market['id'];
|
|
288043
|
+
}
|
|
288044
|
+
const response = await this.privatePostTradeHistory(this.extend(request, params));
|
|
288045
|
+
return this.parseOrders(response['return'], market, since, limit);
|
|
288046
|
+
}
|
|
288047
|
+
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
288048
|
+
/**
|
|
288049
|
+
* @method
|
|
288050
|
+
* @name zaif#withdraw
|
|
288051
|
+
* @see https://zaif-api-document.readthedocs.io/ja/latest/TradingAPI.html#id41
|
|
288052
|
+
* @description make a withdrawal
|
|
288053
|
+
* @param {string} code unified currency code
|
|
288054
|
+
* @param {float} amount the amount to withdraw
|
|
288055
|
+
* @param {string} address the address to withdraw to
|
|
288056
|
+
* @param {string} tag
|
|
288057
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
288058
|
+
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
|
288059
|
+
*/
|
|
288060
|
+
[tag, params] = this.handleWithdrawTagAndParams(tag, params);
|
|
288061
|
+
this.checkAddress(address);
|
|
288062
|
+
await this.loadMarkets();
|
|
288063
|
+
const currency = this.currency(code);
|
|
288064
|
+
if (code === 'JPY') {
|
|
288065
|
+
throw new errors_js_1.ExchangeError(this.id + ' withdraw() does not allow ' + code + ' withdrawals');
|
|
288066
|
+
}
|
|
288067
|
+
const request = {
|
|
288068
|
+
'currency': currency['id'],
|
|
288069
|
+
'amount': amount,
|
|
288070
|
+
'address': address,
|
|
288071
|
+
// 'message': 'Hi!', // XEM and others
|
|
288072
|
+
// 'opt_fee': 0.003, // BTC and MONA only
|
|
288073
|
+
};
|
|
288074
|
+
if (tag !== undefined) {
|
|
288075
|
+
request['message'] = tag;
|
|
288076
|
+
}
|
|
288077
|
+
const result = await this.privatePostWithdraw(this.extend(request, params));
|
|
288078
|
+
//
|
|
288079
|
+
// {
|
|
288080
|
+
// "success": 1,
|
|
288081
|
+
// "return": {
|
|
288082
|
+
// "id": 23634,
|
|
288083
|
+
// "fee": 0.001,
|
|
288084
|
+
// "txid":,
|
|
288085
|
+
// "funds": {
|
|
288086
|
+
// "jpy": 15320,
|
|
288087
|
+
// "btc": 1.392,
|
|
288088
|
+
// "xem": 100.2,
|
|
288089
|
+
// "mona": 2600
|
|
288090
|
+
// }
|
|
288091
|
+
// }
|
|
288092
|
+
// }
|
|
288093
|
+
//
|
|
288094
|
+
const returnData = this.safeValue(result, 'return');
|
|
288095
|
+
return this.parseTransaction(returnData, currency);
|
|
288096
|
+
}
|
|
288097
|
+
parseTransaction(transaction, currency = undefined) {
|
|
288098
|
+
//
|
|
288099
|
+
// {
|
|
288100
|
+
// "id": 23634,
|
|
288101
|
+
// "fee": 0.001,
|
|
288102
|
+
// "txid":,
|
|
288103
|
+
// "funds": {
|
|
288104
|
+
// "jpy": 15320,
|
|
288105
|
+
// "btc": 1.392,
|
|
288106
|
+
// "xem": 100.2,
|
|
288107
|
+
// "mona": 2600
|
|
288108
|
+
// }
|
|
288109
|
+
// }
|
|
288110
|
+
//
|
|
288111
|
+
currency = this.safeCurrency(undefined, currency);
|
|
288112
|
+
let fee = undefined;
|
|
288113
|
+
const feeCost = this.safeValue(transaction, 'fee');
|
|
288114
|
+
if (feeCost !== undefined) {
|
|
288115
|
+
fee = {
|
|
288116
|
+
'cost': feeCost,
|
|
288117
|
+
'currency': currency['code'],
|
|
288118
|
+
};
|
|
288119
|
+
}
|
|
288120
|
+
return {
|
|
288121
|
+
'id': this.safeString(transaction, 'id'),
|
|
288122
|
+
'txid': this.safeString(transaction, 'txid'),
|
|
288123
|
+
'timestamp': undefined,
|
|
288124
|
+
'datetime': undefined,
|
|
288125
|
+
'network': undefined,
|
|
288126
|
+
'addressFrom': undefined,
|
|
288127
|
+
'address': undefined,
|
|
288128
|
+
'addressTo': undefined,
|
|
288129
|
+
'amount': undefined,
|
|
288130
|
+
'type': undefined,
|
|
288131
|
+
'currency': currency['code'],
|
|
288132
|
+
'status': undefined,
|
|
288133
|
+
'updated': undefined,
|
|
288134
|
+
'tagFrom': undefined,
|
|
288135
|
+
'tag': undefined,
|
|
288136
|
+
'tagTo': undefined,
|
|
288137
|
+
'comment': undefined,
|
|
288138
|
+
'internal': undefined,
|
|
288139
|
+
'fee': fee,
|
|
288140
|
+
'info': transaction,
|
|
288141
|
+
};
|
|
288142
|
+
}
|
|
288143
|
+
customNonce() {
|
|
288144
|
+
const num = (this.milliseconds() / 1000).toString();
|
|
288145
|
+
const nonce = parseFloat(num);
|
|
288146
|
+
return nonce.toFixed(8);
|
|
288147
|
+
}
|
|
288148
|
+
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
288149
|
+
let url = this.urls['api']['rest'] + '/';
|
|
288150
|
+
if (api === 'public') {
|
|
288151
|
+
url += 'api/' + this.version + '/' + this.implodeParams(path, params);
|
|
288152
|
+
}
|
|
288153
|
+
else if (api === 'fapi') {
|
|
288154
|
+
url += 'fapi/' + this.version + '/' + this.implodeParams(path, params);
|
|
288155
|
+
}
|
|
288156
|
+
else {
|
|
288157
|
+
this.checkRequiredCredentials();
|
|
288158
|
+
if (api === 'ecapi') {
|
|
288159
|
+
url += 'ecapi';
|
|
288160
|
+
}
|
|
288161
|
+
else if (api === 'tlapi') {
|
|
288162
|
+
url += 'tlapi';
|
|
288163
|
+
}
|
|
288164
|
+
else {
|
|
288165
|
+
url += 'tapi';
|
|
288166
|
+
}
|
|
288167
|
+
const nonce = this.customNonce();
|
|
288168
|
+
body = this.urlencode(this.extend({
|
|
288169
|
+
'method': path,
|
|
288170
|
+
'nonce': nonce,
|
|
288171
|
+
}, params));
|
|
288172
|
+
headers = {
|
|
288173
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
288174
|
+
'Key': this.apiKey,
|
|
288175
|
+
'Sign': this.hmac(this.encode(body), this.encode(this.secret), sha512_js_1.sha512),
|
|
288176
|
+
};
|
|
288177
|
+
}
|
|
288178
|
+
return { 'url': url, 'method': method, 'body': body, 'headers': headers };
|
|
288179
|
+
}
|
|
288180
|
+
handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
|
|
288181
|
+
if (response === undefined) {
|
|
288182
|
+
return undefined;
|
|
288183
|
+
}
|
|
288184
|
+
//
|
|
288185
|
+
// {"error": "unsupported currency_pair"}
|
|
288186
|
+
//
|
|
288187
|
+
const feedback = this.id + ' ' + body;
|
|
288188
|
+
const error = this.safeString(response, 'error');
|
|
288189
|
+
if (error !== undefined) {
|
|
288190
|
+
this.throwExactlyMatchedException(this.exceptions['exact'], error, feedback);
|
|
288191
|
+
this.throwBroadlyMatchedException(this.exceptions['broad'], error, feedback);
|
|
288192
|
+
throw new errors_js_1.ExchangeError(feedback); // unknown message
|
|
288193
|
+
}
|
|
288194
|
+
const success = this.safeValue(response, 'success', true);
|
|
288195
|
+
if (!success) {
|
|
288196
|
+
throw new errors_js_1.ExchangeError(feedback);
|
|
288197
|
+
}
|
|
288198
|
+
return undefined;
|
|
288199
|
+
}
|
|
288200
|
+
}
|
|
288201
|
+
exports.default = zaif;
|
|
288202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemFpZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInphaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLCtFQUErRTs7Ozs7QUFFL0UsaUVBQTBDO0FBQzFDLGdEQUE2RDtBQUM3RCxrREFBNEM7QUFDNUMsMERBQXVEO0FBQ3ZELDRFQUFzRTtBQUd0RSwrRUFBK0U7QUFFL0U7OztHQUdHO0FBQ0gsTUFBcUIsSUFBSyxTQUFRLGlCQUFRO0lBQ3RDLFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBRSxJQUFJLENBQUU7WUFDckIsMEZBQTBGO1lBQzFGLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFNBQVMsRUFBRSxHQUFHO1lBQ2QsS0FBSyxFQUFFO2dCQUNILE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUsSUFBSTtnQkFDWixRQUFRLEVBQUUsU0FBUztnQkFDbkIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsbUJBQW1CLEVBQUUsSUFBSTtnQkFDekIscUJBQXFCLEVBQUUsS0FBSztnQkFDNUIsa0JBQWtCLEVBQUUsS0FBSztnQkFDekIseUJBQXlCLEVBQUUsS0FBSztnQkFDaEMsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLDBCQUEwQixFQUFFLEtBQUs7Z0JBQ2pDLGlCQUFpQixFQUFFLElBQUk7Z0JBQ3ZCLGdCQUFn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QVMsRUFBRTtZQUNyQixJQUFJLENBQUMsNEJBQTRCLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLDRCQUE0QixDQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlFLE1BQU0sSUFBSSx5QkFBYSxDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsa0JBQWtCO1NBQ3pEO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixNQUFNLElBQUkseUJBQWEsQ0FBRSxRQUFRLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSjtBQWp1QkQsdUJBaXVCQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5pbXBvcnQgRXhjaGFuZ2UgZnJvbSAnLi9hYnN0cmFjdC96YWlmLmpzJztcbmltcG9ydCB7IEV4Y2hhbmdlRXJyb3IsIEJhZFJlcXVlc3QgfSBmcm9tICcuL2Jhc2UvZXJyb3JzLmpzJztcbmltcG9ydCB7IFByZWNpc2UgfSBmcm9tICcuL2Jhc2UvUHJlY2lzZS5qcyc7XG5pbXBvcnQgeyBUSUNLX1NJWkUgfSBmcm9tICcuL2Jhc2UvZnVuY3Rpb25zL251bWJlci5qcyc7XG5pbXBvcnQgeyBzaGE1MTIgfSBmcm9tICcuL3N0YXRpY19kZXBlbmRlbmNpZXMvbm9ibGUtaGFzaGVzL3NoYTUxMi5qcyc7XG5pbXBvcnQgeyBCYWxhbmNlcywgQ3VycmVuY3ksIEludCwgTWFya2V0LCBPcmRlciwgT3JkZXJCb29rLCBPcmRlclNpZGUsIE9yZGVyVHlwZSwgU3RyLCBUaWNrZXIsIFRyYWRlLCBUcmFuc2FjdGlvbiB9IGZyb20gJy4vYmFzZS90eXBlcy5qcyc7XG5cbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBAY2xhc3MgemFpZlxuICogQGV4dGVuZHMgRXhjaGFuZ2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgemFpZiBleHRlbmRzIEV4Y2hhbmdlIHtcbiAgICBkZXNjcmliZSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlZXBFeHRlbmQgKHN1cGVyLmRlc2NyaWJlICgpLCB7XG4gICAgICAgICAgICAnaWQnOiAnemFpZicsXG4gICAgICAgICAgICAnbmFtZSc6ICdaYWlmJyxcbiAgICAgICAgICAgICdjb3VudHJpZXMnOiBbICdKUCcgXSxcbiAgICAgICAgICAgIC8vIDEwIHJlcXVlc3RzIHBlciBzZWNvbmQgPSAxMDAwbXMgLyAxMCA9IDEwMG1zIGJldHdlZW4gcmVxdWVzdHMgKHB1YmxpYyBtYXJrZXQgZW5kcG9pbnRzKVxuICAgICAgICAgICAgJ3JhdGVMaW1pdCc6IDEwMCxcbiAgICAgICAgICAgICd2ZXJzaW9uJzogJzEnLFxuICAgICAgICAgICAgJ2hhcyc6IHtcbiAgICAgICAgICAgICAgICAnQ09SUyc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAnc3BvdCc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ21hcmdpbic6IHVuZGVmaW5lZCwgLy8gaGFzIGJ1dCB1bmltcGxlbWVudGVkXG4gICAgICAgICAgICAgICAgJ3N3YXAnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZnV0dXJlJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ29wdGlvbic6IGZhbHNlLFxuICAgICAgICAgICAgICAgICdjYW5jZWxPcmRlcic6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2NyZWF0ZU1hcmtldE9yZGVyJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ2NyZWF0ZU9yZGVyJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hCYWxhbmNlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hDbG9zZWRPcmRlcnMnOiB0cnVlLFxuICAgICAgICAgICAgICAgICdmZXRjaEZ1bmRpbmdIaXN0b3J5JzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ2ZldGNoRnVuZGluZ1JhdGUnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hGdW5kaW5nUmF0ZUhpc3RvcnknOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hGdW5kaW5nUmF0ZXMnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hJbmRleE9ITENWJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ2ZldGNoTWFya2V0cyc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2ZldGNoTWFya09ITENWJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ2ZldGNoT3BlbkludGVyZXN0SGlzdG9yeSc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICdmZXRjaE9wZW5PcmRlcnMnOiB0cnVlLFxuICAgICAgICAgICAgICAgICdmZXRjaE9yZGVyQm9vayc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2ZldGNoUHJlbWl1bUluZGV4T0hMQ1YnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAnZmV0Y2hUaWNrZXInOiB0cnVlLFxuICAgICAgICAgICAgICAgICdmZXRjaFRyYWRlcyc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ2ZldGNoVHJhZGluZ0ZlZSc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICdmZXRjaFRyYWRpbmdGZWVzJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgJ3dpdGhkcmF3JzogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAndXJscyc6IHtcbiAgICAgICAgICAgICAgICAnbG9nbyc6ICdodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xMjk0NDU0LzI3NzY2OTI3LTM5Y2EyYWRhLTVlZWItMTFlNy05NzJmLTFiNDE5OTUxOGNhNi5qcGcnLFxuICAgICAgICAgICAgICAgICdhcGknOiB7XG4gICAgICAgICAgICAgICAgICAgICdyZXN0JzogJ2h0dHBzOi8vYXBpLnphaWYuanAnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ3d3dyc6ICdodHRwczovL3phaWYuanAnLFxuICAgICAgICAgICAgICAgICdkb2MnOiBbXG4gICAgICAgICAgICAgICAgICAgICdodHRwczovL3RlY2hidXJlYXUtYXBpLWRvY3VtZW50LnJlYWR0aGVkb2NzLmlvL2phL2xhdGVzdC9pbmRleC5odG1sJyxcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vY29ycC56YWlmLmpwL2FwaS1kb2NzJyxcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vY29ycC56YWlmLmpwL2FwaS1kb2NzL2FwaV9saW5rcycsXG4gICAgICAgICAgICAgICAgICAgICdodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS96YWlmLmpwJyxcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS95b3UyMTk3OS9ub2RlLXphaWYnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgJ2ZlZXMnOiAnaHR0cHM6Ly96YWlmLmpwL2ZlZT9sYW5nPWVuJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnZmVlcyc6IHtcbiAgICAgICAgICAgICAgICAndHJhZGluZyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3BlcmNlbnRhZ2UnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAndGFrZXInOiB0aGlzLnBhcnNlTnVtYmVyICgnMC4wMDEnKSxcbiAgICAgICAgICAgICAgICAgICAgJ21ha2VyJzogdGhpcy5wYXJzZU51bWJlciAoJzAnKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdhcGknOiB7XG4gICAgICAgICAgICAgICAgJ3B1YmxpYyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJ2dldCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdkZXB0aC97cGFpcn0nOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbmNpZXMve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW5jaWVzL2FsbCc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVuY3lfcGFpcnMve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW5jeV9wYWlycy9hbGwnOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2xhc3RfcHJpY2Uve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0aWNrZXIve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0cmFkZXMve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdwcml2YXRlJzoge1xuICAgICAgICAgICAgICAgICAgICAncG9zdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmVfb3JkZXJzJzogNSwgLy8gMTAgaW4gNSBzZWNvbmRzID0gMiBwZXIgc2Vjb25kID0+IGNvc3QgPSAxMCAvIDIgPSA1XG4gICAgICAgICAgICAgICAgICAgICAgICAnY2FuY2VsX29yZGVyJzogNSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdkZXBvc2l0X2hpc3RvcnknOiA1LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9pZF9pbmZvJzogNSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfaW5mbyc6IDEwLCAvLyAxMCBpbiAxMCBzZWNvbmRzID0gMSBwZXIgc2Vjb25kID0+IGNvc3QgPSAxMCAvIDEgPSAxMFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9pbmZvMic6IDUsIC8vIDIwIGluIDEwIHNlY29uZHMgPSAyIHBlciBzZWNvbmQgPT4gY29zdCA9IDEwIC8gMiA9IDVcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfcGVyc29uYWxfaW5mbyc6IDUsXG4gICAgICAgICAgICAgICAgICAgICAgICAndHJhZGUnOiA1LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYWRlX2hpc3RvcnknOiA1MCwgLy8gMTIgaW4gNjAgc2Vjb25kcyA9IDAuMiBwZXIgc2Vjb25kID0+IGNvc3QgPSAxMCAvIDAuMiA9IDUwXG4gICAgICAgICAgICAgICAgICAgICAgICAnd2l0aGRyYXcnOiA1LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3dpdGhkcmF3X2hpc3RvcnknOiA1LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2VjYXBpJzoge1xuICAgICAgICAgICAgICAgICAgICAncG9zdCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGVJbnZvaWNlJzogMSwgLy8gdW52ZXJpZmllZFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dldEludm9pY2UnOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dldEludm9pY2VJZHNCeU9yZGVyTnVtYmVyJzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdjYW5jZWxJbnZvaWNlJzogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICd0bGFwaSc6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3Bvc3QnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3Bvc2l0aW9ucyc6IDY2LCAvLyAxMCBpbiA2MCBzZWNvbmRzID0gMC4xNjYgcGVyIHNlY29uZCA9PiBjb3N0ID0gMTAgLyAwLjE2NiA9IDY2XG4gICAgICAgICAgICAgICAgICAgICAgICAncG9zaXRpb25faGlzdG9yeSc6IDY2LCAvLyAxMCBpbiA2MCBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlX3Bvc2l0aW9ucyc6IDUsIC8vIDIwIGluIDEwIHNlY29uZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGVfcG9zaXRpb24nOiAzMywgLy8gMyBpbiAxMCBzZWNvbmRzID0gMC4zIHBlciBzZWNvbmQgPT4gY29zdCA9IDEwIC8gMC4zID0gMzNcbiAgICAgICAgICAgICAgICAgICAgICAgICdjaGFuZ2VfcG9zaXRpb24nOiAzMywgLy8gMyBpbiAxMCBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAnY2FuY2VsX3Bvc2l0aW9uJzogMzMsIC8vIDMgaW4gMTAgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2ZhcGknOiB7XG4gICAgICAgICAgICAgICAgICAgICdnZXQnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXBzL3tncm91cF9pZH0nOiAxLCAvLyB0ZXN0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAnbGFzdF9wcmljZS97Z3JvdXBfaWR9L3twYWlyfSc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAndGlja2VyL3tncm91cF9pZH0ve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0cmFkZXMve2dyb3VwX2lkfS97cGFpcn0nOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RlcHRoL3tncm91cF9pZH0ve3BhaXJ9JzogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdvcHRpb25zJzoge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdwcmVjaXNpb25Nb2RlJzogVElDS19TSVpFLFxuICAgICAgICAgICAgJ2V4Y2VwdGlvbnMnOiB7XG4gICAgICAgICAgICAgICAgJ2V4YWN0Jzoge1xuICAgICAgICAgICAgICAgICAgICAndW5zdXBwb3J0ZWQgY3VycmVuY3lfcGFpcic6IEJhZFJlcXVlc3QsIC8vIHtcImVycm9yXCI6IFwidW5zdXBwb3J0ZWQgY3VycmVuY3lfcGFpclwifVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2Jyb2FkJzoge1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBmZXRjaE1hcmtldHMgKHBhcmFtcyA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBuYW1lIHphaWYjZmV0Y2hNYXJrZXRzXG4gICAgICAgICAqIEBzZWUgaHR0cHM6Ly96YWlmLWFwaS1kb2N1bWVudC5yZWFkdGhlZG9jcy5pby9qYS9sYXRlc3QvUHVibGljQVBJLmh0bWwjaWQxMlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gcmV0cmlldmVzIGRhdGEgb24gYWxsIG1hcmtldHMgZm9yIHphaWZcbiAgICAgICAgICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIGV4dHJhIHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gdGhlIGV4Y2hhbmdlIEFQSSBlbmRwb2ludFxuICAgICAgICAgKiBAcmV0dXJucyB7b2JqZWN0W119IGFuIGFycmF5IG9mIG9iamVjdHMgcmVwcmVzZW50aW5nIG1hcmtldCBkYXRhXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBtYXJrZXRzID0gYXdhaXQgdGhpcy5wdWJsaWNHZXRDdXJyZW5jeVBhaXJzQWxsIChwYXJhbXMpO1xuICAgICAgICAvL1xuICAgICAgICAvLyAgICAgW1xuICAgICAgICAvLyAgICAgICAgIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJhdXhfdW5pdF9wb2ludFwiOiAwLFxuICAgICAgICAvLyAgICAgICAgICAgICBcIml0ZW1famFwYW5lc2VcIjogXCJcXHUzMGQzXFx1MzBjM1xcdTMwYzhcXHUzMGIzXFx1MzBhNFxcdTMwZjNcIixcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJhdXhfdW5pdF9zdGVwXCI6IDUuMCxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlxcdTMwZDNcXHUzMGMzXFx1MzBjOFxcdTMwYjNcXHUzMGE0XFx1MzBmM1xcdTMwZmJcXHU2NWU1XFx1NjcyY1xcdTUxODZcXHUzMDZlXFx1NTNkNlxcdTVmMTVcXHUzMDkyXFx1ODg0Y1xcdTMwNDZcXHUzMDUzXFx1MzA2OFxcdTMwNGNcXHUzMDY3XFx1MzA0ZFxcdTMwN2VcXHUzMDU5XCIsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiaXRlbV91bml0X21pblwiOiAwLjAwMSxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJldmVudF9udW1iZXJcIjogMCxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJjdXJyZW5jeV9wYWlyXCI6IFwiYnRjX2pweVwiLFxuICAgICAgICAvLyAgICAgICAgICAgICBcImlzX3Rva2VuXCI6IGZhbHNlLFxuICAgICAgICAvLyAgICAgICAgICAgICBcImF1eF91bml0X21pblwiOiA1LjAsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiYXV4X2phcGFuZXNlXCI6IFwiXFx1NjVlNVxcdTY3MmNcXHU1MTg2XCIsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiaWRcIjogMSxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJpdGVtX3VuaXRfc3RlcFwiOiAwLjAwMDEsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwibmFtZVwiOiBcIkJUQy9KUFlcIixcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJzZXFcIjogMCxcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJ0aXRsZVwiOiBcIkJUQy9KUFlcIlxuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIF1cbiAgICAgICAgLy9cbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VNYXJrZXRzIChtYXJrZXRzKTtcbiAgICB9XG5cbiAgICBwYXJzZU1hcmtldCAobWFya2V0KTogTWFya2V0IHtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLnNhZmVTdHJpbmcgKG1hcmtldCwgJ2N1cnJlbmN5X3BhaXInKTtcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuc2FmZVN0cmluZyAobWFya2V0LCAnbmFtZScpO1xuICAgICAgICBjb25zdCBbIGJhc2VJZCwgcXVvdGVJZCBdID0gbmFtZS5zcGxpdCAoJy8nKTtcbiAgICAgICAgY29uc3QgYmFzZSA9IHRoaXMuc2FmZUN1cnJlbmN5Q29kZSAoYmFzZUlkKTtcbiAgICAgICAgY29uc3QgcXVvdGUgPSB0aGlzLnNhZmVDdXJyZW5jeUNvZGUgKHF1b3RlSWQpO1xuICAgICAgICBjb25zdCBzeW1ib2wgPSBiYXNlICsgJy8nICsgcXVvdGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnaWQnOiBpZCxcbiAgICAgICAgICAgICdzeW1ib2wnOiBzeW1ib2wsXG4gICAgICAgICAgICAnYmFzZSc6IGJhc2UsXG4gICAgICAgICAgICAncXVvdGUnOiBxdW90ZSxcbiAgICAgICAgICAgICdzZXR0bGUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnYmFzZUlkJzogYmFzZUlkLFxuICAgICAgICAgICAgJ3F1b3RlSWQnOiBxdW90ZUlkLFxuICAgICAgICAgICAgJ3NldHRsZUlkJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3R5cGUnOiAnc3BvdCcsXG4gICAgICAgICAgICAnc3BvdCc6IHRydWUsXG4gICAgICAgICAgICAnbWFyZ2luJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3N3YXAnOiBmYWxzZSxcbiAgICAgICAgICAgICdmdXR1cmUnOiBmYWxzZSxcbiAgICAgICAgICAgICdvcHRpb24nOiBmYWxzZSxcbiAgICAgICAgICAgICdhY3RpdmUnOiB1bmRlZmluZWQsIC8vIGNhbiB0cmFkZSBvciBub3RcbiAgICAgICAgICAgICdjb250cmFjdCc6IGZhbHNlLFxuICAgICAgICAgICAgJ2xpbmVhcic6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdpbnZlcnNlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ2NvbnRyYWN0U2l6ZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdleHBpcnknOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnZXhwaXJ5RGF0ZXRpbWUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnc3RyaWtlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ29wdGlvblR5cGUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAncHJlY2lzaW9uJzoge1xuICAgICAgICAgICAgICAgICdhbW91bnQnOiB0aGlzLnNhZmVOdW1iZXIgKG1hcmtldCwgJ2l0ZW1fdW5pdF9zdGVwJyksXG4gICAgICAgICAgICAgICAgJ3ByaWNlJzogdGhpcy5wYXJzZU51bWJlciAodGhpcy5wYXJzZVByZWNpc2lvbiAodGhpcy5zYWZlU3RyaW5nIChtYXJrZXQsICdhdXhfdW5pdF9wb2ludCcpKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ2xpbWl0cyc6IHtcbiAgICAgICAgICAgICAgICAnbGV2ZXJhZ2UnOiB7XG4gICAgICAgICAgICAgICAgICAgICdtaW4nOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICdtYXgnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnYW1vdW50Jzoge1xuICAgICAgICAgICAgICAgICAgICAnbWluJzogdGhpcy5zYWZlTnVtYmVyIChtYXJrZXQsICdpdGVtX3VuaXRfbWluJyksXG4gICAgICAgICAgICAgICAgICAgICdtYXgnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAncHJpY2UnOiB7XG4gICAgICAgICAgICAgICAgICAgICdtaW4nOiB0aGlzLnNhZmVOdW1iZXIgKG1hcmtldCwgJ2F1eF91bml0X21pbicpLFxuICAgICAgICAgICAgICAgICAgICAnbWF4JzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2Nvc3QnOiB7XG4gICAgICAgICAgICAgICAgICAgICdtaW4nOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICdtYXgnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnY3JlYXRlZCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdpbmZvJzogbWFya2V0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHBhcnNlQmFsYW5jZSAocmVzcG9uc2UpOiBCYWxhbmNlcyB7XG4gICAgICAgIGNvbnN0IGJhbGFuY2VzID0gdGhpcy5zYWZlVmFsdWUgKHJlc3BvbnNlLCAncmV0dXJuJywge30pO1xuICAgICAgICBjb25zdCBkZXBvc2l0ID0gdGhpcy5zYWZlVmFsdWUgKGJhbGFuY2VzLCAnZGVwb3NpdCcpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgICAnaW5mbyc6IHJlc3BvbnNlLFxuICAgICAgICAgICAgJ3RpbWVzdGFtcCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdkYXRldGltZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZnVuZHMgPSB0aGlzLnNhZmVWYWx1ZSAoYmFsYW5jZXMsICdmdW5kcycsIHt9KTtcbiAgICAgICAgY29uc3QgY3VycmVuY3lJZHMgPSBPYmplY3Qua2V5cyAoZnVuZHMpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGN1cnJlbmN5SWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW5jeUlkID0gY3VycmVuY3lJZHNbaV07XG4gICAgICAgICAgICBjb25zdCBjb2RlID0gdGhpcy5zYWZlQ3VycmVuY3lDb2RlIChjdXJyZW5jeUlkKTtcbiAgICAgICAgICAgIGNvbnN0IGJhbGFuY2UgPSB0aGlzLnNhZmVTdHJpbmcgKGZ1bmRzLCBjdXJyZW5jeUlkKTtcbiAgICAgICAgICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLmFjY291bnQgKCk7XG4gICAgICAgICAgICBhY2NvdW50WydmcmVlJ10gPSBiYWxhbmNlO1xuICAgICAgICAgICAgYWNjb3VudFsndG90YWwnXSA9IGJhbGFuY2U7XG4gICAgICAgICAgICBpZiAoZGVwb3NpdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbmN5SWQgaW4gZGVwb3NpdCkge1xuICAgICAgICAgICAgICAgICAgICBhY2NvdW50Wyd0b3RhbCddID0gdGhpcy5zYWZlU3RyaW5nIChkZXBvc2l0LCBjdXJyZW5jeUlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRbY29kZV0gPSBhY2NvdW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVCYWxhbmNlIChyZXN1bHQpO1xuICAgIH1cblxuICAgIGFzeW5jIGZldGNoQmFsYW5jZSAocGFyYW1zID0ge30pOiBQcm9taXNlPEJhbGFuY2VzPiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBuYW1lIHphaWYjZmV0Y2hCYWxhbmNlXG4gICAgICAgICAqIEBzZWUgaHR0cHM6Ly96YWlmLWFwaS1kb2N1bWVudC5yZWFkdGhlZG9jcy5pby9qYS9sYXRlc3QvVHJhZGluZ0FQSS5odG1sI2lkMTBcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIHF1ZXJ5IGZvciBiYWxhbmNlIGFuZCBnZXQgdGhlIGFtb3VudCBvZiBmdW5kcyBhdmFpbGFibGUgZm9yIHRyYWRpbmcgb3IgZnVuZHMgbG9ja2VkIGluIG9yZGVyc1xuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gZXh0cmEgcGFyYW1ldGVycyBzcGVjaWZpYyB0byB0aGUgZXhjaGFuZ2UgQVBJIGVuZHBvaW50XG4gICAgICAgICAqIEByZXR1cm5zIHtvYmplY3R9IGEgW2JhbGFuY2Ugc3RydWN0dXJlXXtAbGluayBodHRwczovL2RvY3MuY2N4dC5jb20vIy8/aWQ9YmFsYW5jZS1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucHJpdmF0ZVBvc3RHZXRJbmZvIChwYXJhbXMpO1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUJhbGFuY2UgKHJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICBhc3luYyBmZXRjaE9yZGVyQm9vayAoc3ltYm9sOiBzdHJpbmcsIGxpbWl0OiBJbnQgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9KTogUHJvbWlzZTxPcmRlckJvb2s+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNmZXRjaE9yZGVyQm9va1xuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vemFpZi1hcGktZG9jdW1lbnQucmVhZHRoZWRvY3MuaW8vamEvbGF0ZXN0L1B1YmxpY0FQSS5odG1sI2lkMzRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIGZldGNoZXMgaW5mb3JtYXRpb24gb24gb3BlbiBvcmRlcnMgd2l0aCBiaWQgKGJ1eSkgYW5kIGFzayAoc2VsbCkgcHJpY2VzLCB2b2x1bWVzIGFuZCBvdGhlciBkYXRhXG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzeW1ib2wgdW5pZmllZCBzeW1ib2wgb2YgdGhlIG1hcmtldCB0byBmZXRjaCB0aGUgb3JkZXIgYm9vayBmb3JcbiAgICAgICAgICogQHBhcmFtIHtpbnR9IFtsaW1pdF0gdGhlIG1heGltdW0gYW1vdW50IG9mIG9yZGVyIGJvb2sgZW50cmllcyB0byByZXR1cm5cbiAgICAgICAgICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIGV4dHJhIHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gdGhlIGV4Y2hhbmdlIEFQSSBlbmRwb2ludFxuICAgICAgICAgKiBAcmV0dXJucyB7b2JqZWN0fSBBIGRpY3Rpb25hcnkgb2YgW29yZGVyIGJvb2sgc3RydWN0dXJlc117QGxpbmsgaHR0cHM6Ly9kb2NzLmNjeHQuY29tLyMvP2lkPW9yZGVyLWJvb2stc3RydWN0dXJlfSBpbmRleGVkIGJ5IG1hcmtldCBzeW1ib2xzXG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBjb25zdCBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgICdwYWlyJzogbWFya2V0WydpZCddLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucHVibGljR2V0RGVwdGhQYWlyICh0aGlzLmV4dGVuZCAocmVxdWVzdCwgcGFyYW1zKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlT3JkZXJCb29rIChyZXNwb25zZSwgbWFya2V0WydzeW1ib2wnXSk7XG4gICAgfVxuXG4gICAgcGFyc2VUaWNrZXIgKHRpY2tlciwgbWFya2V0OiBNYXJrZXQgPSB1bmRlZmluZWQpOiBUaWNrZXIge1xuICAgICAgICAvL1xuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgICBcImxhc3RcIjogOWUtMDgsXG4gICAgICAgIC8vICAgICBcImhpZ2hcIjogMWUtMDcsXG4gICAgICAgIC8vICAgICBcImxvd1wiOiA5ZS0wOCxcbiAgICAgICAgLy8gICAgIFwidndhcFwiOiAwLjAsXG4gICAgICAgIC8vICAgICBcInZvbHVtZVwiOiAxMzUyNTAuMCxcbiAgICAgICAgLy8gICAgIFwiYmlkXCI6IDllLTA4LFxuICAgICAgICAvLyAgICAgXCJhc2tcIjogMWUtMDdcbiAgICAgICAgLy8gfVxuICAgICAgICAvL1xuICAgICAgICBjb25zdCBzeW1ib2wgPSB0aGlzLnNhZmVTeW1ib2wgKHVuZGVmaW5lZCwgbWFya2V0KTtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5taWxsaXNlY29uZHMgKCk7XG4gICAgICAgIGNvbnN0IHZ3YXAgPSB0aGlzLnNhZmVTdHJpbmcgKHRpY2tlciwgJ3Z3YXAnKTtcbiAgICAgICAgY29uc3QgYmFzZVZvbHVtZSA9IHRoaXMuc2FmZVN0cmluZyAodGlja2VyLCAndm9sdW1lJyk7XG4gICAgICAgIGNvbnN0IHF1b3RlVm9sdW1lID0gUHJlY2lzZS5zdHJpbmdNdWwgKGJhc2VWb2x1bWUsIHZ3YXApO1xuICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5zYWZlU3RyaW5nICh0aWNrZXIsICdsYXN0Jyk7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVUaWNrZXIgKHtcbiAgICAgICAgICAgICdzeW1ib2wnOiBzeW1ib2wsXG4gICAgICAgICAgICAndGltZXN0YW1wJzogdGltZXN0YW1wLFxuICAgICAgICAgICAgJ2RhdGV0aW1lJzogdGhpcy5pc284NjAxICh0aW1lc3RhbXApLFxuICAgICAgICAgICAgJ2hpZ2gnOiB0aGlzLnNhZmVTdHJpbmcgKHRpY2tlciwgJ2hpZ2gnKSxcbiAgICAgICAgICAgICdsb3cnOiB0aGlzLnNhZmVTdHJpbmcgKHRpY2tlciwgJ2xvdycpLFxuICAgICAgICAgICAgJ2JpZCc6IHRoaXMuc2FmZVN0cmluZyAodGlja2VyLCAnYmlkJyksXG4gICAgICAgICAgICAnYmlkVm9sdW1lJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ2Fzayc6IHRoaXMuc2FmZVN0cmluZyAodGlja2VyLCAnYXNrJyksXG4gICAgICAgICAgICAnYXNrVm9sdW1lJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3Z3YXAnOiB2d2FwLFxuICAgICAgICAgICAgJ29wZW4nOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnY2xvc2UnOiBsYXN0LFxuICAgICAgICAgICAgJ2xhc3QnOiBsYXN0LFxuICAgICAgICAgICAgJ3ByZXZpb3VzQ2xvc2UnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnY2hhbmdlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3BlcmNlbnRhZ2UnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnYXZlcmFnZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdiYXNlVm9sdW1lJzogYmFzZVZvbHVtZSxcbiAgICAgICAgICAgICdxdW90ZVZvbHVtZSc6IHF1b3RlVm9sdW1lLFxuICAgICAgICAgICAgJ2luZm8nOiB0aWNrZXIsXG4gICAgICAgIH0sIG1hcmtldCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZmV0Y2hUaWNrZXIgKHN5bWJvbDogc3RyaW5nLCBwYXJhbXMgPSB7fSk6IFByb21pc2U8VGlja2VyPiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBuYW1lIHphaWYjZmV0Y2hUaWNrZXJcbiAgICAgICAgICogQHNlZSBodHRwczovL3phaWYtYXBpLWRvY3VtZW50LnJlYWR0aGVkb2NzLmlvL2phL2xhdGVzdC9QdWJsaWNBUEkuaHRtbCNpZDIyXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBmZXRjaGVzIGEgcHJpY2UgdGlja2VyLCBhIHN0YXRpc3RpY2FsIGNhbGN1bGF0aW9uIHdpdGggdGhlIGluZm9ybWF0aW9uIGNhbGN1bGF0ZWQgb3ZlciB0aGUgcGFzdCAyNCBob3VycyBmb3IgYSBzcGVjaWZpYyBtYXJrZXRcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHN5bWJvbCB1bmlmaWVkIHN5bWJvbCBvZiB0aGUgbWFya2V0IHRvIGZldGNoIHRoZSB0aWNrZXIgZm9yXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBleHRyYSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoZSBleGNoYW5nZSBBUEkgZW5kcG9pbnRcbiAgICAgICAgICogQHJldHVybnMge29iamVjdH0gYSBbdGlja2VyIHN0cnVjdHVyZV17QGxpbmsgaHR0cHM6Ly9kb2NzLmNjeHQuY29tLyMvP2lkPXRpY2tlci1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBjb25zdCBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgICdwYWlyJzogbWFya2V0WydpZCddLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0aWNrZXIgPSBhd2FpdCB0aGlzLnB1YmxpY0dldFRpY2tlclBhaXIgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8ge1xuICAgICAgICAvLyAgICAgXCJsYXN0XCI6IDllLTA4LFxuICAgICAgICAvLyAgICAgXCJoaWdoXCI6IDFlLTA3LFxuICAgICAgICAvLyAgICAgXCJsb3dcIjogOWUtMDgsXG4gICAgICAgIC8vICAgICBcInZ3YXBcIjogMC4wLFxuICAgICAgICAvLyAgICAgXCJ2b2x1bWVcIjogMTM1MjUwLjAsXG4gICAgICAgIC8vICAgICBcImJpZFwiOiA5ZS0wOCxcbiAgICAgICAgLy8gICAgIFwiYXNrXCI6IDFlLTA3XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy9cbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VUaWNrZXIgKHRpY2tlciwgbWFya2V0KTtcbiAgICB9XG5cbiAgICBwYXJzZVRyYWRlICh0cmFkZSwgbWFya2V0OiBNYXJrZXQgPSB1bmRlZmluZWQpOiBUcmFkZSB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIGZldGNoVHJhZGVzIChwdWJsaWMpXG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICAge1xuICAgICAgICAvLyAgICAgICAgICBcImRhdGVcIjogMTY0ODU1OTQxNCxcbiAgICAgICAgLy8gICAgICAgICAgXCJwcmljZVwiOiA1ODgwMzc1LjAsXG4gICAgICAgIC8vICAgICAgICAgIFwiYW1vdW50XCI6IDAuMDE3LFxuICAgICAgICAvLyAgICAgICAgICBcInRpZFwiOiAxNzYxMjY1NTcsXG4gICAgICAgIC8vICAgICAgICAgIFwiY3VycmVuY3lfcGFpclwiOiBcImJ0Y19qcHlcIixcbiAgICAgICAgLy8gICAgICAgICAgXCJ0cmFkZV90eXBlXCI6IFwiYXNrXCJcbiAgICAgICAgLy8gICAgICB9XG4gICAgICAgIC8vXG4gICAgICAgIGxldCBzaWRlID0gdGhpcy5zYWZlU3RyaW5nICh0cmFkZSwgJ3RyYWRlX3R5cGUnKTtcbiAgICAgICAgc2lkZSA9IChzaWRlID09PSAnYmlkJykgPyAnYnV5JyA6ICdzZWxsJztcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5zYWZlVGltZXN0YW1wICh0cmFkZSwgJ2RhdGUnKTtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLnNhZmVTdHJpbmcyICh0cmFkZSwgJ2lkJywgJ3RpZCcpO1xuICAgICAgICBjb25zdCBwcmljZVN0cmluZyA9IHRoaXMuc2FmZVN0cmluZyAodHJhZGUsICdwcmljZScpO1xuICAgICAgICBjb25zdCBhbW91bnRTdHJpbmcgPSB0aGlzLnNhZmVTdHJpbmcgKHRyYWRlLCAnYW1vdW50Jyk7XG4gICAgICAgIGNvbnN0IG1hcmtldElkID0gdGhpcy5zYWZlU3RyaW5nICh0cmFkZSwgJ2N1cnJlbmN5X3BhaXInKTtcbiAgICAgICAgY29uc3Qgc3ltYm9sID0gdGhpcy5zYWZlU3ltYm9sIChtYXJrZXRJZCwgbWFya2V0LCAnXycpO1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlVHJhZGUgKHtcbiAgICAgICAgICAgICdpZCc6IGlkLFxuICAgICAgICAgICAgJ2luZm8nOiB0cmFkZSxcbiAgICAgICAgICAgICd0aW1lc3RhbXAnOiB0aW1lc3RhbXAsXG4gICAgICAgICAgICAnZGF0ZXRpbWUnOiB0aGlzLmlzbzg2MDEgKHRpbWVzdGFtcCksXG4gICAgICAgICAgICAnc3ltYm9sJzogc3ltYm9sLFxuICAgICAgICAgICAgJ3R5cGUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnc2lkZSc6IHNpZGUsXG4gICAgICAgICAgICAnb3JkZXInOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndGFrZXJPck1ha2VyJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3ByaWNlJzogcHJpY2VTdHJpbmcsXG4gICAgICAgICAgICAnYW1vdW50JzogYW1vdW50U3RyaW5nLFxuICAgICAgICAgICAgJ2Nvc3QnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnZmVlJzogdW5kZWZpbmVkLFxuICAgICAgICB9LCBtYXJrZXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGZldGNoVHJhZGVzIChzeW1ib2w6IHN0cmluZywgc2luY2U6IEludCA9IHVuZGVmaW5lZCwgbGltaXQ6IEludCA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30pOiBQcm9taXNlPFRyYWRlW10+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNmZXRjaFRyYWRlc1xuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vemFpZi1hcGktZG9jdW1lbnQucmVhZHRoZWRvY3MuaW8vamEvbGF0ZXN0L1B1YmxpY0FQSS5odG1sI2lkMjhcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIGdldCB0aGUgbGlzdCBvZiBtb3N0IHJlY2VudCB0cmFkZXMgZm9yIGEgcGFydGljdWxhciBzeW1ib2xcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHN5bWJvbCB1bmlmaWVkIHN5bWJvbCBvZiB0aGUgbWFya2V0IHRvIGZldGNoIHRyYWRlcyBmb3JcbiAgICAgICAgICogQHBhcmFtIHtpbnR9IFtzaW5jZV0gdGltZXN0YW1wIGluIG1zIG9mIHRoZSBlYXJsaWVzdCB0cmFkZSB0byBmZXRjaFxuICAgICAgICAgKiBAcGFyYW0ge2ludH0gW2xpbWl0XSB0aGUgbWF4aW11bSBhbW91bnQgb2YgdHJhZGVzIHRvIGZldGNoXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBleHRyYSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoZSBleGNoYW5nZSBBUEkgZW5kcG9pbnRcbiAgICAgICAgICogQHJldHVybnMge1RyYWRlW119IGEgbGlzdCBvZiBbdHJhZGUgc3RydWN0dXJlc117QGxpbmsgaHR0cHM6Ly9kb2NzLmNjeHQuY29tLyMvP2lkPXB1YmxpYy10cmFkZXN9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBjb25zdCBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgICdwYWlyJzogbWFya2V0WydpZCddLFxuICAgICAgICB9O1xuICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnB1YmxpY0dldFRyYWRlc1BhaXIgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAgICBbXG4gICAgICAgIC8vICAgICAgICAgIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgIFwiZGF0ZVwiOiAxNjQ4NTU5NDE0LFxuICAgICAgICAvLyAgICAgICAgICAgICAgXCJwcmljZVwiOiA1ODgwMzc1LjAsXG4gICAgICAgIC8vICAgICAgICAgICAgICBcImFtb3VudFwiOiAwLjAxNyxcbiAgICAgICAgLy8gICAgICAgICAgICAgIFwidGlkXCI6IDE3NjEyNjU1NyxcbiAgICAgICAgLy8gICAgICAgICAgICAgIFwiY3VycmVuY3lfcGFpclwiOiBcImJ0Y19qcHlcIixcbiAgICAgICAgLy8gICAgICAgICAgICAgIFwidHJhZGVfdHlwZVwiOiBcImFza1wiXG4gICAgICAgIC8vICAgICAgICAgIH0sIC4uLlxuICAgICAgICAvLyAgICAgIF1cbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgbnVtVHJhZGVzID0gcmVzcG9uc2UubGVuZ3RoO1xuICAgICAgICBpZiAobnVtVHJhZGVzID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFRyYWRlID0gcmVzcG9uc2VbMF07XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzIChmaXJzdFRyYWRlKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlVHJhZGVzIChyZXNwb25zZSwgbWFya2V0LCBzaW5jZSwgbGltaXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGNyZWF0ZU9yZGVyIChzeW1ib2w6IHN0cmluZywgdHlwZTogT3JkZXJUeXBlLCBzaWRlOiBPcmRlclNpZGUsIGFtb3VudCwgcHJpY2UgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWV0aG9kXG4gICAgICAgICAqIEBuYW1lIHphaWYjY3JlYXRlT3JkZXJcbiAgICAgICAgICogQHNlZSBodHRwczovL3phaWYtYXBpLWRvY3VtZW50LnJlYWR0aGVkb2NzLmlvL2phL2xhdGVzdC9NYXJnaW5UcmFkaW5nQVBJLmh0bWwjaWQyM1xuICAgICAgICAgKiBAZGVzY3JpcHRpb24gY3JlYXRlIGEgdHJhZGUgb3JkZXJcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHN5bWJvbCB1bmlmaWVkIHN5bWJvbCBvZiB0aGUgbWFya2V0IHRvIGNyZWF0ZSBhbiBvcmRlciBpblxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBtdXN0IGJlICdsaW1pdCdcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNpZGUgJ2J1eScgb3IgJ3NlbGwnXG4gICAgICAgICAqIEBwYXJhbSB7ZmxvYXR9IGFtb3VudCBob3cgbXVjaCBvZiBjdXJyZW5jeSB5b3Ugd2FudCB0byB0cmFkZSBpbiB1bml0cyBvZiBiYXNlIGN1cnJlbmN5XG4gICAgICAgICAqIEBwYXJhbSB7ZmxvYXR9IFtwcmljZV0gdGhlIHByaWNlIGF0IHdoaWNoIHRoZSBvcmRlciBpcyB0byBiZSBmdWxsZmlsbGVkLCBpbiB1bml0cyBvZiB0aGUgcXVvdGUgY3VycmVuY3ksIGlnbm9yZWQgaW4gbWFya2V0IG9yZGVyc1xuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gZXh0cmEgcGFyYW1ldGVycyBzcGVjaWZpYyB0byB0aGUgZXhjaGFuZ2UgQVBJIGVuZHBvaW50XG4gICAgICAgICAqIEByZXR1cm5zIHtvYmplY3R9IGFuIFtvcmRlciBzdHJ1Y3R1cmVde0BsaW5rIGh0dHBzOi8vZG9jcy5jY3h0LmNvbS8jLz9pZD1vcmRlci1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBpZiAodHlwZSAhPT0gJ2xpbWl0Jykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2hhbmdlRXJyb3IgKHRoaXMuaWQgKyAnIGNyZWF0ZU9yZGVyKCkgYWxsb3dzIGxpbWl0IG9yZGVycyBvbmx5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWFya2V0ID0gdGhpcy5tYXJrZXQgKHN5bWJvbCk7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgICAgICAnY3VycmVuY3lfcGFpcic6IG1hcmtldFsnaWQnXSxcbiAgICAgICAgICAgICdhY3Rpb24nOiAoc2lkZSA9PT0gJ2J1eScpID8gJ2JpZCcgOiAnYXNrJyxcbiAgICAgICAgICAgICdhbW91bnQnOiBhbW91bnQsXG4gICAgICAgICAgICAncHJpY2UnOiBwcmljZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnByaXZhdGVQb3N0VHJhZGUgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FmZU9yZGVyICh7XG4gICAgICAgICAgICAnaW5mbyc6IHJlc3BvbnNlLFxuICAgICAgICAgICAgJ2lkJzogcmVzcG9uc2VbJ3JldHVybiddWydvcmRlcl9pZCddLnRvU3RyaW5nICgpLFxuICAgICAgICB9LCBtYXJrZXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGNhbmNlbE9yZGVyIChpZDogc3RyaW5nLCBzeW1ib2w6IFN0ciA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNjYW5jZWxPcmRlclxuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vemFpZi1hcGktZG9jdW1lbnQucmVhZHRoZWRvY3MuaW8vamEvbGF0ZXN0L1RyYWRpbmdBUEkuaHRtbCNpZDM3XG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBjYW5jZWxzIGFuIG9wZW4gb3JkZXJcbiAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGlkIG9yZGVyIGlkXG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzeW1ib2wgbm90IHVzZWQgYnkgemFpZiBjYW5jZWxPcmRlciAoKVxuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gZXh0cmEgcGFyYW1ldGVycyBzcGVjaWZpYyB0byB0aGUgZXhjaGFuZ2UgQVBJIGVuZHBvaW50XG4gICAgICAgICAqIEByZXR1cm5zIHtvYmplY3R9IEFuIFtvcmRlciBzdHJ1Y3R1cmVde0BsaW5rIGh0dHBzOi8vZG9jcy5jY3h0LmNvbS8jLz9pZD1vcmRlci1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICAgICAgJ29yZGVyX2lkJzogaWQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByaXZhdGVQb3N0Q2FuY2VsT3JkZXIgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICB9XG5cbiAgICBwYXJzZU9yZGVyIChvcmRlciwgbWFya2V0OiBNYXJrZXQgPSB1bmRlZmluZWQpOiBPcmRlciB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICB7XG4gICAgICAgIC8vICAgICAgICAgXCJjdXJyZW5jeV9wYWlyXCI6IFwiYnRjX2pweVwiLFxuICAgICAgICAvLyAgICAgICAgIFwiYWN0aW9uXCI6IFwiYXNrXCIsXG4gICAgICAgIC8vICAgICAgICAgXCJhbW91bnRcIjogMC4wMyxcbiAgICAgICAgLy8gICAgICAgICBcInByaWNlXCI6IDU2MDAwLFxuICAgICAgICAvLyAgICAgICAgIFwidGltZXN0YW1wXCI6IDE0MDIwMjExMjUsXG4gICAgICAgIC8vICAgICAgICAgXCJjb21tZW50XCIgOiBcImRlbW9cIlxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvL1xuICAgICAgICBsZXQgc2lkZSA9IHRoaXMuc2FmZVN0cmluZyAob3JkZXIsICdhY3Rpb24nKTtcbiAgICAgICAgc2lkZSA9IChzaWRlID09PSAnYmlkJykgPyAnYnV5JyA6ICdzZWxsJztcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5zYWZlVGltZXN0YW1wIChvcmRlciwgJ3RpbWVzdGFtcCcpO1xuICAgICAgICBjb25zdCBtYXJrZXRJZCA9IHRoaXMuc2FmZVN0cmluZyAob3JkZXIsICdjdXJyZW5jeV9wYWlyJyk7XG4gICAgICAgIGNvbnN0IHN5bWJvbCA9IHRoaXMuc2FmZVN5bWJvbCAobWFya2V0SWQsIG1hcmtldCwgJ18nKTtcbiAgICAgICAgY29uc3QgcHJpY2UgPSB0aGlzLnNhZmVTdHJpbmcgKG9yZGVyLCAncHJpY2UnKTtcbiAgICAgICAgY29uc3QgYW1vdW50ID0gdGhpcy5zYWZlU3RyaW5nIChvcmRlciwgJ2Ftb3VudCcpO1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuc2FmZVN0cmluZyAob3JkZXIsICdpZCcpO1xuICAgICAgICByZXR1cm4gdGhpcy5zYWZlT3JkZXIgKHtcbiAgICAgICAgICAgICdpZCc6IGlkLFxuICAgICAgICAgICAgJ2NsaWVudE9yZGVySWQnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndGltZXN0YW1wJzogdGltZXN0YW1wLFxuICAgICAgICAgICAgJ2RhdGV0aW1lJzogdGhpcy5pc284NjAxICh0aW1lc3RhbXApLFxuICAgICAgICAgICAgJ2xhc3RUcmFkZVRpbWVzdGFtcCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdzdGF0dXMnOiAnb3BlbicsXG4gICAgICAgICAgICAnc3ltYm9sJzogc3ltYm9sLFxuICAgICAgICAgICAgJ3R5cGUnOiAnbGltaXQnLFxuICAgICAgICAgICAgJ3RpbWVJbkZvcmNlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3Bvc3RPbmx5JzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3NpZGUnOiBzaWRlLFxuICAgICAgICAgICAgJ3ByaWNlJzogcHJpY2UsXG4gICAgICAgICAgICAnc3RvcFByaWNlJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3RyaWdnZXJQcmljZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdjb3N0JzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ2Ftb3VudCc6IGFtb3VudCxcbiAgICAgICAgICAgICdmaWxsZWQnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAncmVtYWluaW5nJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3RyYWRlcyc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdmZWUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnaW5mbyc6IG9yZGVyLFxuICAgICAgICAgICAgJ2F2ZXJhZ2UnOiB1bmRlZmluZWQsXG4gICAgICAgIH0sIG1hcmtldCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZmV0Y2hPcGVuT3JkZXJzIChzeW1ib2w6IFN0ciA9IHVuZGVmaW5lZCwgc2luY2U6IEludCA9IHVuZGVmaW5lZCwgbGltaXQ6IEludCA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30pOiBQcm9taXNlPE9yZGVyW10+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNmZXRjaE9wZW5PcmRlcnNcbiAgICAgICAgICogQHNlZSBodHRwczovL3phaWYtYXBpLWRvY3VtZW50LnJlYWR0aGVkb2NzLmlvL2phL2xhdGVzdC9NYXJnaW5UcmFkaW5nQVBJLmh0bWwjaWQyOFxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gZmV0Y2ggYWxsIHVuZmlsbGVkIGN1cnJlbnRseSBvcGVuIG9yZGVyc1xuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3ltYm9sIHVuaWZpZWQgbWFya2V0IHN5bWJvbFxuICAgICAgICAgKiBAcGFyYW0ge2ludH0gW3NpbmNlXSB0aGUgZWFybGllc3QgdGltZSBpbiBtcyB0byBmZXRjaCBvcGVuIG9yZGVycyBmb3JcbiAgICAgICAgICogQHBhcmFtIHtpbnR9IFtsaW1pdF0gdGhlIG1heGltdW0gbnVtYmVyIG9mICBvcGVuIG9yZGVycyBzdHJ1Y3R1cmVzIHRvIHJldHJpZXZlXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBleHRyYSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoZSBleGNoYW5nZSBBUEkgZW5kcG9pbnRcbiAgICAgICAgICogQHJldHVybnMge09yZGVyW119IGEgbGlzdCBvZiBbb3JkZXIgc3RydWN0dXJlc117QGxpbmsgaHR0cHM6Ly9kb2NzLmNjeHQuY29tLyMvP2lkPW9yZGVyLXN0cnVjdHVyZX1cbiAgICAgICAgICovXG4gICAgICAgIGF3YWl0IHRoaXMubG9hZE1hcmtldHMgKCk7XG4gICAgICAgIGxldCBtYXJrZXQ6IE1hcmtldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgIC8vICdpc190b2tlbic6IGZhbHNlLFxuICAgICAgICAgICAgLy8gJ2lzX3Rva2VuX2JvdGgnOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgICAgIHJlcXVlc3RbJ2N1cnJlbmN5X3BhaXInXSA9IG1hcmtldFsnaWQnXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucHJpdmF0ZVBvc3RBY3RpdmVPcmRlcnMgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VPcmRlcnMgKHJlc3BvbnNlWydyZXR1cm4nXSwgbWFya2V0LCBzaW5jZSwgbGltaXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGZldGNoQ2xvc2VkT3JkZXJzIChzeW1ib2w6IFN0ciA9IHVuZGVmaW5lZCwgc2luY2U6IEludCA9IHVuZGVmaW5lZCwgbGltaXQ6IEludCA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30pOiBQcm9taXNlPE9yZGVyW10+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZXRob2RcbiAgICAgICAgICogQG5hbWUgemFpZiNmZXRjaENsb3NlZE9yZGVyc1xuICAgICAgICAgKiBAc2VlIGh0dHBzOi8vemFpZi1hcGktZG9jdW1lbnQucmVhZHRoZWRvY3MuaW8vamEvbGF0ZXN0L1RyYWRpbmdBUEkuaHRtbCNpZDI0XG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBmZXRjaGVzIGluZm9ybWF0aW9uIG9uIG11bHRpcGxlIGNsb3NlZCBvcmRlcnMgbWFkZSBieSB0aGUgdXNlclxuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3ltYm9sIHVuaWZpZWQgbWFya2V0IHN5bWJvbCBvZiB0aGUgbWFya2V0IG9yZGVycyB3ZXJlIG1hZGUgaW5cbiAgICAgICAgICogQHBhcmFtIHtpbnR9IFtzaW5jZV0gdGhlIGVhcmxpZXN0IHRpbWUgaW4gbXMgdG8gZmV0Y2ggb3JkZXJzIGZvclxuICAgICAgICAgKiBAcGFyYW0ge2ludH0gW2xpbWl0XSB0aGUgbWF4aW11bSBudW1iZXIgb2YgIG9yZGUgc3RydWN0dXJlcyB0byByZXRyaWV2ZVxuICAgICAgICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gZXh0cmEgcGFyYW1ldGVycyBzcGVjaWZpYyB0byB0aGUgZXhjaGFuZ2UgQVBJIGVuZHBvaW50XG4gICAgICAgICAqIEByZXR1cm5zIHtPcmRlcltdfSBhIGxpc3Qgb2YgW29yZGVyIHN0cnVjdHVyZXNde0BsaW5rIGh0dHBzOi8vZG9jcy5jY3h0LmNvbS8jLz9pZD1vcmRlci1zdHJ1Y3R1cmV9XG4gICAgICAgICAqL1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRNYXJrZXRzICgpO1xuICAgICAgICBsZXQgbWFya2V0OiBNYXJrZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgICAgICAvLyAnZnJvbSc6IDAsXG4gICAgICAgICAgICAvLyAnY291bnQnOiAxMDAwLFxuICAgICAgICAgICAgLy8gJ2Zyb21faWQnOiAwLFxuICAgICAgICAgICAgLy8gJ2VuZF9pZCc6IDEwMDAsXG4gICAgICAgICAgICAvLyAnb3JkZXInOiAnREVTQycsXG4gICAgICAgICAgICAvLyAnc2luY2UnOiAxNTAzODIxMDUxLFxuICAgICAgICAgICAgLy8gJ2VuZCc6IDE1MDM4MjEwNTEsXG4gICAgICAgICAgICAvLyAnaXNfdG9rZW4nOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtYXJrZXQgPSB0aGlzLm1hcmtldCAoc3ltYm9sKTtcbiAgICAgICAgICAgIHJlcXVlc3RbJ2N1cnJlbmN5X3BhaXInXSA9IG1hcmtldFsnaWQnXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucHJpdmF0ZVBvc3RUcmFkZUhpc3RvcnkgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VPcmRlcnMgKHJlc3BvbnNlWydyZXR1cm4nXSwgbWFya2V0LCBzaW5jZSwgbGltaXQpO1xuICAgIH1cblxuICAgIGFzeW5jIHdpdGhkcmF3IChjb2RlOiBzdHJpbmcsIGFtb3VudCwgYWRkcmVzcywgdGFnID0gdW5kZWZpbmVkLCBwYXJhbXMgPSB7fSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQG1ldGhvZFxuICAgICAgICAgKiBAbmFtZSB6YWlmI3dpdGhkcmF3XG4gICAgICAgICAqIEBzZWUgaHR0cHM6Ly96YWlmLWFwaS1kb2N1bWVudC5yZWFkdGhlZG9jcy5pby9qYS9sYXRlc3QvVHJhZGluZ0FQSS5odG1sI2lkNDFcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIG1ha2UgYSB3aXRoZHJhd2FsXG4gICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb2RlIHVuaWZpZWQgY3VycmVuY3kgY29kZVxuICAgICAgICAgKiBAcGFyYW0ge2Zsb2F0fSBhbW91bnQgdGhlIGFtb3VudCB0byB3aXRoZHJhd1xuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWRkcmVzcyB0byB3aXRoZHJhdyB0b1xuICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnXG4gICAgICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbcGFyYW1zXSBleHRyYSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIHRoZSBleGNoYW5nZSBBUEkgZW5kcG9pbnRcbiAgICAgICAgICogQHJldHVybnMge29iamVjdH0gYSBbdHJhbnNhY3Rpb24gc3RydWN0dXJlXXtAbGluayBodHRwczovL2RvY3MuY2N4dC5jb20vIy8/aWQ9dHJhbnNhY3Rpb24tc3RydWN0dXJlfVxuICAgICAgICAgKi9cbiAgICAgICAgWyB0YWcsIHBhcmFtcyBdID0gdGhpcy5oYW5kbGVXaXRoZHJhd1RhZ0FuZFBhcmFtcyAodGFnLCBwYXJhbXMpO1xuICAgICAgICB0aGlzLmNoZWNrQWRkcmVzcyAoYWRkcmVzcyk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZE1hcmtldHMgKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5ID0gdGhpcy5jdXJyZW5jeSAoY29kZSk7XG4gICAgICAgIGlmIChjb2RlID09PSAnSlBZJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2hhbmdlRXJyb3IgKHRoaXMuaWQgKyAnIHdpdGhkcmF3KCkgZG9lcyBub3QgYWxsb3cgJyArIGNvZGUgKyAnIHdpdGhkcmF3YWxzJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgICdjdXJyZW5jeSc6IGN1cnJlbmN5WydpZCddLFxuICAgICAgICAgICAgJ2Ftb3VudCc6IGFtb3VudCxcbiAgICAgICAgICAgICdhZGRyZXNzJzogYWRkcmVzcyxcbiAgICAgICAgICAgIC8vICdtZXNzYWdlJzogJ0hpIScsIC8vIFhFTSBhbmQgb3RoZXJzXG4gICAgICAgICAgICAvLyAnb3B0X2ZlZSc6IDAuMDAzLCAvLyBCVEMgYW5kIE1PTkEgb25seVxuICAgICAgICB9O1xuICAgICAgICBpZiAodGFnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcXVlc3RbJ21lc3NhZ2UnXSA9IHRhZztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnByaXZhdGVQb3N0V2l0aGRyYXcgKHRoaXMuZXh0ZW5kIChyZXF1ZXN0LCBwYXJhbXMpKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAgIHtcbiAgICAgICAgLy8gICAgICAgICBcInN1Y2Nlc3NcIjogMSxcbiAgICAgICAgLy8gICAgICAgICBcInJldHVyblwiOiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIFwiaWRcIjogMjM2MzQsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiZmVlXCI6IDAuMDAxLFxuICAgICAgICAvLyAgICAgICAgICAgICBcInR4aWRcIjosXG4gICAgICAgIC8vICAgICAgICAgICAgIFwiZnVuZHNcIjoge1xuICAgICAgICAvLyAgICAgICAgICAgICAgICAgXCJqcHlcIjogMTUzMjAsXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICBcImJ0Y1wiOiAxLjM5MixcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIFwieGVtXCI6IDEwMC4yLFxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgXCJtb25hXCI6IDI2MDBcbiAgICAgICAgLy8gICAgICAgICAgICAgfVxuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgcmV0dXJuRGF0YSA9IHRoaXMuc2FmZVZhbHVlIChyZXN1bHQsICdyZXR1cm4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VUcmFuc2FjdGlvbiAocmV0dXJuRGF0YSwgY3VycmVuY3kpO1xuICAgIH1cblxuICAgIHBhcnNlVHJhbnNhY3Rpb24gKHRyYW5zYWN0aW9uLCBjdXJyZW5jeTogQ3VycmVuY3kgPSB1bmRlZmluZWQpOiBUcmFuc2FjdGlvbiB7XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICB7XG4gICAgICAgIC8vICAgICAgICAgXCJpZFwiOiAyMzYzNCxcbiAgICAgICAgLy8gICAgICAgICBcImZlZVwiOiAwLjAwMSxcbiAgICAgICAgLy8gICAgICAgICBcInR4aWRcIjosXG4gICAgICAgIC8vICAgICAgICAgXCJmdW5kc1wiOiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIFwianB5XCI6IDE1MzIwLFxuICAgICAgICAvLyAgICAgICAgICAgICBcImJ0Y1wiOiAxLjM5MixcbiAgICAgICAgLy8gICAgICAgICAgICAgXCJ4ZW1cIjogMTAwLjIsXG4gICAgICAgIC8vICAgICAgICAgICAgIFwibW9uYVwiOiAyNjAwXG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvL1xuICAgICAgICBjdXJyZW5jeSA9IHRoaXMuc2FmZUN1cnJlbmN5ICh1bmRlZmluZWQsIGN1cnJlbmN5KTtcbiAgICAgICAgbGV0IGZlZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmVlQ29zdCA9IHRoaXMuc2FmZVZhbHVlICh0cmFuc2FjdGlvbiwgJ2ZlZScpO1xuICAgICAgICBpZiAoZmVlQ29zdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmZWUgPSB7XG4gICAgICAgICAgICAgICAgJ2Nvc3QnOiBmZWVDb3N0LFxuICAgICAgICAgICAgICAgICdjdXJyZW5jeSc6IGN1cnJlbmN5Wydjb2RlJ10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnaWQnOiB0aGlzLnNhZmVTdHJpbmcgKHRyYW5zYWN0aW9uLCAnaWQnKSxcbiAgICAgICAgICAgICd0eGlkJzogdGhpcy5zYWZlU3RyaW5nICh0cmFuc2FjdGlvbiwgJ3R4aWQnKSxcbiAgICAgICAgICAgICd0aW1lc3RhbXAnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnZGF0ZXRpbWUnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnbmV0d29yayc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdhZGRyZXNzRnJvbSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdhZGRyZXNzJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ2FkZHJlc3NUbyc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdhbW91bnQnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndHlwZSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdjdXJyZW5jeSc6IGN1cnJlbmN5Wydjb2RlJ10sXG4gICAgICAgICAgICAnc3RhdHVzJzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJ3VwZGF0ZWQnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndGFnRnJvbSc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICd0YWcnOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAndGFnVG8nOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAnY29tbWVudCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdpbnRlcm5hbCc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdmZWUnOiBmZWUsXG4gICAgICAgICAgICAnaW5mbyc6IHRyYW5zYWN0aW9uLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGN1c3RvbU5vbmNlICgpIHtcbiAgICAgICAgY29uc3QgbnVtID0gKHRoaXMubWlsbGlzZWNvbmRzICgpIC8gMTAwMCkudG9TdHJpbmcgKCk7XG4gICAgICAgIGNvbnN0IG5vbmNlID0gcGFyc2VGbG9hdCAobnVtKTtcbiAgICAgICAgcmV0dXJuIG5vbmNlLnRvRml4ZWQgKDgpO1xuICAgIH1cblxuICAgIHNpZ24gKHBhdGgsIGFwaSA9ICdwdWJsaWMnLCBtZXRob2QgPSAnR0VUJywgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB1bmRlZmluZWQsIGJvZHkgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IHVybCA9IHRoaXMudXJsc1snYXBpJ11bJ3Jlc3QnXSArICcvJztcbiAgICAgICAgaWYgKGFwaSA9PT0gJ3B1YmxpYycpIHtcbiAgICAgICAgICAgIHVybCArPSAnYXBpLycgKyB0aGlzLnZlcnNpb24gKyAnLycgKyB0aGlzLmltcGxvZGVQYXJhbXMgKHBhdGgsIHBhcmFtcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXBpID09PSAnZmFwaScpIHtcbiAgICAgICAgICAgIHVybCArPSAnZmFwaS8nICsgdGhpcy52ZXJzaW9uICsgJy8nICsgdGhpcy5pbXBsb2RlUGFyYW1zIChwYXRoLCBwYXJhbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGVja1JlcXVpcmVkQ3JlZGVudGlhbHMgKCk7XG4gICAgICAgICAgICBpZiAoYXBpID09PSAnZWNhcGknKSB7XG4gICAgICAgICAgICAgICAgdXJsICs9ICdlY2FwaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFwaSA9PT0gJ3RsYXBpJykge1xuICAgICAgICAgICAgICAgIHVybCArPSAndGxhcGknO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cmwgKz0gJ3RhcGknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgbm9uY2UgPSB0aGlzLmN1c3RvbU5vbmNlICgpO1xuICAgICAgICAgICAgYm9keSA9IHRoaXMudXJsZW5jb2RlICh0aGlzLmV4dGVuZCAoe1xuICAgICAgICAgICAgICAgICdtZXRob2QnOiBwYXRoLFxuICAgICAgICAgICAgICAgICdub25jZSc6IG5vbmNlLFxuICAgICAgICAgICAgfSwgcGFyYW1zKSk7XG4gICAgICAgICAgICBoZWFkZXJzID0ge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICAgICAgICAgICAgICAnS2V5JzogdGhpcy5hcGlLZXksXG4gICAgICAgICAgICAgICAgJ1NpZ24nOiB0aGlzLmhtYWMgKHRoaXMuZW5jb2RlIChib2R5KSwgdGhpcy5lbmNvZGUgKHRoaXMuc2VjcmV0KSwgc2hhNTEyKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgJ3VybCc6IHVybCwgJ21ldGhvZCc6IG1ldGhvZCwgJ2JvZHknOiBib2R5LCAnaGVhZGVycyc6IGhlYWRlcnMgfTtcbiAgICB9XG5cbiAgICBoYW5kbGVFcnJvcnMgKGh0dHBDb2RlLCByZWFzb24sIHVybCwgbWV0aG9kLCBoZWFkZXJzLCBib2R5LCByZXNwb25zZSwgcmVxdWVzdEhlYWRlcnMsIHJlcXVlc3RCb2R5KSB7XG4gICAgICAgIGlmIChyZXNwb25zZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgICB7XCJlcnJvclwiOiBcInVuc3VwcG9ydGVkIGN1cnJlbmN5X3BhaXJcIn1cbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgZmVlZGJhY2sgPSB0aGlzLmlkICsgJyAnICsgYm9keTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLnNhZmVTdHJpbmcgKHJlc3BvbnNlLCAnZXJyb3InKTtcbiAgICAgICAgaWYgKGVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGhyb3dFeGFjdGx5TWF0Y2hlZEV4Y2VwdGlvbiAodGhpcy5leGNlcHRpb25zWydleGFjdCddLCBlcnJvciwgZmVlZGJhY2spO1xuICAgICAgICAgICAgdGhpcy50aHJvd0Jyb2FkbHlNYXRjaGVkRXhjZXB0aW9uICh0aGlzLmV4Y2VwdGlvbnNbJ2Jyb2FkJ10sIGVycm9yLCBmZWVkYmFjayk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXhjaGFuZ2VFcnJvciAoZmVlZGJhY2spOyAvLyB1bmtub3duIG1lc3NhZ2VcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWNjZXNzID0gdGhpcy5zYWZlVmFsdWUgKHJlc3BvbnNlLCAnc3VjY2VzcycsIHRydWUpO1xuICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFeGNoYW5nZUVycm9yIChmZWVkYmFjayk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXX0=
|
|
288203
|
+
|
|
288169
288204
|
/***/ })
|
|
288170
288205
|
|
|
288171
288206
|
/******/ });
|
|
@@ -288274,210 +288309,210 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
288274
288309
|
/* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_154__.O),
|
|
288275
288310
|
/* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_156__.RateLimitExceeded),
|
|
288276
288311
|
/* 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 */
|
|
288312
|
+
/* harmony export */ ace: () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_2__.Z),
|
|
288313
|
+
/* harmony export */ alpaca: () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_3__.Z),
|
|
288314
|
+
/* harmony export */ ascendex: () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_4__.Z),
|
|
288315
|
+
/* harmony export */ bequant: () => (/* reexport safe */ _src_bequant_js__WEBPACK_IMPORTED_MODULE_5__.Z),
|
|
288316
|
+
/* harmony export */ bigone: () => (/* reexport safe */ _src_bigone_js__WEBPACK_IMPORTED_MODULE_6__.Z),
|
|
288317
|
+
/* harmony export */ binance: () => (/* reexport safe */ _src_binance_js__WEBPACK_IMPORTED_MODULE_7__.Z),
|
|
288318
|
+
/* harmony export */ binancecoinm: () => (/* reexport safe */ _src_binancecoinm_js__WEBPACK_IMPORTED_MODULE_8__.Z),
|
|
288319
|
+
/* harmony export */ binanceus: () => (/* reexport safe */ _src_binanceus_js__WEBPACK_IMPORTED_MODULE_9__.Z),
|
|
288320
|
+
/* harmony export */ binanceusdm: () => (/* reexport safe */ _src_binanceusdm_js__WEBPACK_IMPORTED_MODULE_10__.Z),
|
|
288321
|
+
/* harmony export */ bingx: () => (/* reexport safe */ _src_bingx_js__WEBPACK_IMPORTED_MODULE_11__.Z),
|
|
288322
|
+
/* harmony export */ bit2c: () => (/* reexport safe */ _src_bit2c_js__WEBPACK_IMPORTED_MODULE_12__.Z),
|
|
288323
|
+
/* harmony export */ bitbank: () => (/* reexport safe */ _src_bitbank_js__WEBPACK_IMPORTED_MODULE_13__.Z),
|
|
288324
|
+
/* harmony export */ bitbay: () => (/* reexport safe */ _src_bitbay_js__WEBPACK_IMPORTED_MODULE_14__.Z),
|
|
288325
|
+
/* harmony export */ bitbns: () => (/* reexport safe */ _src_bitbns_js__WEBPACK_IMPORTED_MODULE_15__.Z),
|
|
288326
|
+
/* harmony export */ bitcoincom: () => (/* reexport safe */ _src_bitcoincom_js__WEBPACK_IMPORTED_MODULE_16__.Z),
|
|
288327
|
+
/* harmony export */ bitfinex: () => (/* reexport safe */ _src_bitfinex_js__WEBPACK_IMPORTED_MODULE_17__.Z),
|
|
288328
|
+
/* harmony export */ bitfinex2: () => (/* reexport safe */ _src_bitfinex2_js__WEBPACK_IMPORTED_MODULE_18__.Z),
|
|
288329
|
+
/* harmony export */ bitflyer: () => (/* reexport safe */ _src_bitflyer_js__WEBPACK_IMPORTED_MODULE_19__.Z),
|
|
288330
|
+
/* harmony export */ bitforex: () => (/* reexport safe */ _src_bitforex_js__WEBPACK_IMPORTED_MODULE_20__.Z),
|
|
288331
|
+
/* harmony export */ bitget: () => (/* reexport safe */ _src_bitget_js__WEBPACK_IMPORTED_MODULE_21__.Z),
|
|
288332
|
+
/* harmony export */ bithumb: () => (/* reexport safe */ _src_bithumb_js__WEBPACK_IMPORTED_MODULE_22__.Z),
|
|
288333
|
+
/* harmony export */ bitmart: () => (/* reexport safe */ _src_bitmart_js__WEBPACK_IMPORTED_MODULE_23__.Z),
|
|
288334
|
+
/* harmony export */ bitmex: () => (/* reexport safe */ _src_bitmex_js__WEBPACK_IMPORTED_MODULE_24__.Z),
|
|
288335
|
+
/* harmony export */ bitopro: () => (/* reexport safe */ _src_bitopro_js__WEBPACK_IMPORTED_MODULE_25__.Z),
|
|
288336
|
+
/* harmony export */ bitpanda: () => (/* reexport safe */ _src_bitpanda_js__WEBPACK_IMPORTED_MODULE_26__.Z),
|
|
288337
|
+
/* harmony export */ bitrue: () => (/* reexport safe */ _src_bitrue_js__WEBPACK_IMPORTED_MODULE_27__.Z),
|
|
288338
|
+
/* harmony export */ bitso: () => (/* reexport safe */ _src_bitso_js__WEBPACK_IMPORTED_MODULE_28__.Z),
|
|
288339
|
+
/* harmony export */ bitstamp: () => (/* reexport safe */ _src_bitstamp_js__WEBPACK_IMPORTED_MODULE_29__.Z),
|
|
288340
|
+
/* harmony export */ bitvavo: () => (/* reexport safe */ _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_30__.Z),
|
|
288341
|
+
/* harmony export */ bl3p: () => (/* reexport safe */ _src_bl3p_js__WEBPACK_IMPORTED_MODULE_31__.Z),
|
|
288342
|
+
/* harmony export */ blockchaincom: () => (/* reexport safe */ _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_32__.Z),
|
|
288343
|
+
/* harmony export */ btcalpha: () => (/* reexport safe */ _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_33__.Z),
|
|
288344
|
+
/* harmony export */ btcbox: () => (/* reexport safe */ _src_btcbox_js__WEBPACK_IMPORTED_MODULE_34__.Z),
|
|
288345
|
+
/* harmony export */ btcmarkets: () => (/* reexport safe */ _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_35__.Z),
|
|
288346
|
+
/* harmony export */ btcturk: () => (/* reexport safe */ _src_btcturk_js__WEBPACK_IMPORTED_MODULE_36__.Z),
|
|
288347
|
+
/* harmony export */ bybit: () => (/* reexport safe */ _src_bybit_js__WEBPACK_IMPORTED_MODULE_37__.Z),
|
|
288348
|
+
/* harmony export */ cex: () => (/* reexport safe */ _src_cex_js__WEBPACK_IMPORTED_MODULE_38__.Z),
|
|
288349
|
+
/* harmony export */ coinbase: () => (/* reexport safe */ _src_coinbase_js__WEBPACK_IMPORTED_MODULE_39__.Z),
|
|
288350
|
+
/* harmony export */ coinbasepro: () => (/* reexport safe */ _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_40__.Z),
|
|
288351
|
+
/* harmony export */ coincheck: () => (/* reexport safe */ _src_coincheck_js__WEBPACK_IMPORTED_MODULE_41__.Z),
|
|
288352
|
+
/* harmony export */ coinex: () => (/* reexport safe */ _src_coinex_js__WEBPACK_IMPORTED_MODULE_42__.Z),
|
|
288353
|
+
/* harmony export */ coinlist: () => (/* reexport safe */ _src_coinlist_js__WEBPACK_IMPORTED_MODULE_43__.Z),
|
|
288354
|
+
/* harmony export */ coinmate: () => (/* reexport safe */ _src_coinmate_js__WEBPACK_IMPORTED_MODULE_44__.Z),
|
|
288355
|
+
/* harmony export */ coinone: () => (/* reexport safe */ _src_coinone_js__WEBPACK_IMPORTED_MODULE_45__.Z),
|
|
288356
|
+
/* harmony export */ coinsph: () => (/* reexport safe */ _src_coinsph_js__WEBPACK_IMPORTED_MODULE_46__.Z),
|
|
288357
|
+
/* harmony export */ coinspot: () => (/* reexport safe */ _src_coinspot_js__WEBPACK_IMPORTED_MODULE_47__.Z),
|
|
288358
|
+
/* harmony export */ cryptocom: () => (/* reexport safe */ _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_48__.Z),
|
|
288359
|
+
/* harmony export */ currencycom: () => (/* reexport safe */ _src_currencycom_js__WEBPACK_IMPORTED_MODULE_49__.Z),
|
|
288325
288360
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
288326
|
-
/* harmony export */ delta: () => (/* reexport safe */
|
|
288327
|
-
/* harmony export */ deribit: () => (/* reexport safe */
|
|
288328
|
-
/* harmony export */ digifinex: () => (/* reexport safe */
|
|
288361
|
+
/* harmony export */ delta: () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_50__.Z),
|
|
288362
|
+
/* harmony export */ deribit: () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_51__.Z),
|
|
288363
|
+
/* harmony export */ digifinex: () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_52__.Z),
|
|
288329
288364
|
/* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_156__),
|
|
288330
288365
|
/* harmony export */ exchanges: () => (/* binding */ exchanges),
|
|
288331
|
-
/* harmony export */ exmo: () => (/* reexport safe */
|
|
288332
|
-
/* harmony export */ fmfwio: () => (/* reexport safe */
|
|
288366
|
+
/* harmony export */ exmo: () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_53__.Z),
|
|
288367
|
+
/* harmony export */ fmfwio: () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_54__.Z),
|
|
288333
288368
|
/* 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 */
|
|
288369
|
+
/* harmony export */ gate: () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_55__.Z),
|
|
288370
|
+
/* harmony export */ gateio: () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_56__.Z),
|
|
288371
|
+
/* harmony export */ gemini: () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_57__.Z),
|
|
288372
|
+
/* harmony export */ hitbtc: () => (/* reexport safe */ _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_58__.Z),
|
|
288373
|
+
/* harmony export */ hitbtc3: () => (/* reexport safe */ _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_59__.Z),
|
|
288374
|
+
/* harmony export */ hollaex: () => (/* reexport safe */ _src_hollaex_js__WEBPACK_IMPORTED_MODULE_60__.Z),
|
|
288375
|
+
/* harmony export */ htx: () => (/* reexport safe */ _src_htx_js__WEBPACK_IMPORTED_MODULE_61__.Z),
|
|
288376
|
+
/* harmony export */ huobi: () => (/* reexport safe */ _src_huobi_js__WEBPACK_IMPORTED_MODULE_62__.Z),
|
|
288377
|
+
/* harmony export */ huobijp: () => (/* reexport safe */ _src_huobijp_js__WEBPACK_IMPORTED_MODULE_63__.Z),
|
|
288378
|
+
/* harmony export */ idex: () => (/* reexport safe */ _src_idex_js__WEBPACK_IMPORTED_MODULE_64__.Z),
|
|
288379
|
+
/* harmony export */ independentreserve: () => (/* reexport safe */ _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_65__.Z),
|
|
288380
|
+
/* harmony export */ indodax: () => (/* reexport safe */ _src_indodax_js__WEBPACK_IMPORTED_MODULE_66__.Z),
|
|
288381
|
+
/* harmony export */ kraken: () => (/* reexport safe */ _src_kraken_js__WEBPACK_IMPORTED_MODULE_67__.Z),
|
|
288382
|
+
/* harmony export */ krakenfutures: () => (/* reexport safe */ _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_68__.Z),
|
|
288383
|
+
/* harmony export */ kucoin: () => (/* reexport safe */ _src_kucoin_js__WEBPACK_IMPORTED_MODULE_69__.Z),
|
|
288384
|
+
/* harmony export */ kucoinfutures: () => (/* reexport safe */ _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_70__.Z),
|
|
288385
|
+
/* harmony export */ kuna: () => (/* reexport safe */ _src_kuna_js__WEBPACK_IMPORTED_MODULE_71__.Z),
|
|
288386
|
+
/* harmony export */ latoken: () => (/* reexport safe */ _src_latoken_js__WEBPACK_IMPORTED_MODULE_72__.Z),
|
|
288387
|
+
/* harmony export */ lbank: () => (/* reexport safe */ _src_lbank_js__WEBPACK_IMPORTED_MODULE_73__.Z),
|
|
288388
|
+
/* harmony export */ luno: () => (/* reexport safe */ _src_luno_js__WEBPACK_IMPORTED_MODULE_74__.Z),
|
|
288389
|
+
/* harmony export */ lykke: () => (/* reexport safe */ _src_lykke_js__WEBPACK_IMPORTED_MODULE_75__.Z),
|
|
288390
|
+
/* harmony export */ mercado: () => (/* reexport safe */ _src_mercado_js__WEBPACK_IMPORTED_MODULE_76__.Z),
|
|
288391
|
+
/* harmony export */ mexc: () => (/* reexport safe */ _src_mexc_js__WEBPACK_IMPORTED_MODULE_77__.Z),
|
|
288392
|
+
/* harmony export */ ndax: () => (/* reexport safe */ _src_ndax_js__WEBPACK_IMPORTED_MODULE_78__.Z),
|
|
288393
|
+
/* harmony export */ novadax: () => (/* reexport safe */ _src_novadax_js__WEBPACK_IMPORTED_MODULE_79__.Z),
|
|
288394
|
+
/* harmony export */ oceanex: () => (/* reexport safe */ _src_oceanex_js__WEBPACK_IMPORTED_MODULE_80__.Z),
|
|
288395
|
+
/* harmony export */ okcoin: () => (/* reexport safe */ _src_okcoin_js__WEBPACK_IMPORTED_MODULE_81__.Z),
|
|
288396
|
+
/* harmony export */ okx: () => (/* reexport safe */ _src_okx_js__WEBPACK_IMPORTED_MODULE_82__.Z),
|
|
288397
|
+
/* harmony export */ p2b: () => (/* reexport safe */ _src_p2b_js__WEBPACK_IMPORTED_MODULE_83__.Z),
|
|
288398
|
+
/* harmony export */ paymium: () => (/* reexport safe */ _src_paymium_js__WEBPACK_IMPORTED_MODULE_84__.Z),
|
|
288399
|
+
/* harmony export */ phemex: () => (/* reexport safe */ _src_phemex_js__WEBPACK_IMPORTED_MODULE_85__.Z),
|
|
288400
|
+
/* harmony export */ poloniex: () => (/* reexport safe */ _src_poloniex_js__WEBPACK_IMPORTED_MODULE_86__.Z),
|
|
288401
|
+
/* harmony export */ poloniexfutures: () => (/* reexport safe */ _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_87__.Z),
|
|
288367
288402
|
/* 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 */
|
|
288403
|
+
/* harmony export */ probit: () => (/* reexport safe */ _src_probit_js__WEBPACK_IMPORTED_MODULE_88__.Z),
|
|
288404
|
+
/* harmony export */ timex: () => (/* reexport safe */ _src_timex_js__WEBPACK_IMPORTED_MODULE_89__.Z),
|
|
288405
|
+
/* harmony export */ tokocrypto: () => (/* reexport safe */ _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_90__.Z),
|
|
288406
|
+
/* harmony export */ upbit: () => (/* reexport safe */ _src_upbit_js__WEBPACK_IMPORTED_MODULE_91__.Z),
|
|
288372
288407
|
/* 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 */
|
|
288408
|
+
/* harmony export */ wavesexchange: () => (/* reexport safe */ _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_92__.Z),
|
|
288409
|
+
/* harmony export */ wazirx: () => (/* reexport safe */ _src_wazirx_js__WEBPACK_IMPORTED_MODULE_93__.Z),
|
|
288410
|
+
/* harmony export */ whitebit: () => (/* reexport safe */ _src_whitebit_js__WEBPACK_IMPORTED_MODULE_94__.Z),
|
|
288411
|
+
/* harmony export */ woo: () => (/* reexport safe */ _src_woo_js__WEBPACK_IMPORTED_MODULE_95__.Z),
|
|
288412
|
+
/* harmony export */ yobit: () => (/* reexport safe */ _src_yobit_js__WEBPACK_IMPORTED_MODULE_96__.Z),
|
|
288413
|
+
/* harmony export */ zaif: () => (/* reexport safe */ _src_zaif_js__WEBPACK_IMPORTED_MODULE_1__.Z),
|
|
288379
288414
|
/* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_97__.Z)
|
|
288380
288415
|
/* harmony export */ });
|
|
288381
288416
|
/* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
|
|
288382
288417
|
/* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(2194);
|
|
288383
288418
|
/* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(7100);
|
|
288384
288419
|
/* 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
|
|
288420
|
+
/* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9869);
|
|
288421
|
+
/* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5660);
|
|
288422
|
+
/* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9612);
|
|
288423
|
+
/* harmony import */ var _src_bequant_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2049);
|
|
288424
|
+
/* harmony import */ var _src_bigone_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7679);
|
|
288425
|
+
/* harmony import */ var _src_binance_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9987);
|
|
288426
|
+
/* harmony import */ var _src_binancecoinm_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9212);
|
|
288427
|
+
/* harmony import */ var _src_binanceus_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2723);
|
|
288428
|
+
/* harmony import */ var _src_binanceusdm_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(3254);
|
|
288429
|
+
/* harmony import */ var _src_bingx_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(7960);
|
|
288430
|
+
/* harmony import */ var _src_bit2c_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7691);
|
|
288431
|
+
/* harmony import */ var _src_bitbank_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(7820);
|
|
288432
|
+
/* harmony import */ var _src_bitbay_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(668);
|
|
288433
|
+
/* harmony import */ var _src_bitbns_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(7790);
|
|
288434
|
+
/* harmony import */ var _src_bitcoincom_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(1819);
|
|
288435
|
+
/* harmony import */ var _src_bitfinex_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(6537);
|
|
288436
|
+
/* harmony import */ var _src_bitfinex2_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(730);
|
|
288437
|
+
/* harmony import */ var _src_bitflyer_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(8429);
|
|
288438
|
+
/* harmony import */ var _src_bitforex_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(2035);
|
|
288439
|
+
/* harmony import */ var _src_bitget_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(9051);
|
|
288440
|
+
/* harmony import */ var _src_bithumb_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(5305);
|
|
288441
|
+
/* harmony import */ var _src_bitmart_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(3718);
|
|
288442
|
+
/* harmony import */ var _src_bitmex_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(7077);
|
|
288443
|
+
/* harmony import */ var _src_bitopro_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(172);
|
|
288444
|
+
/* harmony import */ var _src_bitpanda_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(2737);
|
|
288445
|
+
/* harmony import */ var _src_bitrue_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(854);
|
|
288446
|
+
/* harmony import */ var _src_bitso_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(4388);
|
|
288447
|
+
/* harmony import */ var _src_bitstamp_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(4667);
|
|
288448
|
+
/* harmony import */ var _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(9943);
|
|
288449
|
+
/* harmony import */ var _src_bl3p_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(9476);
|
|
288450
|
+
/* harmony import */ var _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(182);
|
|
288451
|
+
/* harmony import */ var _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(6246);
|
|
288452
|
+
/* harmony import */ var _src_btcbox_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(7796);
|
|
288453
|
+
/* harmony import */ var _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(1776);
|
|
288454
|
+
/* harmony import */ var _src_btcturk_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(6304);
|
|
288455
|
+
/* harmony import */ var _src_bybit_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(3527);
|
|
288456
|
+
/* harmony import */ var _src_cex_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(6445);
|
|
288457
|
+
/* harmony import */ var _src_coinbase_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(437);
|
|
288458
|
+
/* harmony import */ var _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(8856);
|
|
288459
|
+
/* harmony import */ var _src_coincheck_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(2117);
|
|
288460
|
+
/* harmony import */ var _src_coinex_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(332);
|
|
288461
|
+
/* harmony import */ var _src_coinlist_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(3623);
|
|
288462
|
+
/* harmony import */ var _src_coinmate_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(9816);
|
|
288463
|
+
/* harmony import */ var _src_coinone_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(7811);
|
|
288464
|
+
/* harmony import */ var _src_coinsph_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(5782);
|
|
288465
|
+
/* harmony import */ var _src_coinspot_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(7794);
|
|
288466
|
+
/* harmony import */ var _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(9129);
|
|
288467
|
+
/* harmony import */ var _src_currencycom_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(3214);
|
|
288468
|
+
/* harmony import */ var _src_delta_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(1753);
|
|
288469
|
+
/* harmony import */ var _src_deribit_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(24);
|
|
288470
|
+
/* harmony import */ var _src_digifinex_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(8846);
|
|
288471
|
+
/* harmony import */ var _src_exmo_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(1729);
|
|
288472
|
+
/* harmony import */ var _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(5788);
|
|
288473
|
+
/* harmony import */ var _src_gate_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(7290);
|
|
288474
|
+
/* harmony import */ var _src_gateio_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(7036);
|
|
288475
|
+
/* harmony import */ var _src_gemini_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(6743);
|
|
288476
|
+
/* harmony import */ var _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(4714);
|
|
288477
|
+
/* harmony import */ var _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(4815);
|
|
288478
|
+
/* harmony import */ var _src_hollaex_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(8422);
|
|
288479
|
+
/* harmony import */ var _src_htx_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(5939);
|
|
288480
|
+
/* harmony import */ var _src_huobi_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(8146);
|
|
288481
|
+
/* harmony import */ var _src_huobijp_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(7034);
|
|
288482
|
+
/* harmony import */ var _src_idex_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(8232);
|
|
288483
|
+
/* harmony import */ var _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(9570);
|
|
288484
|
+
/* harmony import */ var _src_indodax_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(1605);
|
|
288485
|
+
/* harmony import */ var _src_kraken_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(9922);
|
|
288486
|
+
/* harmony import */ var _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(4470);
|
|
288487
|
+
/* harmony import */ var _src_kucoin_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(3583);
|
|
288488
|
+
/* harmony import */ var _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(1924);
|
|
288489
|
+
/* harmony import */ var _src_kuna_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(7732);
|
|
288490
|
+
/* harmony import */ var _src_latoken_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(2545);
|
|
288491
|
+
/* harmony import */ var _src_lbank_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(3944);
|
|
288492
|
+
/* harmony import */ var _src_luno_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(1758);
|
|
288493
|
+
/* harmony import */ var _src_lykke_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(3803);
|
|
288494
|
+
/* harmony import */ var _src_mercado_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(9013);
|
|
288495
|
+
/* harmony import */ var _src_mexc_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(6641);
|
|
288496
|
+
/* harmony import */ var _src_ndax_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(4531);
|
|
288497
|
+
/* harmony import */ var _src_novadax_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(2449);
|
|
288498
|
+
/* harmony import */ var _src_oceanex_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(6749);
|
|
288499
|
+
/* harmony import */ var _src_okcoin_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(3007);
|
|
288500
|
+
/* harmony import */ var _src_okx_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(4042);
|
|
288501
|
+
/* harmony import */ var _src_p2b_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(2466);
|
|
288502
|
+
/* harmony import */ var _src_paymium_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(7082);
|
|
288503
|
+
/* harmony import */ var _src_phemex_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(79);
|
|
288504
|
+
/* harmony import */ var _src_poloniex_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(8891);
|
|
288505
|
+
/* harmony import */ var _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(6877);
|
|
288506
|
+
/* harmony import */ var _src_probit_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(3657);
|
|
288507
|
+
/* harmony import */ var _src_timex_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(1067);
|
|
288508
|
+
/* harmony import */ var _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(5261);
|
|
288509
|
+
/* harmony import */ var _src_upbit_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(7584);
|
|
288510
|
+
/* harmony import */ var _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(3853);
|
|
288511
|
+
/* harmony import */ var _src_wazirx_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(6536);
|
|
288512
|
+
/* harmony import */ var _src_whitebit_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(5467);
|
|
288513
|
+
/* harmony import */ var _src_woo_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(517);
|
|
288514
|
+
/* harmony import */ var _src_yobit_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(3850);
|
|
288515
|
+
/* harmony import */ var _src_zaif_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7558);
|
|
288481
288516
|
/* harmony import */ var _src_zonda_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(5140);
|
|
288482
288517
|
/* harmony import */ var _src_pro_alpaca_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(2467);
|
|
288483
288518
|
/* harmony import */ var _src_pro_ascendex_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(2383);
|
|
@@ -288569,7 +288604,7 @@ SOFTWARE.
|
|
|
288569
288604
|
|
|
288570
288605
|
//-----------------------------------------------------------------------------
|
|
288571
288606
|
// this is updated by vss.js when building
|
|
288572
|
-
const version = '4.1.
|
|
288607
|
+
const version = '4.1.97';
|
|
288573
288608
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
|
|
288574
288609
|
//-----------------------------------------------------------------------------
|
|
288575
288610
|
|
|
@@ -288727,102 +288762,102 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
|
|
|
288727
288762
|
|
|
288728
288763
|
|
|
288729
288764
|
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':
|
|
288765
|
+
'ace': _src_ace_js__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z,
|
|
288766
|
+
'alpaca': _src_alpaca_js__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z,
|
|
288767
|
+
'ascendex': _src_ascendex_js__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z,
|
|
288768
|
+
'bequant': _src_bequant_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z,
|
|
288769
|
+
'bigone': _src_bigone_js__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z,
|
|
288770
|
+
'binance': _src_binance_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z,
|
|
288771
|
+
'binancecoinm': _src_binancecoinm_js__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z,
|
|
288772
|
+
'binanceus': _src_binanceus_js__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z,
|
|
288773
|
+
'binanceusdm': _src_binanceusdm_js__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z,
|
|
288774
|
+
'bingx': _src_bingx_js__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z,
|
|
288775
|
+
'bit2c': _src_bit2c_js__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z,
|
|
288776
|
+
'bitbank': _src_bitbank_js__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z,
|
|
288777
|
+
'bitbay': _src_bitbay_js__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z,
|
|
288778
|
+
'bitbns': _src_bitbns_js__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z,
|
|
288779
|
+
'bitcoincom': _src_bitcoincom_js__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .Z,
|
|
288780
|
+
'bitfinex': _src_bitfinex_js__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .Z,
|
|
288781
|
+
'bitfinex2': _src_bitfinex2_js__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .Z,
|
|
288782
|
+
'bitflyer': _src_bitflyer_js__WEBPACK_IMPORTED_MODULE_19__/* ["default"] */ .Z,
|
|
288783
|
+
'bitforex': _src_bitforex_js__WEBPACK_IMPORTED_MODULE_20__/* ["default"] */ .Z,
|
|
288784
|
+
'bitget': _src_bitget_js__WEBPACK_IMPORTED_MODULE_21__/* ["default"] */ .Z,
|
|
288785
|
+
'bithumb': _src_bithumb_js__WEBPACK_IMPORTED_MODULE_22__/* ["default"] */ .Z,
|
|
288786
|
+
'bitmart': _src_bitmart_js__WEBPACK_IMPORTED_MODULE_23__/* ["default"] */ .Z,
|
|
288787
|
+
'bitmex': _src_bitmex_js__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .Z,
|
|
288788
|
+
'bitopro': _src_bitopro_js__WEBPACK_IMPORTED_MODULE_25__/* ["default"] */ .Z,
|
|
288789
|
+
'bitpanda': _src_bitpanda_js__WEBPACK_IMPORTED_MODULE_26__/* ["default"] */ .Z,
|
|
288790
|
+
'bitrue': _src_bitrue_js__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .Z,
|
|
288791
|
+
'bitso': _src_bitso_js__WEBPACK_IMPORTED_MODULE_28__/* ["default"] */ .Z,
|
|
288792
|
+
'bitstamp': _src_bitstamp_js__WEBPACK_IMPORTED_MODULE_29__/* ["default"] */ .Z,
|
|
288793
|
+
'bitvavo': _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_30__/* ["default"] */ .Z,
|
|
288794
|
+
'bl3p': _src_bl3p_js__WEBPACK_IMPORTED_MODULE_31__/* ["default"] */ .Z,
|
|
288795
|
+
'blockchaincom': _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .Z,
|
|
288796
|
+
'btcalpha': _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_33__/* ["default"] */ .Z,
|
|
288797
|
+
'btcbox': _src_btcbox_js__WEBPACK_IMPORTED_MODULE_34__/* ["default"] */ .Z,
|
|
288798
|
+
'btcmarkets': _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_35__/* ["default"] */ .Z,
|
|
288799
|
+
'btcturk': _src_btcturk_js__WEBPACK_IMPORTED_MODULE_36__/* ["default"] */ .Z,
|
|
288800
|
+
'bybit': _src_bybit_js__WEBPACK_IMPORTED_MODULE_37__/* ["default"] */ .Z,
|
|
288801
|
+
'cex': _src_cex_js__WEBPACK_IMPORTED_MODULE_38__/* ["default"] */ .Z,
|
|
288802
|
+
'coinbase': _src_coinbase_js__WEBPACK_IMPORTED_MODULE_39__/* ["default"] */ .Z,
|
|
288803
|
+
'coinbasepro': _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_40__/* ["default"] */ .Z,
|
|
288804
|
+
'coincheck': _src_coincheck_js__WEBPACK_IMPORTED_MODULE_41__/* ["default"] */ .Z,
|
|
288805
|
+
'coinex': _src_coinex_js__WEBPACK_IMPORTED_MODULE_42__/* ["default"] */ .Z,
|
|
288806
|
+
'coinlist': _src_coinlist_js__WEBPACK_IMPORTED_MODULE_43__/* ["default"] */ .Z,
|
|
288807
|
+
'coinmate': _src_coinmate_js__WEBPACK_IMPORTED_MODULE_44__/* ["default"] */ .Z,
|
|
288808
|
+
'coinone': _src_coinone_js__WEBPACK_IMPORTED_MODULE_45__/* ["default"] */ .Z,
|
|
288809
|
+
'coinsph': _src_coinsph_js__WEBPACK_IMPORTED_MODULE_46__/* ["default"] */ .Z,
|
|
288810
|
+
'coinspot': _src_coinspot_js__WEBPACK_IMPORTED_MODULE_47__/* ["default"] */ .Z,
|
|
288811
|
+
'cryptocom': _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_48__/* ["default"] */ .Z,
|
|
288812
|
+
'currencycom': _src_currencycom_js__WEBPACK_IMPORTED_MODULE_49__/* ["default"] */ .Z,
|
|
288813
|
+
'delta': _src_delta_js__WEBPACK_IMPORTED_MODULE_50__/* ["default"] */ .Z,
|
|
288814
|
+
'deribit': _src_deribit_js__WEBPACK_IMPORTED_MODULE_51__/* ["default"] */ .Z,
|
|
288815
|
+
'digifinex': _src_digifinex_js__WEBPACK_IMPORTED_MODULE_52__/* ["default"] */ .Z,
|
|
288816
|
+
'exmo': _src_exmo_js__WEBPACK_IMPORTED_MODULE_53__/* ["default"] */ .Z,
|
|
288817
|
+
'fmfwio': _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_54__/* ["default"] */ .Z,
|
|
288818
|
+
'gate': _src_gate_js__WEBPACK_IMPORTED_MODULE_55__/* ["default"] */ .Z,
|
|
288819
|
+
'gateio': _src_gateio_js__WEBPACK_IMPORTED_MODULE_56__/* ["default"] */ .Z,
|
|
288820
|
+
'gemini': _src_gemini_js__WEBPACK_IMPORTED_MODULE_57__/* ["default"] */ .Z,
|
|
288821
|
+
'hitbtc': _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_58__/* ["default"] */ .Z,
|
|
288822
|
+
'hitbtc3': _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_59__/* ["default"] */ .Z,
|
|
288823
|
+
'hollaex': _src_hollaex_js__WEBPACK_IMPORTED_MODULE_60__/* ["default"] */ .Z,
|
|
288824
|
+
'htx': _src_htx_js__WEBPACK_IMPORTED_MODULE_61__/* ["default"] */ .Z,
|
|
288825
|
+
'huobi': _src_huobi_js__WEBPACK_IMPORTED_MODULE_62__/* ["default"] */ .Z,
|
|
288826
|
+
'huobijp': _src_huobijp_js__WEBPACK_IMPORTED_MODULE_63__/* ["default"] */ .Z,
|
|
288827
|
+
'idex': _src_idex_js__WEBPACK_IMPORTED_MODULE_64__/* ["default"] */ .Z,
|
|
288828
|
+
'independentreserve': _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_65__/* ["default"] */ .Z,
|
|
288829
|
+
'indodax': _src_indodax_js__WEBPACK_IMPORTED_MODULE_66__/* ["default"] */ .Z,
|
|
288830
|
+
'kraken': _src_kraken_js__WEBPACK_IMPORTED_MODULE_67__/* ["default"] */ .Z,
|
|
288831
|
+
'krakenfutures': _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_68__/* ["default"] */ .Z,
|
|
288832
|
+
'kucoin': _src_kucoin_js__WEBPACK_IMPORTED_MODULE_69__/* ["default"] */ .Z,
|
|
288833
|
+
'kucoinfutures': _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_70__/* ["default"] */ .Z,
|
|
288834
|
+
'kuna': _src_kuna_js__WEBPACK_IMPORTED_MODULE_71__/* ["default"] */ .Z,
|
|
288835
|
+
'latoken': _src_latoken_js__WEBPACK_IMPORTED_MODULE_72__/* ["default"] */ .Z,
|
|
288836
|
+
'lbank': _src_lbank_js__WEBPACK_IMPORTED_MODULE_73__/* ["default"] */ .Z,
|
|
288837
|
+
'luno': _src_luno_js__WEBPACK_IMPORTED_MODULE_74__/* ["default"] */ .Z,
|
|
288838
|
+
'lykke': _src_lykke_js__WEBPACK_IMPORTED_MODULE_75__/* ["default"] */ .Z,
|
|
288839
|
+
'mercado': _src_mercado_js__WEBPACK_IMPORTED_MODULE_76__/* ["default"] */ .Z,
|
|
288840
|
+
'mexc': _src_mexc_js__WEBPACK_IMPORTED_MODULE_77__/* ["default"] */ .Z,
|
|
288841
|
+
'ndax': _src_ndax_js__WEBPACK_IMPORTED_MODULE_78__/* ["default"] */ .Z,
|
|
288842
|
+
'novadax': _src_novadax_js__WEBPACK_IMPORTED_MODULE_79__/* ["default"] */ .Z,
|
|
288843
|
+
'oceanex': _src_oceanex_js__WEBPACK_IMPORTED_MODULE_80__/* ["default"] */ .Z,
|
|
288844
|
+
'okcoin': _src_okcoin_js__WEBPACK_IMPORTED_MODULE_81__/* ["default"] */ .Z,
|
|
288845
|
+
'okx': _src_okx_js__WEBPACK_IMPORTED_MODULE_82__/* ["default"] */ .Z,
|
|
288846
|
+
'p2b': _src_p2b_js__WEBPACK_IMPORTED_MODULE_83__/* ["default"] */ .Z,
|
|
288847
|
+
'paymium': _src_paymium_js__WEBPACK_IMPORTED_MODULE_84__/* ["default"] */ .Z,
|
|
288848
|
+
'phemex': _src_phemex_js__WEBPACK_IMPORTED_MODULE_85__/* ["default"] */ .Z,
|
|
288849
|
+
'poloniex': _src_poloniex_js__WEBPACK_IMPORTED_MODULE_86__/* ["default"] */ .Z,
|
|
288850
|
+
'poloniexfutures': _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_87__/* ["default"] */ .Z,
|
|
288851
|
+
'probit': _src_probit_js__WEBPACK_IMPORTED_MODULE_88__/* ["default"] */ .Z,
|
|
288852
|
+
'timex': _src_timex_js__WEBPACK_IMPORTED_MODULE_89__/* ["default"] */ .Z,
|
|
288853
|
+
'tokocrypto': _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_90__/* ["default"] */ .Z,
|
|
288854
|
+
'upbit': _src_upbit_js__WEBPACK_IMPORTED_MODULE_91__/* ["default"] */ .Z,
|
|
288855
|
+
'wavesexchange': _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_92__/* ["default"] */ .Z,
|
|
288856
|
+
'wazirx': _src_wazirx_js__WEBPACK_IMPORTED_MODULE_93__/* ["default"] */ .Z,
|
|
288857
|
+
'whitebit': _src_whitebit_js__WEBPACK_IMPORTED_MODULE_94__/* ["default"] */ .Z,
|
|
288858
|
+
'woo': _src_woo_js__WEBPACK_IMPORTED_MODULE_95__/* ["default"] */ .Z,
|
|
288859
|
+
'yobit': _src_yobit_js__WEBPACK_IMPORTED_MODULE_96__/* ["default"] */ .Z,
|
|
288860
|
+
'zaif': _src_zaif_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z,
|
|
288826
288861
|
'zonda': _src_zonda_js__WEBPACK_IMPORTED_MODULE_97__/* ["default"] */ .Z,
|
|
288827
288862
|
};
|
|
288828
288863
|
const pro = {
|