ccxt 4.3.93 → 4.3.95
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.min.js +8 -8
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ascendex.js +8 -6
- package/dist/cjs/src/base/Exchange.js +3 -3
- package/dist/cjs/src/bingx.js +4 -2
- package/dist/cjs/src/bitfinex.js +3 -2
- package/dist/cjs/src/bitfinex2.js +6 -5
- package/dist/cjs/src/btcturk.js +2 -2
- package/dist/cjs/src/gate.js +3 -2
- package/dist/cjs/src/gemini.js +3 -2
- package/dist/cjs/src/hyperliquid.js +76 -11
- package/dist/cjs/src/independentreserve.js +4 -3
- package/dist/cjs/src/indodax.js +3 -0
- package/dist/cjs/src/mexc.js +72 -154
- package/dist/cjs/src/okx.js +2 -0
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/okx.d.ts +2 -0
- package/js/src/ascendex.js +8 -6
- package/js/src/base/Exchange.d.ts +1 -1
- package/js/src/base/Exchange.js +3 -3
- package/js/src/bingx.js +5 -3
- package/js/src/bitfinex.js +3 -2
- package/js/src/bitfinex2.js +6 -5
- package/js/src/btcturk.d.ts +2 -2
- package/js/src/btcturk.js +2 -2
- package/js/src/gate.js +3 -2
- package/js/src/gemini.js +3 -2
- package/js/src/hyperliquid.d.ts +3 -0
- package/js/src/hyperliquid.js +76 -11
- package/js/src/independentreserve.js +4 -3
- package/js/src/indodax.js +3 -0
- package/js/src/mexc.js +72 -154
- package/js/src/okx.js +2 -0
- package/package.json +2 -1
package/js/src/hyperliquid.js
CHANGED
|
@@ -57,8 +57,9 @@ export default class hyperliquid extends Exchange {
|
|
|
57
57
|
'fetchBorrowInterest': false,
|
|
58
58
|
'fetchBorrowRateHistories': false,
|
|
59
59
|
'fetchBorrowRateHistory': false,
|
|
60
|
-
'fetchCanceledOrders':
|
|
60
|
+
'fetchCanceledOrders': true,
|
|
61
61
|
'fetchClosedOrders': true,
|
|
62
|
+
'fetchCanceledAndClosedOrders': true,
|
|
62
63
|
'fetchCrossBorrowRate': false,
|
|
63
64
|
'fetchCrossBorrowRates': false,
|
|
64
65
|
'fetchCurrencies': true,
|
|
@@ -90,7 +91,7 @@ export default class hyperliquid extends Exchange {
|
|
|
90
91
|
'fetchOpenOrders': true,
|
|
91
92
|
'fetchOrder': true,
|
|
92
93
|
'fetchOrderBook': true,
|
|
93
|
-
'fetchOrders':
|
|
94
|
+
'fetchOrders': true,
|
|
94
95
|
'fetchOrderTrades': false,
|
|
95
96
|
'fetchPosition': true,
|
|
96
97
|
'fetchPositionMode': false,
|
|
@@ -829,6 +830,7 @@ export default class hyperliquid extends Exchange {
|
|
|
829
830
|
await this.loadMarkets();
|
|
830
831
|
const market = this.market(symbol);
|
|
831
832
|
const until = this.safeInteger(params, 'until', this.milliseconds());
|
|
833
|
+
const useTail = (since === undefined);
|
|
832
834
|
if (since === undefined) {
|
|
833
835
|
since = 0;
|
|
834
836
|
}
|
|
@@ -859,7 +861,7 @@ export default class hyperliquid extends Exchange {
|
|
|
859
861
|
// }
|
|
860
862
|
// ]
|
|
861
863
|
//
|
|
862
|
-
return this.parseOHLCVs(response, market, timeframe, since, limit);
|
|
864
|
+
return this.parseOHLCVs(response, market, timeframe, since, limit, useTail);
|
|
863
865
|
}
|
|
864
866
|
parseOHLCV(ohlcv, market = undefined) {
|
|
865
867
|
//
|
|
@@ -1734,7 +1736,16 @@ export default class hyperliquid extends Exchange {
|
|
|
1734
1736
|
// }
|
|
1735
1737
|
// ]
|
|
1736
1738
|
//
|
|
1737
|
-
|
|
1739
|
+
const orderWithStatus = [];
|
|
1740
|
+
for (let i = 0; i < response.length; i++) {
|
|
1741
|
+
const order = response[i];
|
|
1742
|
+
const extendOrder = {};
|
|
1743
|
+
if (this.safeString(order, 'status') === undefined) {
|
|
1744
|
+
extendOrder['ccxtStatus'] = 'open';
|
|
1745
|
+
}
|
|
1746
|
+
orderWithStatus.push(this.extend(order, extendOrder));
|
|
1747
|
+
}
|
|
1748
|
+
return this.parseOrders(orderWithStatus, market, since, limit);
|
|
1738
1749
|
}
|
|
1739
1750
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1740
1751
|
/**
|
|
@@ -1748,8 +1759,59 @@ export default class hyperliquid extends Exchange {
|
|
|
1748
1759
|
* @param {string} [params.user] user address, will default to this.walletAddress if not provided
|
|
1749
1760
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1750
1761
|
*/
|
|
1762
|
+
await this.loadMarkets();
|
|
1763
|
+
const orders = await this.fetchOrders(symbol, undefined, undefined, params); // don't filter here because we don't want to catch open orders
|
|
1764
|
+
const closedOrders = this.filterByArray(orders, 'status', ['closed'], false);
|
|
1765
|
+
return this.filterBySymbolSinceLimit(closedOrders, symbol, since, limit);
|
|
1766
|
+
}
|
|
1767
|
+
async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1768
|
+
/**
|
|
1769
|
+
* @method
|
|
1770
|
+
* @name hyperliquid#fetchCanceledOrders
|
|
1771
|
+
* @description fetch all canceled orders
|
|
1772
|
+
* @param {string} symbol unified market symbol
|
|
1773
|
+
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
1774
|
+
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
|
1775
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1776
|
+
* @param {string} [params.user] user address, will default to this.walletAddress if not provided
|
|
1777
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1778
|
+
*/
|
|
1779
|
+
await this.loadMarkets();
|
|
1780
|
+
const orders = await this.fetchOrders(symbol, undefined, undefined, params); // don't filter here because we don't want to catch open orders
|
|
1781
|
+
const closedOrders = this.filterByArray(orders, 'status', ['canceled'], false);
|
|
1782
|
+
return this.filterBySymbolSinceLimit(closedOrders, symbol, since, limit);
|
|
1783
|
+
}
|
|
1784
|
+
async fetchCanceledAndClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1785
|
+
/**
|
|
1786
|
+
* @method
|
|
1787
|
+
* @name hyperliquid#fetchCanceledAndClosedOrders
|
|
1788
|
+
* @description fetch all closed and canceled orders
|
|
1789
|
+
* @param {string} symbol unified market symbol
|
|
1790
|
+
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
1791
|
+
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
|
1792
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1793
|
+
* @param {string} [params.user] user address, will default to this.walletAddress if not provided
|
|
1794
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1795
|
+
*/
|
|
1796
|
+
await this.loadMarkets();
|
|
1797
|
+
const orders = await this.fetchOrders(symbol, undefined, undefined, params); // don't filter here because we don't want to catch open orders
|
|
1798
|
+
const closedOrders = this.filterByArray(orders, 'status', ['canceled', 'closed', 'rejected'], false);
|
|
1799
|
+
return this.filterBySymbolSinceLimit(closedOrders, symbol, since, limit);
|
|
1800
|
+
}
|
|
1801
|
+
async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1802
|
+
/**
|
|
1803
|
+
* @method
|
|
1804
|
+
* @name hyperliquid#fetchOrders
|
|
1805
|
+
* @description fetch all orders
|
|
1806
|
+
* @param {string} symbol unified market symbol
|
|
1807
|
+
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
1808
|
+
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
|
1809
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1810
|
+
* @param {string} [params.user] user address, will default to this.walletAddress if not provided
|
|
1811
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1812
|
+
*/
|
|
1751
1813
|
let userAddress = undefined;
|
|
1752
|
-
[userAddress, params] = this.handlePublicAddress('
|
|
1814
|
+
[userAddress, params] = this.handlePublicAddress('fetchOrders', params);
|
|
1753
1815
|
await this.loadMarkets();
|
|
1754
1816
|
const market = this.safeMarket(symbol);
|
|
1755
1817
|
const request = {
|
|
@@ -1938,11 +2000,14 @@ export default class hyperliquid extends Exchange {
|
|
|
1938
2000
|
}
|
|
1939
2001
|
const symbol = market['symbol'];
|
|
1940
2002
|
const timestamp = this.safeInteger2(order, 'timestamp', 'statusTimestamp');
|
|
1941
|
-
const status = this.
|
|
2003
|
+
const status = this.safeString2(order, 'status', 'ccxtStatus');
|
|
2004
|
+
order = this.omit(order, ['ccxtStatus']);
|
|
1942
2005
|
let side = this.safeString(entry, 'side');
|
|
1943
2006
|
if (side !== undefined) {
|
|
1944
2007
|
side = (side === 'A') ? 'sell' : 'buy';
|
|
1945
2008
|
}
|
|
2009
|
+
const totalAmount = this.safeString2(entry, 'origSz', 'totalSz');
|
|
2010
|
+
const remaining = this.safeString(entry, 'sz');
|
|
1946
2011
|
return this.safeOrder({
|
|
1947
2012
|
'info': order,
|
|
1948
2013
|
'id': this.safeString(entry, 'oid'),
|
|
@@ -1957,13 +2022,13 @@ export default class hyperliquid extends Exchange {
|
|
|
1957
2022
|
'postOnly': undefined,
|
|
1958
2023
|
'reduceOnly': this.safeBool(entry, 'reduceOnly'),
|
|
1959
2024
|
'side': side,
|
|
1960
|
-
'price': this.
|
|
2025
|
+
'price': this.safeString(entry, 'limitPx'),
|
|
1961
2026
|
'triggerPrice': this.safeBool(entry, 'isTrigger') ? this.safeNumber(entry, 'triggerPx') : undefined,
|
|
1962
|
-
'amount':
|
|
2027
|
+
'amount': totalAmount,
|
|
1963
2028
|
'cost': undefined,
|
|
1964
|
-
'average': this.
|
|
1965
|
-
'filled':
|
|
1966
|
-
'remaining':
|
|
2029
|
+
'average': this.safeString(entry, 'avgPx'),
|
|
2030
|
+
'filled': Precise.stringSub(totalAmount, remaining),
|
|
2031
|
+
'remaining': remaining,
|
|
1967
2032
|
'status': this.parseOrderStatus(status),
|
|
1968
2033
|
'fee': undefined,
|
|
1969
2034
|
'trades': undefined,
|
|
@@ -157,11 +157,12 @@ export default class independentreserve extends Exchange {
|
|
|
157
157
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
158
158
|
* @returns {object[]} an array of objects representing market data
|
|
159
159
|
*/
|
|
160
|
-
const
|
|
160
|
+
const baseCurrenciesPromise = this.publicGetGetValidPrimaryCurrencyCodes(params);
|
|
161
161
|
// ['Xbt', 'Eth', 'Usdt', ...]
|
|
162
|
-
const
|
|
162
|
+
const quoteCurrenciesPromise = this.publicGetGetValidSecondaryCurrencyCodes(params);
|
|
163
163
|
// ['Aud', 'Usd', 'Nzd', 'Sgd']
|
|
164
|
-
const
|
|
164
|
+
const limitsPromise = this.publicGetGetOrderMinimumVolumes(params);
|
|
165
|
+
const [baseCurrencies, quoteCurrencies, limits] = await Promise.all([baseCurrenciesPromise, quoteCurrenciesPromise, limitsPromise]);
|
|
165
166
|
//
|
|
166
167
|
// {
|
|
167
168
|
// "Xbt": 0.0001,
|
package/js/src/indodax.js
CHANGED
|
@@ -871,6 +871,9 @@ export default class indodax extends Exchange {
|
|
|
871
871
|
else if (type === 'limit') {
|
|
872
872
|
priceIsRequired = true;
|
|
873
873
|
quantityIsRequired = true;
|
|
874
|
+
if (side === 'buy') {
|
|
875
|
+
request[market['quoteId']] = this.parseToNumeric(Precise.stringMul(this.numberToString(amount), this.numberToString(price)));
|
|
876
|
+
}
|
|
874
877
|
}
|
|
875
878
|
if (priceIsRequired) {
|
|
876
879
|
if (price === undefined) {
|
package/js/src/mexc.js
CHANGED
|
@@ -451,164 +451,82 @@ export default class mexc extends Exchange {
|
|
|
451
451
|
'LTC': 'LTC',
|
|
452
452
|
},
|
|
453
453
|
'networks': {
|
|
454
|
-
'
|
|
454
|
+
'TRC20': 'TRX',
|
|
455
|
+
'TON': 'TONCOIN',
|
|
456
|
+
'AVAXC': 'AVAX_CCHAIN',
|
|
457
|
+
'ERC20': 'ETH',
|
|
455
458
|
'ACA': 'ACALA',
|
|
456
|
-
'ADA': 'Cardano(ADA)',
|
|
457
|
-
'AE': 'AE',
|
|
458
|
-
'ALGO': 'Algorand(ALGO)',
|
|
459
|
-
'ALPH': 'Alephium(ALPH)',
|
|
460
|
-
'
|
|
461
|
-
'
|
|
462
|
-
'APT': 'APTOS(APT)',
|
|
463
|
-
'AR': 'AR',
|
|
464
|
-
'ARB': 'Arbitrum One(ARB)',
|
|
465
|
-
'ARBNOVA': 'ARBNOVA',
|
|
466
|
-
'ARBONE': 'ArbitrumOne(ARB)',
|
|
467
|
-
'ARK': 'ARK',
|
|
459
|
+
// 'ADA': 'Cardano(ADA)',
|
|
460
|
+
// 'AE': 'AE',
|
|
461
|
+
// 'ALGO': 'Algorand(ALGO)',
|
|
462
|
+
// 'ALPH': 'Alephium(ALPH)',
|
|
463
|
+
// 'ARB': 'Arbitrum One(ARB)',
|
|
464
|
+
// 'ARBONE': 'ArbitrumOne(ARB)',
|
|
468
465
|
'ASTR': 'ASTAR',
|
|
469
|
-
'ATOM': 'Cosmos(ATOM)',
|
|
470
|
-
'AVAXC': 'Avalanche C Chain(AVAX CCHAIN)',
|
|
471
|
-
'AVAXX': 'Avalanche X Chain(AVAX XCHAIN)',
|
|
472
|
-
'AZERO': 'Aleph Zero(AZERO)',
|
|
473
|
-
'BCH': 'Bitcoin Cash(BCH)',
|
|
474
|
-
'
|
|
475
|
-
'
|
|
476
|
-
'
|
|
477
|
-
'BEP20': 'BNB Smart Chain(BEP20)',
|
|
478
|
-
'BITCI': 'BITCI',
|
|
479
|
-
'BNC': 'BNC',
|
|
480
|
-
'BNCDOT': 'BNCPOLKA',
|
|
481
|
-
'BOBA': 'BOBA',
|
|
482
|
-
'BSC': 'BEP20(BSC)',
|
|
483
|
-
'BSV': 'Bitcoin SV(BSV)',
|
|
484
|
-
'BTC': 'Bitcoin(BTC)',
|
|
466
|
+
// 'ATOM': 'Cosmos(ATOM)',
|
|
467
|
+
// 'AVAXC': 'Avalanche C Chain(AVAX CCHAIN)',
|
|
468
|
+
// 'AVAXX': 'Avalanche X Chain(AVAX XCHAIN)',
|
|
469
|
+
// 'AZERO': 'Aleph Zero(AZERO)',
|
|
470
|
+
// 'BCH': 'Bitcoin Cash(BCH)',
|
|
471
|
+
// 'BNCDOT': 'BNCPOLKA',
|
|
472
|
+
// 'BSV': 'Bitcoin SV(BSV)',
|
|
473
|
+
// 'BTC': 'Bitcoin(BTC)',
|
|
485
474
|
'BTM': 'BTM2',
|
|
486
|
-
'
|
|
487
|
-
'
|
|
488
|
-
'
|
|
489
|
-
'CHZ2': 'Chiliz Chain(CHZ2)',
|
|
490
|
-
'CKB': 'CKB',
|
|
491
|
-
'CLORE': 'Clore.ai(CLORE)',
|
|
475
|
+
// 'CHZ': 'Chiliz Legacy Chain(CHZ)',
|
|
476
|
+
// 'CHZ2': 'Chiliz Chain(CHZ2)',
|
|
477
|
+
// 'CLORE': 'Clore.ai(CLORE)',
|
|
492
478
|
'CRC20': 'CRONOS',
|
|
493
|
-
'
|
|
494
|
-
'
|
|
495
|
-
'
|
|
496
|
-
'
|
|
497
|
-
'
|
|
498
|
-
'DOGE': 'Dogecoin(DOGE)',
|
|
499
|
-
'DOT': 'Polkadot(DOT)',
|
|
500
|
-
'DYM': 'Dymension(DYM)',
|
|
501
|
-
'EDG': 'EDG',
|
|
502
|
-
'EGLD': 'EGLD',
|
|
503
|
-
'EOS': 'EOS',
|
|
504
|
-
'ERC20': 'Ethereum(ERC20)',
|
|
505
|
-
'ETC': 'Ethereum Classic(ETC)',
|
|
479
|
+
// 'DC': 'Dogechain(DC)',
|
|
480
|
+
// 'DNX': 'Dynex(DNX)',
|
|
481
|
+
// 'DOGE': 'Dogecoin(DOGE)',
|
|
482
|
+
// 'DOT': 'Polkadot(DOT)',
|
|
483
|
+
// 'DYM': 'Dymension(DYM)',
|
|
506
484
|
'ETHF': 'ETF',
|
|
507
|
-
'ETHW': 'ETHW',
|
|
508
|
-
'EVER': 'EVER',
|
|
509
|
-
'FET': 'FET',
|
|
510
|
-
'FIL': 'FIL',
|
|
511
|
-
'FIO': 'FIO',
|
|
512
|
-
'FLOW': 'FLOW',
|
|
513
|
-
'FSN': 'FSN',
|
|
514
|
-
'FTM': 'Fantom(FTM)',
|
|
515
|
-
'FUSE': 'FUSE',
|
|
516
|
-
'GLMR': 'GLMR',
|
|
517
|
-
'GRIN': 'GRIN',
|
|
518
|
-
'HBAR': 'Hedera(HBAR)',
|
|
519
|
-
'HIVE': 'HIVE',
|
|
520
485
|
'HRC20': 'HECO',
|
|
521
|
-
'
|
|
522
|
-
'ICP': 'Internet Computer(ICP)',
|
|
523
|
-
'INDEX': 'Index Chain',
|
|
524
|
-
'IOST': 'IOST',
|
|
525
|
-
'IOTA': 'IOTA',
|
|
526
|
-
'IOTX': 'IOTX',
|
|
527
|
-
'IRIS': 'IRIS',
|
|
528
|
-
'KAR': 'KAR',
|
|
529
|
-
'KAS': 'Kaspa(KAS)',
|
|
530
|
-
'KAVA': 'KAVA',
|
|
531
|
-
'KDA': 'KDA',
|
|
532
|
-
'KILT': 'KILT',
|
|
533
|
-
'KLAY': 'Klaytn(KLAY)',
|
|
534
|
-
'KMA': 'KMA',
|
|
535
|
-
'KSM': 'KSM',
|
|
536
|
-
'LAT': 'LAT',
|
|
537
|
-
'LAVA': 'Elysium(LAVA)',
|
|
538
|
-
'LTC': 'Litecoin(LTC)',
|
|
539
|
-
'LUNA': 'Terra(LUNA)',
|
|
540
|
-
'MASS': 'MASS',
|
|
541
|
-
'MATIC': 'Polygon(MATIC)',
|
|
542
|
-
'MCOIN': 'Mcoin Network',
|
|
543
|
-
'METIS': 'METIS',
|
|
544
|
-
'MINA': 'MINA',
|
|
545
|
-
'MNT': 'Mantle(MNT)',
|
|
546
|
-
'MOVR': 'MOVR',
|
|
547
|
-
'MTRG': 'Meter(MTRG)',
|
|
548
|
-
'NAS': 'NAS',
|
|
549
|
-
'NEAR': 'NEAR Protocol(NEAR)',
|
|
550
|
-
'NEBL': 'NEBL',
|
|
551
|
-
'NEM': 'NEM',
|
|
552
|
-
'NEO': 'NEO',
|
|
553
|
-
'NEO3': 'NEO3',
|
|
554
|
-
'NEOXA': 'Neoxa Network',
|
|
555
|
-
'NULS': 'NULS',
|
|
486
|
+
// 'KLAY': 'Klaytn(KLAY)',
|
|
556
487
|
'OASIS': 'ROSE',
|
|
557
|
-
'OASYS': 'OASYS',
|
|
558
488
|
'OKC': 'OKT',
|
|
559
|
-
'OMN': 'Omega Network(OMN)',
|
|
560
|
-
'OMNI': 'OMNI',
|
|
561
|
-
'ONE': 'ONE',
|
|
562
|
-
'ONT': 'ONT',
|
|
563
|
-
'OPTIMISM': 'Optimism(OP)',
|
|
564
|
-
'OSMO': 'OSMO',
|
|
565
|
-
'PLCU': 'PLCU',
|
|
566
|
-
'POKT': 'POKT',
|
|
567
|
-
'QKC': 'QKC',
|
|
568
|
-
'QTUM': 'QTUM',
|
|
569
|
-
'RAP20': 'RAP20' + ' ' + '(Rangers Mainnet)',
|
|
570
|
-
'REI': 'REI',
|
|
571
489
|
'RSK': 'RBTC',
|
|
572
|
-
'RVN': 'Ravencoin(RVN)',
|
|
573
|
-
'SATOX': 'Satoxcoin(SATOX)',
|
|
574
|
-
'SC': 'SC',
|
|
575
|
-
'SCRT': 'SCRT',
|
|
576
|
-
'SDN': 'SDN',
|
|
577
|
-
'SGB': 'SGB',
|
|
578
|
-
'SOL': 'Solana(SOL)',
|
|
579
|
-
'STAR': 'STAR',
|
|
580
|
-
'STARK': 'Starknet(STARK)',
|
|
581
|
-
'STEEM': 'STEEM',
|
|
582
|
-
'SYS': 'SYS',
|
|
583
|
-
'TAO': 'Bittensor(TAO)',
|
|
584
|
-
'TIA': 'Celestia(TIA)',
|
|
585
|
-
'TOMO': 'TOMO',
|
|
586
|
-
'TON': 'Toncoin(TON)',
|
|
587
|
-
'TRC10': 'TRC10',
|
|
588
|
-
'TRC20': 'Tron(TRC20)',
|
|
589
|
-
'UGAS': 'UGAS(Ultrain)',
|
|
590
|
-
'VET': 'VeChain(VET)',
|
|
591
|
-
'VEX': 'Vexanium(VEX)',
|
|
592
|
-
'VSYS': 'VSYS',
|
|
593
|
-
'WAVES': 'WAVES',
|
|
594
|
-
'WAX': 'WAX',
|
|
595
|
-
'WEMIX': 'WEMIX',
|
|
596
|
-
'XCH': 'Chia(XCH)',
|
|
597
|
-
'XDC': 'XDC',
|
|
598
|
-
'XEC': 'XEC',
|
|
599
|
-
'XLM': 'Stellar(XLM)',
|
|
600
|
-
'XMR': 'Monero(XMR)',
|
|
601
|
-
'XNA': 'Neurai(XNA)',
|
|
602
|
-
'XPR': 'XPR Network',
|
|
603
|
-
'XRD': 'XRD',
|
|
604
|
-
'XRP': 'Ripple(XRP)',
|
|
605
|
-
'XTZ': 'XTZ',
|
|
606
|
-
'XVG': 'XVG',
|
|
607
|
-
'XYM': 'XYM',
|
|
608
|
-
'ZEC': 'ZEC',
|
|
609
|
-
'ZEN': 'ZEN',
|
|
610
|
-
'ZIL': 'Zilliqa(ZIL)',
|
|
611
|
-
'ZTG': 'ZTG',
|
|
490
|
+
// 'RVN': 'Ravencoin(RVN)',
|
|
491
|
+
// 'SATOX': 'Satoxcoin(SATOX)',
|
|
492
|
+
// 'SC': 'SC',
|
|
493
|
+
// 'SCRT': 'SCRT',
|
|
494
|
+
// 'SDN': 'SDN',
|
|
495
|
+
// 'SGB': 'SGB',
|
|
496
|
+
// 'SOL': 'Solana(SOL)',
|
|
497
|
+
// 'STAR': 'STAR',
|
|
498
|
+
// 'STARK': 'Starknet(STARK)',
|
|
499
|
+
// 'STEEM': 'STEEM',
|
|
500
|
+
// 'SYS': 'SYS',
|
|
501
|
+
// 'TAO': 'Bittensor(TAO)',
|
|
502
|
+
// 'TIA': 'Celestia(TIA)',
|
|
503
|
+
// 'TOMO': 'TOMO',
|
|
504
|
+
// 'TON': 'Toncoin(TON)',
|
|
505
|
+
// 'TRC10': 'TRC10',
|
|
506
|
+
// 'TRC20': 'Tron(TRC20)',
|
|
507
|
+
// 'UGAS': 'UGAS(Ultrain)',
|
|
508
|
+
// 'VET': 'VeChain(VET)',
|
|
509
|
+
// 'VEX': 'Vexanium(VEX)',
|
|
510
|
+
// 'VSYS': 'VSYS',
|
|
511
|
+
// 'WAVES': 'WAVES',
|
|
512
|
+
// 'WAX': 'WAX',
|
|
513
|
+
// 'WEMIX': 'WEMIX',
|
|
514
|
+
// 'XCH': 'Chia(XCH)',
|
|
515
|
+
// 'XDC': 'XDC',
|
|
516
|
+
// 'XEC': 'XEC',
|
|
517
|
+
// 'XLM': 'Stellar(XLM)',
|
|
518
|
+
// 'XMR': 'Monero(XMR)',
|
|
519
|
+
// 'XNA': 'Neurai(XNA)',
|
|
520
|
+
// 'XPR': 'XPR Network',
|
|
521
|
+
// 'XRD': 'XRD',
|
|
522
|
+
// 'XRP': 'Ripple(XRP)',
|
|
523
|
+
// 'XTZ': 'XTZ',
|
|
524
|
+
// 'XVG': 'XVG',
|
|
525
|
+
// 'XYM': 'XYM',
|
|
526
|
+
// 'ZEC': 'ZEC',
|
|
527
|
+
// 'ZEN': 'ZEN',
|
|
528
|
+
// 'ZIL': 'Zilliqa(ZIL)',
|
|
529
|
+
// 'ZTG': 'ZTG',
|
|
612
530
|
// todo: uncomment below after concensus
|
|
613
531
|
// 'ALAYA': 'ATP',
|
|
614
532
|
// 'ANDUSCHAIN': 'DEB',
|
|
@@ -1011,7 +929,7 @@ export default class mexc extends Exchange {
|
|
|
1011
929
|
const chains = this.safeValue(currency, 'networkList', []);
|
|
1012
930
|
for (let j = 0; j < chains.length; j++) {
|
|
1013
931
|
const chain = chains[j];
|
|
1014
|
-
const networkId = this.safeString2(chain, '
|
|
932
|
+
const networkId = this.safeString2(chain, 'netWork', 'network');
|
|
1015
933
|
const network = this.networkIdToCode(networkId);
|
|
1016
934
|
const isDepositEnabled = this.safeBool(chain, 'depositEnable', false);
|
|
1017
935
|
const isWithdrawEnabled = this.safeBool(chain, 'withdrawEnable', false);
|
|
@@ -4394,7 +4312,7 @@ export default class mexc extends Exchange {
|
|
|
4394
4312
|
//
|
|
4395
4313
|
const address = this.safeString(depositAddress, 'address');
|
|
4396
4314
|
const currencyId = this.safeString(depositAddress, 'coin');
|
|
4397
|
-
const networkId = this.safeString(depositAddress, '
|
|
4315
|
+
const networkId = this.safeString(depositAddress, 'netWork');
|
|
4398
4316
|
this.checkAddress(address);
|
|
4399
4317
|
return {
|
|
4400
4318
|
'currency': this.safeCurrencyCode(currencyId, currency),
|
|
@@ -5175,14 +5093,14 @@ export default class mexc extends Exchange {
|
|
|
5175
5093
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
5176
5094
|
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
|
5177
5095
|
*/
|
|
5096
|
+
await this.loadMarkets();
|
|
5097
|
+
const currency = this.currency(code);
|
|
5178
5098
|
[tag, params] = this.handleWithdrawTagAndParams(tag, params);
|
|
5179
5099
|
const networks = this.safeDict(this.options, 'networks', {});
|
|
5180
5100
|
let network = this.safeString2(params, 'network', 'netWork'); // this line allows the user to specify either ERC20 or ETH
|
|
5181
5101
|
network = this.safeString(networks, network, network); // handle ETH > ERC-20 alias
|
|
5182
|
-
network = this.
|
|
5102
|
+
network = this.networkCodeToId(network, currency['code']);
|
|
5183
5103
|
this.checkAddress(address);
|
|
5184
|
-
await this.loadMarkets();
|
|
5185
|
-
const currency = this.currency(code);
|
|
5186
5104
|
const request = {
|
|
5187
5105
|
'coin': currency['id'],
|
|
5188
5106
|
'address': address,
|
package/js/src/okx.js
CHANGED
|
@@ -327,6 +327,7 @@ export default class okx extends Exchange {
|
|
|
327
327
|
'account/account-position-risk': 2,
|
|
328
328
|
'account/bills': 5 / 3,
|
|
329
329
|
'account/bills-archive': 5 / 3,
|
|
330
|
+
'account/bills-history-archive': 2,
|
|
330
331
|
'account/config': 4,
|
|
331
332
|
'account/max-size': 1,
|
|
332
333
|
'account/max-avail-size': 1,
|
|
@@ -481,6 +482,7 @@ export default class okx extends Exchange {
|
|
|
481
482
|
'account/fixed-loan/amend-borrowing-order': 5,
|
|
482
483
|
'account/fixed-loan/manual-reborrow': 5,
|
|
483
484
|
'account/fixed-loan/repay-borrowing-order': 5,
|
|
485
|
+
'account/bills-history-archive': 72000,
|
|
484
486
|
// subaccount
|
|
485
487
|
'users/subaccount/modify-apikey': 10,
|
|
486
488
|
'asset/subaccount/transfer': 10,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccxt",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.95",
|
|
4
4
|
"description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
|
|
5
5
|
"unpkg": "dist/ccxt.browser.min.js",
|
|
6
6
|
"type": "module",
|
|
@@ -127,6 +127,7 @@
|
|
|
127
127
|
"response-php-sync": "npm run ti-php -- --responseTests --sync",
|
|
128
128
|
"response-php": "npm run response-php-sync && npm run response-php-async",
|
|
129
129
|
"response-tests": "npm run response-js && npm run response-py && npm run response-php && npm run response-cs",
|
|
130
|
+
"static-data-updater": "tsx ./utils/update-static-json",
|
|
130
131
|
"id-tests-js": "npm run ti-js -- --idTests",
|
|
131
132
|
"id-tests-py": "npm run ti-py -- --idTests",
|
|
132
133
|
"id-tests-php": "npm run ti-php -- --idTests",
|