ccxt 4.4.74 → 4.4.77
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 +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +16 -9
- package/dist/cjs/src/binance.js +43 -219
- package/dist/cjs/src/bitget.js +1 -1
- package/dist/cjs/src/bitopro.js +37 -0
- package/dist/cjs/src/bitrue.js +48 -0
- package/dist/cjs/src/coinex.js +3 -0
- package/dist/cjs/src/coinlist.js +90 -1
- package/dist/cjs/src/okx.js +47 -33
- package/dist/cjs/src/paradex.js +3 -12
- package/dist/cjs/src/pro/hyperliquid.js +1 -1
- package/dist/cjs/src/upbit.js +64 -46
- package/dist/cjs/src/xt.js +122 -4
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/coinlist.d.ts +3 -0
- package/js/src/abstract/myokx.d.ts +4 -0
- package/js/src/abstract/okx.d.ts +4 -0
- package/js/src/abstract/upbit.d.ts +15 -1
- package/js/src/abstract/xt.d.ts +3 -0
- package/js/src/base/Exchange.d.ts +1 -0
- package/js/src/base/Exchange.js +16 -9
- package/js/src/binance.d.ts +2 -0
- package/js/src/binance.js +43 -219
- package/js/src/bitget.js +1 -1
- package/js/src/bitopro.js +37 -0
- package/js/src/bitrue.js +48 -0
- package/js/src/coinex.js +3 -0
- package/js/src/coinlist.d.ts +12 -1
- package/js/src/coinlist.js +90 -1
- package/js/src/okx.js +47 -33
- package/js/src/paradex.js +3 -12
- package/js/src/pro/hyperliquid.js +1 -1
- package/js/src/upbit.js +64 -46
- package/js/src/xt.d.ts +19 -0
- package/js/src/xt.js +122 -4
- package/package.json +1 -1
- package/js/src/abstract/bitcoincom.d.ts +0 -118
- package/js/src/abstract/bitcoincom.js +0 -11
- package/js/src/abstract/bitfinex1.d.ts +0 -72
- package/js/src/abstract/bitfinex1.js +0 -11
- package/js/src/abstract/bitpanda.d.ts +0 -26
- package/js/src/abstract/bitpanda.js +0 -5
- package/js/src/abstract/poloniexfutures.d.ts +0 -51
- package/js/src/abstract/poloniexfutures.js +0 -11
- package/js/src/abstract/wazirx.d.ts +0 -33
- package/js/src/abstract/wazirx.js +0 -11
- package/js/src/bitcoincom.d.ts +0 -4
- package/js/src/bitcoincom.js +0 -18
- package/js/src/bitpanda.d.ts +0 -4
- package/js/src/bitpanda.js +0 -17
- package/js/src/poloniexfutures.d.ts +0 -321
- package/js/src/poloniexfutures.js +0 -1941
- package/js/src/pro/bitcoincom.d.ts +0 -4
- package/js/src/pro/bitcoincom.js +0 -34
- package/js/src/pro/bitpanda.d.ts +0 -4
- package/js/src/pro/bitpanda.js +0 -17
- package/js/src/pro/poloniexfutures.d.ts +0 -108
- package/js/src/pro/poloniexfutures.js +0 -1042
- package/js/src/pro/wazirx.d.ts +0 -102
- package/js/src/pro/wazirx.js +0 -784
- package/js/src/static_dependencies/starknet/utils/json.d.ts +0 -24
- package/js/src/static_dependencies/starknet/utils/json.js +0 -43
|
@@ -15,6 +15,7 @@ interface Exchange {
|
|
|
15
15
|
publicGetV1Leaderboard(params?: {}): Promise<implicitReturnType>;
|
|
16
16
|
publicGetV1AffiliateCompetitionCode(params?: {}): Promise<implicitReturnType>;
|
|
17
17
|
publicGetV1CompetitionCompetitionId(params?: {}): Promise<implicitReturnType>;
|
|
18
|
+
publicGetV1SymbolsSymbolFunding(params?: {}): Promise<implicitReturnType>;
|
|
18
19
|
privateGetV1Fees(params?: {}): Promise<implicitReturnType>;
|
|
19
20
|
privateGetV1Accounts(params?: {}): Promise<implicitReturnType>;
|
|
20
21
|
privateGetV1AccountsTraderId(params?: {}): Promise<implicitReturnType>;
|
|
@@ -34,6 +35,7 @@ interface Exchange {
|
|
|
34
35
|
privateGetV1Credits(params?: {}): Promise<implicitReturnType>;
|
|
35
36
|
privateGetV1Positions(params?: {}): Promise<implicitReturnType>;
|
|
36
37
|
privateGetV1AccountsTraderIdCompetitions(params?: {}): Promise<implicitReturnType>;
|
|
38
|
+
privateGetV1ClosedPositions(params?: {}): Promise<implicitReturnType>;
|
|
37
39
|
privatePostV1Keys(params?: {}): Promise<implicitReturnType>;
|
|
38
40
|
privatePostV1Orders(params?: {}): Promise<implicitReturnType>;
|
|
39
41
|
privatePostV1OrdersCancelAllAfter(params?: {}): Promise<implicitReturnType>;
|
|
@@ -47,6 +49,7 @@ interface Exchange {
|
|
|
47
49
|
privatePostV1AccountsTraderIdCreateCompetition(params?: {}): Promise<implicitReturnType>;
|
|
48
50
|
privatePatchV1OrdersOrderId(params?: {}): Promise<implicitReturnType>;
|
|
49
51
|
privatePatchV1OrdersBulk(params?: {}): Promise<implicitReturnType>;
|
|
52
|
+
privatePutV1AccountsTraderIdAlias(params?: {}): Promise<implicitReturnType>;
|
|
50
53
|
privateDeleteV1KeysKey(params?: {}): Promise<implicitReturnType>;
|
|
51
54
|
privateDeleteV1Orders(params?: {}): Promise<implicitReturnType>;
|
|
52
55
|
privateDeleteV1OrdersOrderId(params?: {}): Promise<implicitReturnType>;
|
|
@@ -168,6 +168,7 @@ interface okx {
|
|
|
168
168
|
privateGetAssetSubaccountManagedSubaccountBills(params?: {}): Promise<implicitReturnType>;
|
|
169
169
|
privateGetUsersEntrustSubaccountList(params?: {}): Promise<implicitReturnType>;
|
|
170
170
|
privateGetAccountSubaccountInterestLimits(params?: {}): Promise<implicitReturnType>;
|
|
171
|
+
privateGetUsersSubaccountApikey(params?: {}): Promise<implicitReturnType>;
|
|
171
172
|
privateGetTradingBotGridOrdersAlgoPending(params?: {}): Promise<implicitReturnType>;
|
|
172
173
|
privateGetTradingBotGridOrdersAlgoHistory(params?: {}): Promise<implicitReturnType>;
|
|
173
174
|
privateGetTradingBotGridOrdersAlgoDetails(params?: {}): Promise<implicitReturnType>;
|
|
@@ -286,6 +287,9 @@ interface okx {
|
|
|
286
287
|
privatePostAssetSubaccountTransfer(params?: {}): Promise<implicitReturnType>;
|
|
287
288
|
privatePostUsersSubaccountSetTransferOut(params?: {}): Promise<implicitReturnType>;
|
|
288
289
|
privatePostAccountSubaccountSetLoanAllocation(params?: {}): Promise<implicitReturnType>;
|
|
290
|
+
privatePostUsersSubaccountCreateSubaccount(params?: {}): Promise<implicitReturnType>;
|
|
291
|
+
privatePostUsersSubaccountSubaccountApikey(params?: {}): Promise<implicitReturnType>;
|
|
292
|
+
privatePostUsersSubaccountDeleteApikey(params?: {}): Promise<implicitReturnType>;
|
|
289
293
|
privatePostTradingBotGridOrderAlgo(params?: {}): Promise<implicitReturnType>;
|
|
290
294
|
privatePostTradingBotGridAmendOrderAlgo(params?: {}): Promise<implicitReturnType>;
|
|
291
295
|
privatePostTradingBotGridStopOrderAlgo(params?: {}): Promise<implicitReturnType>;
|
package/js/src/abstract/okx.d.ts
CHANGED
|
@@ -168,6 +168,7 @@ interface Exchange {
|
|
|
168
168
|
privateGetAssetSubaccountManagedSubaccountBills(params?: {}): Promise<implicitReturnType>;
|
|
169
169
|
privateGetUsersEntrustSubaccountList(params?: {}): Promise<implicitReturnType>;
|
|
170
170
|
privateGetAccountSubaccountInterestLimits(params?: {}): Promise<implicitReturnType>;
|
|
171
|
+
privateGetUsersSubaccountApikey(params?: {}): Promise<implicitReturnType>;
|
|
171
172
|
privateGetTradingBotGridOrdersAlgoPending(params?: {}): Promise<implicitReturnType>;
|
|
172
173
|
privateGetTradingBotGridOrdersAlgoHistory(params?: {}): Promise<implicitReturnType>;
|
|
173
174
|
privateGetTradingBotGridOrdersAlgoDetails(params?: {}): Promise<implicitReturnType>;
|
|
@@ -286,6 +287,9 @@ interface Exchange {
|
|
|
286
287
|
privatePostAssetSubaccountTransfer(params?: {}): Promise<implicitReturnType>;
|
|
287
288
|
privatePostUsersSubaccountSetTransferOut(params?: {}): Promise<implicitReturnType>;
|
|
288
289
|
privatePostAccountSubaccountSetLoanAllocation(params?: {}): Promise<implicitReturnType>;
|
|
290
|
+
privatePostUsersSubaccountCreateSubaccount(params?: {}): Promise<implicitReturnType>;
|
|
291
|
+
privatePostUsersSubaccountSubaccountApikey(params?: {}): Promise<implicitReturnType>;
|
|
292
|
+
privatePostUsersSubaccountDeleteApikey(params?: {}): Promise<implicitReturnType>;
|
|
289
293
|
privatePostTradingBotGridOrderAlgo(params?: {}): Promise<implicitReturnType>;
|
|
290
294
|
privatePostTradingBotGridAmendOrderAlgo(params?: {}): Promise<implicitReturnType>;
|
|
291
295
|
privatePostTradingBotGridStopOrderAlgo(params?: {}): Promise<implicitReturnType>;
|
|
@@ -4,6 +4,7 @@ interface Exchange {
|
|
|
4
4
|
publicGetMarketAll(params?: {}): Promise<implicitReturnType>;
|
|
5
5
|
publicGetCandlesTimeframe(params?: {}): Promise<implicitReturnType>;
|
|
6
6
|
publicGetCandlesTimeframeUnit(params?: {}): Promise<implicitReturnType>;
|
|
7
|
+
publicGetCandlesSeconds(params?: {}): Promise<implicitReturnType>;
|
|
7
8
|
publicGetCandlesMinutesUnit(params?: {}): Promise<implicitReturnType>;
|
|
8
9
|
publicGetCandlesMinutes1(params?: {}): Promise<implicitReturnType>;
|
|
9
10
|
publicGetCandlesMinutes3(params?: {}): Promise<implicitReturnType>;
|
|
@@ -16,28 +17,41 @@ interface Exchange {
|
|
|
16
17
|
publicGetCandlesDays(params?: {}): Promise<implicitReturnType>;
|
|
17
18
|
publicGetCandlesWeeks(params?: {}): Promise<implicitReturnType>;
|
|
18
19
|
publicGetCandlesMonths(params?: {}): Promise<implicitReturnType>;
|
|
20
|
+
publicGetCandlesYears(params?: {}): Promise<implicitReturnType>;
|
|
19
21
|
publicGetTradesTicks(params?: {}): Promise<implicitReturnType>;
|
|
20
22
|
publicGetTicker(params?: {}): Promise<implicitReturnType>;
|
|
23
|
+
publicGetTickerAll(params?: {}): Promise<implicitReturnType>;
|
|
21
24
|
publicGetOrderbook(params?: {}): Promise<implicitReturnType>;
|
|
25
|
+
publicGetOrderbookSupportedLevels(params?: {}): Promise<implicitReturnType>;
|
|
22
26
|
privateGetAccounts(params?: {}): Promise<implicitReturnType>;
|
|
23
27
|
privateGetOrdersChance(params?: {}): Promise<implicitReturnType>;
|
|
24
28
|
privateGetOrder(params?: {}): Promise<implicitReturnType>;
|
|
25
|
-
privateGetOrders(params?: {}): Promise<implicitReturnType>;
|
|
26
29
|
privateGetOrdersClosed(params?: {}): Promise<implicitReturnType>;
|
|
27
30
|
privateGetOrdersOpen(params?: {}): Promise<implicitReturnType>;
|
|
28
31
|
privateGetOrdersUuids(params?: {}): Promise<implicitReturnType>;
|
|
29
32
|
privateGetWithdraws(params?: {}): Promise<implicitReturnType>;
|
|
30
33
|
privateGetWithdraw(params?: {}): Promise<implicitReturnType>;
|
|
31
34
|
privateGetWithdrawsChance(params?: {}): Promise<implicitReturnType>;
|
|
35
|
+
privateGetWithdrawsCoinAddresses(params?: {}): Promise<implicitReturnType>;
|
|
32
36
|
privateGetDeposits(params?: {}): Promise<implicitReturnType>;
|
|
37
|
+
privateGetDepositsChanceCoin(params?: {}): Promise<implicitReturnType>;
|
|
33
38
|
privateGetDeposit(params?: {}): Promise<implicitReturnType>;
|
|
34
39
|
privateGetDepositsCoinAddresses(params?: {}): Promise<implicitReturnType>;
|
|
35
40
|
privateGetDepositsCoinAddress(params?: {}): Promise<implicitReturnType>;
|
|
41
|
+
privateGetTravelRuleVasps(params?: {}): Promise<implicitReturnType>;
|
|
42
|
+
privateGetStatusWallet(params?: {}): Promise<implicitReturnType>;
|
|
43
|
+
privateGetApiKeys(params?: {}): Promise<implicitReturnType>;
|
|
36
44
|
privatePostOrders(params?: {}): Promise<implicitReturnType>;
|
|
45
|
+
privatePostOrdersCancelAndNew(params?: {}): Promise<implicitReturnType>;
|
|
37
46
|
privatePostWithdrawsCoin(params?: {}): Promise<implicitReturnType>;
|
|
38
47
|
privatePostWithdrawsKrw(params?: {}): Promise<implicitReturnType>;
|
|
48
|
+
privatePostDepositsKrw(params?: {}): Promise<implicitReturnType>;
|
|
39
49
|
privatePostDepositsGenerateCoinAddress(params?: {}): Promise<implicitReturnType>;
|
|
50
|
+
privatePostTravelRuleDepositUuid(params?: {}): Promise<implicitReturnType>;
|
|
51
|
+
privatePostTravelRuleDepositTxid(params?: {}): Promise<implicitReturnType>;
|
|
40
52
|
privateDeleteOrder(params?: {}): Promise<implicitReturnType>;
|
|
53
|
+
privateDeleteOrdersOpen(params?: {}): Promise<implicitReturnType>;
|
|
54
|
+
privateDeleteOrdersUuids(params?: {}): Promise<implicitReturnType>;
|
|
41
55
|
}
|
|
42
56
|
declare abstract class Exchange extends _Exchange {
|
|
43
57
|
}
|
package/js/src/abstract/xt.d.ts
CHANGED
|
@@ -72,6 +72,7 @@ interface Exchange {
|
|
|
72
72
|
privateSpotDeleteBatchOrder(params?: {}): Promise<implicitReturnType>;
|
|
73
73
|
privateSpotDeleteOpenOrder(params?: {}): Promise<implicitReturnType>;
|
|
74
74
|
privateSpotDeleteOrderOrderId(params?: {}): Promise<implicitReturnType>;
|
|
75
|
+
privateSpotPutOrderOrderId(params?: {}): Promise<implicitReturnType>;
|
|
75
76
|
privateLinearGetFutureTradeV1EntrustPlanDetail(params?: {}): Promise<implicitReturnType>;
|
|
76
77
|
privateLinearGetFutureTradeV1EntrustPlanList(params?: {}): Promise<implicitReturnType>;
|
|
77
78
|
privateLinearGetFutureTradeV1EntrustPlanListHistory(params?: {}): Promise<implicitReturnType>;
|
|
@@ -101,6 +102,7 @@ interface Exchange {
|
|
|
101
102
|
privateLinearPostFutureTradeV1OrderCancelAll(params?: {}): Promise<implicitReturnType>;
|
|
102
103
|
privateLinearPostFutureTradeV1OrderCreate(params?: {}): Promise<implicitReturnType>;
|
|
103
104
|
privateLinearPostFutureTradeV1OrderCreateBatch(params?: {}): Promise<implicitReturnType>;
|
|
105
|
+
privateLinearPostFutureTradeV1OrderUpdate(params?: {}): Promise<implicitReturnType>;
|
|
104
106
|
privateLinearPostFutureUserV1AccountOpen(params?: {}): Promise<implicitReturnType>;
|
|
105
107
|
privateLinearPostFutureUserV1PositionAdjustLeverage(params?: {}): Promise<implicitReturnType>;
|
|
106
108
|
privateLinearPostFutureUserV1PositionAutoMargin(params?: {}): Promise<implicitReturnType>;
|
|
@@ -138,6 +140,7 @@ interface Exchange {
|
|
|
138
140
|
privateInversePostFutureTradeV1OrderCancelAll(params?: {}): Promise<implicitReturnType>;
|
|
139
141
|
privateInversePostFutureTradeV1OrderCreate(params?: {}): Promise<implicitReturnType>;
|
|
140
142
|
privateInversePostFutureTradeV1OrderCreateBatch(params?: {}): Promise<implicitReturnType>;
|
|
143
|
+
privateInversePostFutureTradeV1OrderUpdate(params?: {}): Promise<implicitReturnType>;
|
|
141
144
|
privateInversePostFutureUserV1AccountOpen(params?: {}): Promise<implicitReturnType>;
|
|
142
145
|
privateInversePostFutureUserV1PositionAdjustLeverage(params?: {}): Promise<implicitReturnType>;
|
|
143
146
|
privateInversePostFutureUserV1PositionAutoMargin(params?: {}): Promise<implicitReturnType>;
|
|
@@ -400,6 +400,7 @@ export default class Exchange {
|
|
|
400
400
|
getCacheIndex(orderbook: any, deltas: any): number;
|
|
401
401
|
findTimeframe(timeframe: any, timeframes?: any): string;
|
|
402
402
|
checkProxyUrlSettings(url?: Str, method?: Str, headers?: any, body?: any): any;
|
|
403
|
+
urlEncoderForProxyUrl(targetUrl: string): string;
|
|
403
404
|
checkProxySettings(url?: Str, method?: Str, headers?: any, body?: any): any[];
|
|
404
405
|
checkWsProxySettings(): any[];
|
|
405
406
|
checkConflictingProxies(proxyAgentSet: any, proxyUrlSet: any): void;
|
package/js/src/base/Exchange.js
CHANGED
|
@@ -547,7 +547,7 @@ export default class Exchange {
|
|
|
547
547
|
httpProxyAgent = this.httpAgent;
|
|
548
548
|
}
|
|
549
549
|
}
|
|
550
|
-
url = proxyUrl + url;
|
|
550
|
+
url = proxyUrl + this.urlEncoderForProxyUrl(url);
|
|
551
551
|
}
|
|
552
552
|
// proxy agents
|
|
553
553
|
const [httpProxy, httpsProxy, socksProxy] = this.checkProxySettings(url, method, headers, body);
|
|
@@ -1751,6 +1751,12 @@ export default class Exchange {
|
|
|
1751
1751
|
}
|
|
1752
1752
|
return proxyUrl;
|
|
1753
1753
|
}
|
|
1754
|
+
urlEncoderForProxyUrl(targetUrl) {
|
|
1755
|
+
// to be overriden
|
|
1756
|
+
const includesQuery = targetUrl.indexOf('?') >= 0;
|
|
1757
|
+
const finalUrl = includesQuery ? this.encodeURIComponent(targetUrl) : targetUrl;
|
|
1758
|
+
return finalUrl;
|
|
1759
|
+
}
|
|
1754
1760
|
checkProxySettings(url = undefined, method = undefined, headers = undefined, body = undefined) {
|
|
1755
1761
|
const usedProxies = [];
|
|
1756
1762
|
let httpProxy = undefined;
|
|
@@ -2499,9 +2505,6 @@ export default class Exchange {
|
|
|
2499
2505
|
}
|
|
2500
2506
|
safeCurrencyStructure(currency) {
|
|
2501
2507
|
// derive data from networks: deposit, withdraw, active, fee, limits, precision
|
|
2502
|
-
const currencyDeposit = this.safeBool(currency, 'deposit');
|
|
2503
|
-
const currencyWithdraw = this.safeBool(currency, 'withdraw');
|
|
2504
|
-
const currencyActive = this.safeBool(currency, 'active');
|
|
2505
2508
|
const networks = this.safeDict(currency, 'networks', {});
|
|
2506
2509
|
const keys = Object.keys(networks);
|
|
2507
2510
|
const length = keys.length;
|
|
@@ -2510,19 +2513,18 @@ export default class Exchange {
|
|
|
2510
2513
|
const key = keys[i];
|
|
2511
2514
|
const network = networks[key];
|
|
2512
2515
|
const deposit = this.safeBool(network, 'deposit');
|
|
2516
|
+
const currencyDeposit = this.safeBool(currency, 'deposit');
|
|
2513
2517
|
if (currencyDeposit === undefined || deposit) {
|
|
2514
2518
|
currency['deposit'] = deposit;
|
|
2515
2519
|
}
|
|
2516
2520
|
const withdraw = this.safeBool(network, 'withdraw');
|
|
2521
|
+
const currencyWithdraw = this.safeBool(currency, 'withdraw');
|
|
2517
2522
|
if (currencyWithdraw === undefined || withdraw) {
|
|
2518
2523
|
currency['withdraw'] = withdraw;
|
|
2519
2524
|
}
|
|
2520
|
-
const active = this.safeBool(network, 'active');
|
|
2521
|
-
if (currencyActive === undefined || active) {
|
|
2522
|
-
currency['active'] = active;
|
|
2523
|
-
}
|
|
2524
2525
|
// set network 'active' to false if D or W is disabled
|
|
2525
|
-
|
|
2526
|
+
let active = this.safeBool(network, 'active');
|
|
2527
|
+
if (active === undefined) {
|
|
2526
2528
|
if (deposit && withdraw) {
|
|
2527
2529
|
currency['networks'][key]['active'] = true;
|
|
2528
2530
|
}
|
|
@@ -2530,6 +2532,11 @@ export default class Exchange {
|
|
|
2530
2532
|
currency['networks'][key]['active'] = false;
|
|
2531
2533
|
}
|
|
2532
2534
|
}
|
|
2535
|
+
active = this.safeBool(network, 'active');
|
|
2536
|
+
const currencyActive = this.safeBool(currency, 'active');
|
|
2537
|
+
if (currencyActive === undefined || active) {
|
|
2538
|
+
currency['active'] = active;
|
|
2539
|
+
}
|
|
2533
2540
|
// find lowest fee (which is more desired)
|
|
2534
2541
|
const fee = this.safeString(network, 'fee');
|
|
2535
2542
|
const feeMain = this.safeString(currency, 'fee');
|
package/js/src/binance.d.ts
CHANGED
|
@@ -1193,6 +1193,8 @@ export default class binance extends Exchange {
|
|
|
1193
1193
|
fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
|
|
1194
1194
|
parseLedgerEntry(item: Dict, currency?: Currency): LedgerEntry;
|
|
1195
1195
|
parseLedgerEntryType(type: any): string;
|
|
1196
|
+
getNetworkCodeByNetworkUrl(currencyCode: string, depositUrl?: Str): Str;
|
|
1197
|
+
getBaseDomainFromUrl(url: Str): Str;
|
|
1196
1198
|
sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
|
|
1197
1199
|
url: any;
|
|
1198
1200
|
method: string;
|
package/js/src/binance.js
CHANGED
|
@@ -1330,195 +1330,8 @@ export default class binance extends Exchange {
|
|
|
1330
1330
|
'SPL': 'SOL',
|
|
1331
1331
|
'SOL': 'SOL', // we shouldn't rename SOL
|
|
1332
1332
|
},
|
|
1333
|
-
// keeping this object for backward-compatibility
|
|
1334
|
-
'reverseNetworks': {
|
|
1335
|
-
'tronscan.org': 'TRC20',
|
|
1336
|
-
'etherscan.io': 'ERC20',
|
|
1337
|
-
'bscscan.com': 'BSC',
|
|
1338
|
-
'explorer.binance.org': 'BEP2',
|
|
1339
|
-
'bithomp.com': 'XRP',
|
|
1340
|
-
'bloks.io': 'EOS',
|
|
1341
|
-
'stellar.expert': 'XLM',
|
|
1342
|
-
'blockchair.com/bitcoin': 'BTC',
|
|
1343
|
-
'blockchair.com/bitcoin-cash': 'BCH',
|
|
1344
|
-
'blockchair.com/ecash': 'XEC',
|
|
1345
|
-
'explorer.litecoin.net': 'LTC',
|
|
1346
|
-
'explorer.avax.network': 'AVAX',
|
|
1347
|
-
'solscan.io': 'SOL',
|
|
1348
|
-
'polkadot.subscan.io': 'DOT',
|
|
1349
|
-
'dashboard.internetcomputer.org': 'ICP',
|
|
1350
|
-
'explorer.chiliz.com': 'CHZ',
|
|
1351
|
-
'cardanoscan.io': 'ADA',
|
|
1352
|
-
'mainnet.theoan.com': 'AION',
|
|
1353
|
-
'algoexplorer.io': 'ALGO',
|
|
1354
|
-
'explorer.ambrosus.com': 'AMB',
|
|
1355
|
-
'viewblock.io/zilliqa': 'ZIL',
|
|
1356
|
-
'viewblock.io/arweave': 'AR',
|
|
1357
|
-
'explorer.ark.io': 'ARK',
|
|
1358
|
-
'atomscan.com': 'ATOM',
|
|
1359
|
-
'www.mintscan.io': 'CTK',
|
|
1360
|
-
'explorer.bitcoindiamond.org': 'BCD',
|
|
1361
|
-
'btgexplorer.com': 'BTG',
|
|
1362
|
-
'bts.ai': 'BTS',
|
|
1363
|
-
'explorer.celo.org': 'CELO',
|
|
1364
|
-
'explorer.nervos.org': 'CKB',
|
|
1365
|
-
'cerebro.cortexlabs.ai': 'CTXC',
|
|
1366
|
-
'chainz.cryptoid.info': 'VIA',
|
|
1367
|
-
'explorer.dcrdata.org': 'DCR',
|
|
1368
|
-
'digiexplorer.info': 'DGB',
|
|
1369
|
-
'dock.subscan.io': 'DOCK',
|
|
1370
|
-
'dogechain.info': 'DOGE',
|
|
1371
|
-
'explorer.elrond.com': 'EGLD',
|
|
1372
|
-
'blockscout.com': 'ETC',
|
|
1373
|
-
'explore-fetchhub.fetch.ai': 'FET',
|
|
1374
|
-
'filfox.info': 'FIL',
|
|
1375
|
-
'fio.bloks.io': 'FIO',
|
|
1376
|
-
'explorer.firo.org': 'FIRO',
|
|
1377
|
-
'neoscan.io': 'NEO',
|
|
1378
|
-
'ftmscan.com': 'FTM',
|
|
1379
|
-
'explorer.gochain.io': 'GO',
|
|
1380
|
-
'block.gxb.io': 'GXS',
|
|
1381
|
-
'hash-hash.info': 'HBAR',
|
|
1382
|
-
'www.hiveblockexplorer.com': 'HIVE',
|
|
1383
|
-
'explorer.helium.com': 'HNT',
|
|
1384
|
-
'tracker.icon.foundation': 'ICX',
|
|
1385
|
-
'www.iostabc.com': 'IOST',
|
|
1386
|
-
'explorer.iota.org': 'IOTA',
|
|
1387
|
-
'iotexscan.io': 'IOTX',
|
|
1388
|
-
'irishub.iobscan.io': 'IRIS',
|
|
1389
|
-
'kava.mintscan.io': 'KAVA',
|
|
1390
|
-
'scope.klaytn.com': 'KLAY',
|
|
1391
|
-
'kmdexplorer.io': 'KMD',
|
|
1392
|
-
'kusama.subscan.io': 'KSM',
|
|
1393
|
-
'explorer.lto.network': 'LTO',
|
|
1394
|
-
'polygonscan.com': 'POLYGON',
|
|
1395
|
-
'explorer.ont.io': 'ONT',
|
|
1396
|
-
'minaexplorer.com': 'MINA',
|
|
1397
|
-
'nanolooker.com': 'NANO',
|
|
1398
|
-
'explorer.nebulas.io': 'NAS',
|
|
1399
|
-
'explorer.nbs.plus': 'NBS',
|
|
1400
|
-
'explorer.nebl.io': 'NEBL',
|
|
1401
|
-
'nulscan.io': 'NULS',
|
|
1402
|
-
'nxscan.com': 'NXS',
|
|
1403
|
-
'explorer.harmony.one': 'ONE',
|
|
1404
|
-
'explorer.poa.network': 'POA',
|
|
1405
|
-
'qtum.info': 'QTUM',
|
|
1406
|
-
'explorer.rsk.co': 'RSK',
|
|
1407
|
-
'www.oasisscan.com': 'ROSE',
|
|
1408
|
-
'ravencoin.network': 'RVN',
|
|
1409
|
-
'sc.tokenview.com': 'SC',
|
|
1410
|
-
'secretnodes.com': 'SCRT',
|
|
1411
|
-
'explorer.skycoin.com': 'SKY',
|
|
1412
|
-
'steemscan.com': 'STEEM',
|
|
1413
|
-
'explorer.stacks.co': 'STX',
|
|
1414
|
-
'www.thetascan.io': 'THETA',
|
|
1415
|
-
'scan.tomochain.com': 'TOMO',
|
|
1416
|
-
'explore.vechain.org': 'VET',
|
|
1417
|
-
'explorer.vite.net': 'VITE',
|
|
1418
|
-
'www.wanscan.org': 'WAN',
|
|
1419
|
-
'wavesexplorer.com': 'WAVES',
|
|
1420
|
-
'wax.eosx.io': 'WAXP',
|
|
1421
|
-
'waltonchain.pro': 'WTC',
|
|
1422
|
-
'chain.nem.ninja': 'XEM',
|
|
1423
|
-
'verge-blockchain.info': 'XVG',
|
|
1424
|
-
'explorer.yoyow.org': 'YOYOW',
|
|
1425
|
-
'explorer.zcha.in': 'ZEC',
|
|
1426
|
-
'explorer.zensystem.io': 'ZEN',
|
|
1427
|
-
},
|
|
1428
1333
|
'networksById': {
|
|
1429
|
-
'SOL': 'SOL',
|
|
1430
|
-
'tronscan.org': 'TRC20',
|
|
1431
|
-
'etherscan.io': 'ERC20',
|
|
1432
|
-
'bscscan.com': 'BSC',
|
|
1433
|
-
'explorer.binance.org': 'BEP2',
|
|
1434
|
-
'bithomp.com': 'XRP',
|
|
1435
|
-
'bloks.io': 'EOS',
|
|
1436
|
-
'stellar.expert': 'XLM',
|
|
1437
|
-
'blockchair.com/bitcoin': 'BTC',
|
|
1438
|
-
'blockchair.com/bitcoin-cash': 'BCH',
|
|
1439
|
-
'blockchair.com/ecash': 'XEC',
|
|
1440
|
-
'explorer.litecoin.net': 'LTC',
|
|
1441
|
-
'explorer.avax.network': 'AVAX',
|
|
1442
|
-
'solscan.io': 'SOL',
|
|
1443
|
-
'polkadot.subscan.io': 'DOT',
|
|
1444
|
-
'dashboard.internetcomputer.org': 'ICP',
|
|
1445
|
-
'explorer.chiliz.com': 'CHZ',
|
|
1446
|
-
'cardanoscan.io': 'ADA',
|
|
1447
|
-
'mainnet.theoan.com': 'AION',
|
|
1448
|
-
'algoexplorer.io': 'ALGO',
|
|
1449
|
-
'explorer.ambrosus.com': 'AMB',
|
|
1450
|
-
'viewblock.io/zilliqa': 'ZIL',
|
|
1451
|
-
'viewblock.io/arweave': 'AR',
|
|
1452
|
-
'explorer.ark.io': 'ARK',
|
|
1453
|
-
'atomscan.com': 'ATOM',
|
|
1454
|
-
'www.mintscan.io': 'CTK',
|
|
1455
|
-
'explorer.bitcoindiamond.org': 'BCD',
|
|
1456
|
-
'btgexplorer.com': 'BTG',
|
|
1457
|
-
'bts.ai': 'BTS',
|
|
1458
|
-
'explorer.celo.org': 'CELO',
|
|
1459
|
-
'explorer.nervos.org': 'CKB',
|
|
1460
|
-
'cerebro.cortexlabs.ai': 'CTXC',
|
|
1461
|
-
'chainz.cryptoid.info': 'VIA',
|
|
1462
|
-
'explorer.dcrdata.org': 'DCR',
|
|
1463
|
-
'digiexplorer.info': 'DGB',
|
|
1464
|
-
'dock.subscan.io': 'DOCK',
|
|
1465
|
-
'dogechain.info': 'DOGE',
|
|
1466
|
-
'explorer.elrond.com': 'EGLD',
|
|
1467
|
-
'blockscout.com': 'ETC',
|
|
1468
|
-
'explore-fetchhub.fetch.ai': 'FET',
|
|
1469
|
-
'filfox.info': 'FIL',
|
|
1470
|
-
'fio.bloks.io': 'FIO',
|
|
1471
|
-
'explorer.firo.org': 'FIRO',
|
|
1472
|
-
'neoscan.io': 'NEO',
|
|
1473
|
-
'ftmscan.com': 'FTM',
|
|
1474
|
-
'explorer.gochain.io': 'GO',
|
|
1475
|
-
'block.gxb.io': 'GXS',
|
|
1476
|
-
'hash-hash.info': 'HBAR',
|
|
1477
|
-
'www.hiveblockexplorer.com': 'HIVE',
|
|
1478
|
-
'explorer.helium.com': 'HNT',
|
|
1479
|
-
'tracker.icon.foundation': 'ICX',
|
|
1480
|
-
'www.iostabc.com': 'IOST',
|
|
1481
|
-
'explorer.iota.org': 'IOTA',
|
|
1482
|
-
'iotexscan.io': 'IOTX',
|
|
1483
|
-
'irishub.iobscan.io': 'IRIS',
|
|
1484
|
-
'kava.mintscan.io': 'KAVA',
|
|
1485
|
-
'scope.klaytn.com': 'KLAY',
|
|
1486
|
-
'kmdexplorer.io': 'KMD',
|
|
1487
|
-
'kusama.subscan.io': 'KSM',
|
|
1488
|
-
'explorer.lto.network': 'LTO',
|
|
1489
|
-
'polygonscan.com': 'POLYGON',
|
|
1490
|
-
'explorer.ont.io': 'ONT',
|
|
1491
|
-
'minaexplorer.com': 'MINA',
|
|
1492
|
-
'nanolooker.com': 'NANO',
|
|
1493
|
-
'explorer.nebulas.io': 'NAS',
|
|
1494
|
-
'explorer.nbs.plus': 'NBS',
|
|
1495
|
-
'explorer.nebl.io': 'NEBL',
|
|
1496
|
-
'nulscan.io': 'NULS',
|
|
1497
|
-
'nxscan.com': 'NXS',
|
|
1498
|
-
'explorer.harmony.one': 'ONE',
|
|
1499
|
-
'explorer.poa.network': 'POA',
|
|
1500
|
-
'qtum.info': 'QTUM',
|
|
1501
|
-
'explorer.rsk.co': 'RSK',
|
|
1502
|
-
'www.oasisscan.com': 'ROSE',
|
|
1503
|
-
'ravencoin.network': 'RVN',
|
|
1504
|
-
'sc.tokenview.com': 'SC',
|
|
1505
|
-
'secretnodes.com': 'SCRT',
|
|
1506
|
-
'explorer.skycoin.com': 'SKY',
|
|
1507
|
-
'steemscan.com': 'STEEM',
|
|
1508
|
-
'explorer.stacks.co': 'STX',
|
|
1509
|
-
'www.thetascan.io': 'THETA',
|
|
1510
|
-
'scan.tomochain.com': 'TOMO',
|
|
1511
|
-
'explore.vechain.org': 'VET',
|
|
1512
|
-
'explorer.vite.net': 'VITE',
|
|
1513
|
-
'www.wanscan.org': 'WAN',
|
|
1514
|
-
'wavesexplorer.com': 'WAVES',
|
|
1515
|
-
'wax.eosx.io': 'WAXP',
|
|
1516
|
-
'waltonchain.pro': 'WTC',
|
|
1517
|
-
'chain.nem.ninja': 'XEM',
|
|
1518
|
-
'verge-blockchain.info': 'XVG',
|
|
1519
|
-
'explorer.yoyow.org': 'YOYOW',
|
|
1520
|
-
'explorer.zcha.in': 'ZEC',
|
|
1521
|
-
'explorer.zensystem.io': 'ZEN',
|
|
1334
|
+
'SOL': 'SOL', // temporary fix for SPL definition
|
|
1522
1335
|
},
|
|
1523
1336
|
'impliedNetworks': {
|
|
1524
1337
|
'ETH': { 'ERC20': 'ETH' },
|
|
@@ -9258,43 +9071,19 @@ export default class binance extends Exchange {
|
|
|
9258
9071
|
parseDepositAddress(response, currency = undefined) {
|
|
9259
9072
|
//
|
|
9260
9073
|
// {
|
|
9261
|
-
// "
|
|
9074
|
+
// "coin": "XRP",
|
|
9262
9075
|
// "address": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh",
|
|
9263
9076
|
// "tag": "108618262",
|
|
9264
|
-
// "
|
|
9265
|
-
// "coin": "XRP",
|
|
9266
|
-
// "address": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh",
|
|
9267
|
-
// "tag": "108618262",
|
|
9268
|
-
// "url": "https://bithomp.com/explorer/rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh"
|
|
9269
|
-
// }
|
|
9077
|
+
// "url": "https://bithomp.com/explorer/rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh"
|
|
9270
9078
|
// }
|
|
9271
9079
|
//
|
|
9272
|
-
const
|
|
9273
|
-
const url = this.safeString(info, 'url');
|
|
9080
|
+
const url = this.safeString(response, 'url');
|
|
9274
9081
|
const address = this.safeString(response, 'address');
|
|
9275
9082
|
const currencyId = this.safeString(response, 'currency');
|
|
9276
9083
|
const code = this.safeCurrencyCode(currencyId, currency);
|
|
9277
|
-
|
|
9278
|
-
|
|
9279
|
-
|
|
9280
|
-
const parts = url.split('/');
|
|
9281
|
-
let topLevel = this.safeString(parts, 2);
|
|
9282
|
-
if ((topLevel === 'blockchair.com') || (topLevel === 'viewblock.io')) {
|
|
9283
|
-
const subLevel = this.safeString(parts, 3);
|
|
9284
|
-
if (subLevel !== undefined) {
|
|
9285
|
-
topLevel = topLevel + '/' + subLevel;
|
|
9286
|
-
}
|
|
9287
|
-
}
|
|
9288
|
-
impliedNetwork = this.safeString(reverseNetworks, topLevel);
|
|
9289
|
-
const impliedNetworks = this.safeDict(this.options, 'impliedNetworks', {
|
|
9290
|
-
'ETH': { 'ERC20': 'ETH' },
|
|
9291
|
-
'TRX': { 'TRC20': 'TRX' },
|
|
9292
|
-
});
|
|
9293
|
-
if (code in impliedNetworks) {
|
|
9294
|
-
const conversion = this.safeDict(impliedNetworks, code, {});
|
|
9295
|
-
impliedNetwork = this.safeString(conversion, impliedNetwork, impliedNetwork);
|
|
9296
|
-
}
|
|
9297
|
-
}
|
|
9084
|
+
// deposit-address endpoint provides only network url (not network ID/CODE)
|
|
9085
|
+
// so we should map the url to network (their data is inside currencies)
|
|
9086
|
+
const networkCode = this.getNetworkCodeByNetworkUrl(code, url);
|
|
9298
9087
|
let tag = this.safeString(response, 'tag', '');
|
|
9299
9088
|
if (tag.length === 0) {
|
|
9300
9089
|
tag = undefined;
|
|
@@ -9303,7 +9092,7 @@ export default class binance extends Exchange {
|
|
|
9303
9092
|
return {
|
|
9304
9093
|
'info': response,
|
|
9305
9094
|
'currency': code,
|
|
9306
|
-
'network':
|
|
9095
|
+
'network': networkCode,
|
|
9307
9096
|
'address': address,
|
|
9308
9097
|
'tag': tag,
|
|
9309
9098
|
};
|
|
@@ -12073,6 +11862,41 @@ export default class binance extends Exchange {
|
|
|
12073
11862
|
};
|
|
12074
11863
|
return this.safeString(ledgerType, type, type);
|
|
12075
11864
|
}
|
|
11865
|
+
getNetworkCodeByNetworkUrl(currencyCode, depositUrl = undefined) {
|
|
11866
|
+
// depositUrl is like : https://bscscan.com/address/0xEF238AB229342849..
|
|
11867
|
+
if (depositUrl === undefined) {
|
|
11868
|
+
return undefined;
|
|
11869
|
+
}
|
|
11870
|
+
let networkCode = undefined;
|
|
11871
|
+
const currency = this.currency(currencyCode);
|
|
11872
|
+
const networks = this.safeDict(currency, 'networks', {});
|
|
11873
|
+
const networkCodes = Object.keys(networks);
|
|
11874
|
+
for (let i = 0; i < networkCodes.length; i++) {
|
|
11875
|
+
const currentNetworkCode = networkCodes[i];
|
|
11876
|
+
const info = this.safeDict(networks[currentNetworkCode], 'info', {});
|
|
11877
|
+
const siteUrl = this.safeString(info, 'contractAddressUrl');
|
|
11878
|
+
// check if url matches the field's value
|
|
11879
|
+
if (siteUrl !== undefined && depositUrl.startsWith(this.getBaseDomainFromUrl(siteUrl))) {
|
|
11880
|
+
networkCode = currentNetworkCode;
|
|
11881
|
+
}
|
|
11882
|
+
}
|
|
11883
|
+
return networkCode;
|
|
11884
|
+
}
|
|
11885
|
+
getBaseDomainFromUrl(url) {
|
|
11886
|
+
if (url === undefined) {
|
|
11887
|
+
return undefined;
|
|
11888
|
+
}
|
|
11889
|
+
const urlParts = url.split('/');
|
|
11890
|
+
const scheme = this.safeString(urlParts, 0);
|
|
11891
|
+
if (scheme === undefined) {
|
|
11892
|
+
return undefined;
|
|
11893
|
+
}
|
|
11894
|
+
const domain = this.safeString(urlParts, 2);
|
|
11895
|
+
if (domain === undefined) {
|
|
11896
|
+
return undefined;
|
|
11897
|
+
}
|
|
11898
|
+
return scheme + '//' + domain + '/';
|
|
11899
|
+
}
|
|
12076
11900
|
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
12077
11901
|
const urls = this.urls;
|
|
12078
11902
|
if (!(api in urls['api'])) {
|
package/js/src/bitget.js
CHANGED
|
@@ -3281,7 +3281,7 @@ export default class bitget extends Exchange {
|
|
|
3281
3281
|
}
|
|
3282
3282
|
}
|
|
3283
3283
|
else {
|
|
3284
|
-
request['businessType'] = '
|
|
3284
|
+
request['businessType'] = 'mix';
|
|
3285
3285
|
}
|
|
3286
3286
|
const response = await this.privateCommonGetV2CommonTradeRate(this.extend(request, params));
|
|
3287
3287
|
//
|
package/js/src/bitopro.js
CHANGED
|
@@ -25,19 +25,29 @@ export default class bitopro extends Exchange {
|
|
|
25
25
|
'swap': false,
|
|
26
26
|
'future': false,
|
|
27
27
|
'option': false,
|
|
28
|
+
'addMargin': false,
|
|
29
|
+
'borrowCrossMargin': false,
|
|
30
|
+
'borrowIsolatedMargin': false,
|
|
31
|
+
'borrowMargin': false,
|
|
28
32
|
'cancelAllOrders': true,
|
|
29
33
|
'cancelOrder': true,
|
|
30
34
|
'cancelOrders': true,
|
|
31
35
|
'closeAllPositions': false,
|
|
32
36
|
'closePosition': false,
|
|
33
37
|
'createOrder': true,
|
|
38
|
+
'createOrderWithTakeProfitAndStopLoss': false,
|
|
39
|
+
'createOrderWithTakeProfitAndStopLossWs': false,
|
|
34
40
|
'createReduceOnlyOrder': false,
|
|
35
41
|
'createStopOrder': true,
|
|
36
42
|
'createTriggerOrder': true,
|
|
37
43
|
'editOrder': false,
|
|
38
44
|
'fetchBalance': true,
|
|
45
|
+
'fetchBorrowInterest': false,
|
|
46
|
+
'fetchBorrowRate': false,
|
|
39
47
|
'fetchBorrowRateHistories': false,
|
|
40
48
|
'fetchBorrowRateHistory': false,
|
|
49
|
+
'fetchBorrowRates': false,
|
|
50
|
+
'fetchBorrowRatesPerSymbol': false,
|
|
41
51
|
'fetchClosedOrders': true,
|
|
42
52
|
'fetchCrossBorrowRate': false,
|
|
43
53
|
'fetchCrossBorrowRates': false,
|
|
@@ -48,19 +58,39 @@ export default class bitopro extends Exchange {
|
|
|
48
58
|
'fetchDepositWithdrawFee': 'emulated',
|
|
49
59
|
'fetchDepositWithdrawFees': true,
|
|
50
60
|
'fetchFundingHistory': false,
|
|
61
|
+
'fetchFundingInterval': false,
|
|
62
|
+
'fetchFundingIntervals': false,
|
|
51
63
|
'fetchFundingRate': false,
|
|
52
64
|
'fetchFundingRateHistory': false,
|
|
53
65
|
'fetchFundingRates': false,
|
|
66
|
+
'fetchGreeks': false,
|
|
54
67
|
'fetchIndexOHLCV': false,
|
|
55
68
|
'fetchIsolatedBorrowRate': false,
|
|
56
69
|
'fetchIsolatedBorrowRates': false,
|
|
70
|
+
'fetchIsolatedPositions': false,
|
|
71
|
+
'fetchLeverage': false,
|
|
72
|
+
'fetchLeverages': false,
|
|
73
|
+
'fetchLeverageTiers': false,
|
|
74
|
+
'fetchLiquidations': false,
|
|
75
|
+
'fetchLongShortRatio': false,
|
|
76
|
+
'fetchLongShortRatioHistory': false,
|
|
77
|
+
'fetchMarginAdjustmentHistory': false,
|
|
57
78
|
'fetchMarginMode': false,
|
|
79
|
+
'fetchMarginModes': false,
|
|
80
|
+
'fetchMarketLeverageTiers': false,
|
|
58
81
|
'fetchMarkets': true,
|
|
59
82
|
'fetchMarkOHLCV': false,
|
|
83
|
+
'fetchMarkPrices': false,
|
|
84
|
+
'fetchMyLiquidations': false,
|
|
85
|
+
'fetchMySettlementHistory': false,
|
|
60
86
|
'fetchMyTrades': true,
|
|
61
87
|
'fetchOHLCV': true,
|
|
88
|
+
'fetchOpenInterest': false,
|
|
62
89
|
'fetchOpenInterestHistory': false,
|
|
90
|
+
'fetchOpenInterests': false,
|
|
63
91
|
'fetchOpenOrders': true,
|
|
92
|
+
'fetchOption': false,
|
|
93
|
+
'fetchOptionChain': false,
|
|
64
94
|
'fetchOrder': true,
|
|
65
95
|
'fetchOrderBook': true,
|
|
66
96
|
'fetchOrders': false,
|
|
@@ -73,6 +103,7 @@ export default class bitopro extends Exchange {
|
|
|
73
103
|
'fetchPositionsHistory': false,
|
|
74
104
|
'fetchPositionsRisk': false,
|
|
75
105
|
'fetchPremiumIndexOHLCV': false,
|
|
106
|
+
'fetchSettlementHistory': false,
|
|
76
107
|
'fetchTicker': true,
|
|
77
108
|
'fetchTickers': true,
|
|
78
109
|
'fetchTime': false,
|
|
@@ -83,10 +114,16 @@ export default class bitopro extends Exchange {
|
|
|
83
114
|
'fetchTransactions': false,
|
|
84
115
|
'fetchTransfer': false,
|
|
85
116
|
'fetchTransfers': false,
|
|
117
|
+
'fetchVolatilityHistory': false,
|
|
86
118
|
'fetchWithdrawal': true,
|
|
87
119
|
'fetchWithdrawals': true,
|
|
120
|
+
'reduceMargin': false,
|
|
121
|
+
'repayCrossMargin': false,
|
|
122
|
+
'repayIsolatedMargin': false,
|
|
88
123
|
'setLeverage': false,
|
|
124
|
+
'setMargin': false,
|
|
89
125
|
'setMarginMode': false,
|
|
126
|
+
'setPositionMode': false,
|
|
90
127
|
'transfer': false,
|
|
91
128
|
'withdraw': true,
|
|
92
129
|
},
|