ccxt 4.4.77 → 4.4.80
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 +8 -10
- package/dist/ccxt.browser.min.js +7 -7
- package/dist/cjs/ccxt.js +8 -4
- package/dist/cjs/src/abstract/ace.js +1 -1
- package/dist/cjs/src/abstract/apex.js +9 -0
- package/dist/cjs/src/ace.js +1 -1
- package/dist/cjs/src/apex.js +1949 -0
- package/dist/cjs/src/ascendex.js +25 -4
- package/dist/cjs/src/base/Exchange.js +42 -2
- package/dist/cjs/src/binance.js +9 -1
- package/dist/cjs/src/bingx.js +3 -3
- package/dist/cjs/src/bitfinex.js +64 -36
- package/dist/cjs/src/bitget.js +191 -138
- package/dist/cjs/src/bitmart.js +7 -2
- package/dist/cjs/src/bitmex.js +16 -8
- package/dist/cjs/src/bitopro.js +5 -1
- package/dist/cjs/src/bitrue.js +2 -1
- package/dist/cjs/src/bitso.js +1 -1
- package/dist/cjs/src/bitteam.js +2 -0
- package/dist/cjs/src/bitvavo.js +28 -10
- package/dist/cjs/src/btcalpha.js +1 -1
- package/dist/cjs/src/btcmarkets.js +1 -1
- package/dist/cjs/src/btcturk.js +1 -1
- package/dist/cjs/src/bybit.js +32 -16
- package/dist/cjs/src/cex.js +1 -1
- package/dist/cjs/src/coinbase.js +18 -2
- package/dist/cjs/src/coincatch.js +68 -0
- package/dist/cjs/src/coinex.js +1 -0
- package/dist/cjs/src/coinlist.js +1 -0
- package/dist/cjs/src/coinone.js +1 -0
- package/dist/cjs/src/delta.js +4 -0
- package/dist/cjs/src/deribit.js +1 -0
- package/dist/cjs/src/hitbtc.js +3 -0
- package/dist/cjs/src/hollaex.js +1 -0
- package/dist/cjs/src/htx.js +7 -3
- package/dist/cjs/src/huobijp.js +1 -0
- package/dist/cjs/src/hyperliquid.js +14 -4
- package/dist/cjs/src/kraken.js +2 -0
- package/dist/cjs/src/mexc.js +50 -57
- package/dist/cjs/src/okx.js +1 -1
- package/dist/cjs/src/phemex.js +2 -1
- package/dist/cjs/src/poloniex.js +2 -1
- package/dist/cjs/src/pro/apex.js +1043 -0
- package/dist/cjs/src/pro/binance.js +3 -3
- package/dist/cjs/src/pro/coinbase.js +45 -68
- package/dist/cjs/src/pro/gate.js +27 -2
- package/dist/cjs/src/pro/hollaex.js +2 -2
- package/dist/cjs/src/pro/p2b.js +2 -2
- package/dist/cjs/src/pro/tradeogre.js +283 -0
- package/dist/cjs/src/pro/upbit.js +43 -0
- package/dist/cjs/src/probit.js +1 -0
- package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +2639 -0
- package/dist/cjs/src/timex.js +2 -2
- package/dist/cjs/src/tradeogre.js +2 -1
- package/dist/cjs/src/upbit.js +277 -67
- package/dist/cjs/src/whitebit.js +66 -12
- package/dist/cjs/src/woo.js +3 -1
- package/dist/cjs/src/xt.js +9 -0
- package/js/ccxt.d.ts +11 -5
- package/js/ccxt.js +8 -4
- package/js/src/abstract/apex.d.ts +34 -0
- package/js/src/abstract/bitmart.d.ts +1 -0
- package/js/src/apex.d.ts +333 -0
- package/js/src/apex.js +1945 -0
- package/js/src/ascendex.d.ts +3 -3
- package/js/src/ascendex.js +25 -4
- package/js/src/base/Exchange.d.ts +2 -0
- package/js/src/base/Exchange.js +42 -1
- package/js/src/binance.d.ts +7 -7
- package/js/src/binance.js +9 -1
- package/js/src/bingx.js +3 -3
- package/js/src/bitfinex.d.ts +3 -3
- package/js/src/bitfinex.js +64 -36
- package/js/src/bitflyer.d.ts +2 -2
- package/js/src/bitget.d.ts +2 -0
- package/js/src/bitget.js +191 -138
- package/js/src/bitmart.d.ts +5 -4
- package/js/src/bitmart.js +7 -2
- package/js/src/bitmex.d.ts +3 -3
- package/js/src/bitmex.js +16 -8
- package/js/src/bitopro.js +5 -1
- package/js/src/bitrue.js +2 -1
- package/js/src/bitso.js +1 -1
- package/js/src/bitteam.js +2 -0
- package/js/src/bitvavo.js +28 -10
- package/js/src/btcalpha.js +1 -1
- package/js/src/btcmarkets.js +1 -1
- package/js/src/btcturk.js +1 -1
- package/js/src/bybit.js +32 -16
- package/js/src/cex.js +1 -1
- package/js/src/coinbase.d.ts +4 -4
- package/js/src/coinbase.js +18 -2
- package/js/src/coinbaseexchange.d.ts +1 -1
- package/js/src/coincatch.d.ts +11 -0
- package/js/src/coincatch.js +68 -0
- package/js/src/coinex.js +1 -0
- package/js/src/coinlist.js +1 -0
- package/js/src/coinone.js +1 -0
- package/js/src/cryptocom.d.ts +4 -4
- package/js/src/delta.js +4 -0
- package/js/src/deribit.d.ts +4 -4
- package/js/src/deribit.js +1 -0
- package/js/src/derive.d.ts +3 -3
- package/js/src/digifinex.d.ts +4 -4
- package/js/src/hitbtc.js +3 -0
- package/js/src/hollaex.js +1 -0
- package/js/src/htx.d.ts +4 -4
- package/js/src/htx.js +7 -3
- package/js/src/huobijp.js +1 -0
- package/js/src/hyperliquid.d.ts +1 -0
- package/js/src/hyperliquid.js +14 -4
- package/js/src/kraken.d.ts +3 -3
- package/js/src/kraken.js +2 -0
- package/js/src/krakenfutures.d.ts +2 -2
- package/js/src/kucoinfutures.d.ts +5 -5
- package/js/src/mexc.d.ts +1 -0
- package/js/src/mexc.js +50 -57
- package/js/src/okx.js +1 -1
- package/js/src/oxfun.d.ts +3 -3
- package/js/src/phemex.d.ts +3 -3
- package/js/src/phemex.js +2 -1
- package/js/src/poloniex.d.ts +3 -3
- package/js/src/poloniex.js +2 -1
- package/js/src/pro/apex.d.ts +160 -0
- package/js/src/pro/apex.js +1038 -0
- package/js/src/pro/binance.js +3 -3
- package/js/src/pro/coinbase.d.ts +4 -3
- package/js/src/pro/coinbase.js +45 -66
- package/js/src/pro/gate.js +27 -2
- package/js/src/pro/hollaex.js +2 -2
- package/js/src/pro/p2b.js +2 -2
- package/js/src/pro/tradeogre.d.ts +49 -0
- package/js/src/pro/tradeogre.js +278 -0
- package/js/src/pro/upbit.d.ts +16 -1
- package/js/src/pro/upbit.js +43 -0
- package/js/src/probit.js +1 -0
- package/js/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
- package/js/src/static_dependencies/zklink/zklink-sdk-web.js +4276 -0
- package/js/src/timex.js +2 -2
- package/js/src/tradeogre.js +2 -1
- package/js/src/upbit.d.ts +75 -23
- package/js/src/upbit.js +277 -67
- package/js/src/vertex.d.ts +3 -3
- package/js/src/whitebit.js +66 -12
- package/js/src/woo.d.ts +4 -4
- package/js/src/woo.js +3 -1
- package/js/src/woofipro.d.ts +4 -4
- package/js/src/xt.d.ts +4 -4
- package/js/src/xt.js +9 -0
- package/package.json +2 -2
- package/js/src/abstract/ace.d.ts +0 -18
- package/js/src/ace.d.ts +0 -158
- package/js/src/ace.js +0 -1175
- /package/js/src/abstract/{ace.js → apex.js} +0 -0
package/js/src/ascendex.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/ascendex.js';
|
|
2
|
-
import type { TransferEntry, FundingHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Strings, Num, Currency, Market, Leverage, Leverages, Account, MarginModes, MarginMode, MarginModification, Currencies, TradingFees, Dict, LeverageTier, LeverageTiers, int, FundingRate, FundingRates, DepositAddress } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, FundingHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Strings, Num, Currency, Market, Leverage, Leverages, Account, MarginModes, MarginMode, MarginModification, Currencies, TradingFees, Dict, LeverageTier, LeverageTiers, int, FundingRate, FundingRates, DepositAddress, Position } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class ascendex
|
|
5
5
|
* @augments Exchange
|
|
@@ -277,8 +277,8 @@ export default class ascendex extends Exchange {
|
|
|
277
277
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
278
278
|
* @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
|
|
279
279
|
*/
|
|
280
|
-
fetchPositions(symbols?: Strings, params?: {}): Promise<
|
|
281
|
-
parsePosition(position: Dict, market?: Market):
|
|
280
|
+
fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
|
|
281
|
+
parsePosition(position: Dict, market?: Market): Position;
|
|
282
282
|
parseFundingRate(contract: any, market?: Market): FundingRate;
|
|
283
283
|
/**
|
|
284
284
|
* @method
|
package/js/src/ascendex.js
CHANGED
|
@@ -509,6 +509,7 @@ export default class ascendex extends Exchange {
|
|
|
509
509
|
// "data":[
|
|
510
510
|
// {
|
|
511
511
|
// "assetCode":"BTT",
|
|
512
|
+
// "displayName": "BTT",
|
|
512
513
|
// "borrowAssetCode":"BTT-B",
|
|
513
514
|
// "interestAssetCode":"BTT-I",
|
|
514
515
|
// "nativeScale":0,
|
|
@@ -529,12 +530,13 @@ export default class ascendex extends Exchange {
|
|
|
529
530
|
// "data":[
|
|
530
531
|
// {
|
|
531
532
|
// "assetCode":"LTCBULL",
|
|
533
|
+
// "displayName": "LTCBULL",
|
|
532
534
|
// "nativeScale":4,
|
|
533
535
|
// "numConfirmations":20,
|
|
534
536
|
// "withdrawFee":"0.2",
|
|
535
537
|
// "minWithdrawalAmt":"1.0",
|
|
536
538
|
// "statusCode":"Normal",
|
|
537
|
-
// "statusMessage":""
|
|
539
|
+
// "statusMessage":"" // hideFromWalletTx
|
|
538
540
|
// }
|
|
539
541
|
// ]
|
|
540
542
|
// }
|
|
@@ -556,8 +558,27 @@ export default class ascendex extends Exchange {
|
|
|
556
558
|
const scale = this.safeString2(currency, 'precisionScale', 'nativeScale');
|
|
557
559
|
const precision = this.parseNumber(this.parsePrecision(scale));
|
|
558
560
|
const fee = this.safeNumber2(currency, 'withdrawFee', 'withdrawalFee');
|
|
559
|
-
const status = this.
|
|
561
|
+
const status = this.safeString(currency, 'status');
|
|
562
|
+
const statusCode = this.safeString(currency, 'statusCode');
|
|
560
563
|
const active = (status === 'Normal');
|
|
564
|
+
let depositEnabled = undefined;
|
|
565
|
+
let withdrawEnabled = undefined;
|
|
566
|
+
if (status === 'Delisted' || statusCode === 'hideFromWalletTx') {
|
|
567
|
+
depositEnabled = false;
|
|
568
|
+
withdrawEnabled = false;
|
|
569
|
+
}
|
|
570
|
+
else if (status === 'Normal') {
|
|
571
|
+
depositEnabled = true;
|
|
572
|
+
withdrawEnabled = true;
|
|
573
|
+
}
|
|
574
|
+
else if (status === 'NoTransaction' || statusCode === 'NoTransaction') {
|
|
575
|
+
depositEnabled = true;
|
|
576
|
+
withdrawEnabled = false;
|
|
577
|
+
}
|
|
578
|
+
else if (status === 'NoDeposit') {
|
|
579
|
+
depositEnabled = false;
|
|
580
|
+
withdrawEnabled = true;
|
|
581
|
+
}
|
|
561
582
|
const marginInside = ('borrowAssetCode' in currency);
|
|
562
583
|
result[code] = {
|
|
563
584
|
'id': id,
|
|
@@ -567,8 +588,8 @@ export default class ascendex extends Exchange {
|
|
|
567
588
|
'margin': marginInside,
|
|
568
589
|
'name': this.safeString(currency, 'assetName'),
|
|
569
590
|
'active': active,
|
|
570
|
-
'deposit':
|
|
571
|
-
'withdraw':
|
|
591
|
+
'deposit': depositEnabled,
|
|
592
|
+
'withdraw': withdrawEnabled,
|
|
572
593
|
'fee': fee,
|
|
573
594
|
'precision': precision,
|
|
574
595
|
'limits': {
|
|
@@ -377,6 +377,8 @@ export default class Exchange {
|
|
|
377
377
|
};
|
|
378
378
|
starknetEncodeStructuredData(domain: any, messageTypes: any, messageData: any, address: any): string;
|
|
379
379
|
starknetSign(hash: any, pri: any): string;
|
|
380
|
+
getZKContractSignatureObj(seed: any, params?: {}): Promise<any>;
|
|
381
|
+
getZKTransferSignatureObj(seed: any, params?: {}): Promise<any>;
|
|
380
382
|
intToBase16(elem: any): string;
|
|
381
383
|
extendExchangeOptions(newOptions: Dict): void;
|
|
382
384
|
createSafeDictionary(): {};
|
package/js/src/base/Exchange.js
CHANGED
|
@@ -19,7 +19,9 @@ import ethers from '../static_dependencies/ethers/index.js';
|
|
|
19
19
|
import { TypedDataEncoder } from '../static_dependencies/ethers/hash/index.js';
|
|
20
20
|
import { SecureRandom } from "../static_dependencies/jsencrypt/lib/jsbn/rng.js";
|
|
21
21
|
import { getStarkKey, ethSigToPrivate, sign as starknetCurveSign } from '../static_dependencies/scure-starknet/index.js';
|
|
22
|
+
import init, * as zklink from '../static_dependencies/zklink/zklink-sdk-web.js';
|
|
22
23
|
import * as Starknet from '../static_dependencies/starknet/index.js';
|
|
24
|
+
import { sha256 } from '../static_dependencies/noble-hashes/sha256.js';
|
|
23
25
|
// ----------------------------------------------------------------------------
|
|
24
26
|
/**
|
|
25
27
|
* @class Exchange
|
|
@@ -1194,6 +1196,45 @@ export default class Exchange {
|
|
|
1194
1196
|
const signature = starknetCurveSign(hash.replace('0x', ''), pri.slice(-64));
|
|
1195
1197
|
return this.json([signature.r.toString(), signature.s.toString()]);
|
|
1196
1198
|
}
|
|
1199
|
+
async getZKContractSignatureObj(seed, params = {}) {
|
|
1200
|
+
const formattedSlotId = BigInt('0x' + this.remove0xPrefix(this.hash(this.encode(this.safeString(params, 'slotId')), sha256, 'hex'))).toString();
|
|
1201
|
+
const formattedNonce = BigInt('0x' + this.remove0xPrefix(this.hash(this.encode(this.safeString(params, 'nonce')), sha256, 'hex'))).toString();
|
|
1202
|
+
const formattedUint64 = '18446744073709551615';
|
|
1203
|
+
const formattedUint32 = '4294967295';
|
|
1204
|
+
const accountId = parseInt(Precise.stringMod(this.safeString(params, 'accountId'), formattedUint32), 10);
|
|
1205
|
+
const slotId = parseInt(Precise.stringDiv(Precise.stringMod(formattedSlotId, formattedUint64), formattedUint32), 10);
|
|
1206
|
+
const nonce = parseInt(Precise.stringMod(formattedNonce, formattedUint32), 10);
|
|
1207
|
+
await init();
|
|
1208
|
+
const _signer = zklink.newRpcSignerWithProvider({});
|
|
1209
|
+
await _signer.initZklinkSigner(seed);
|
|
1210
|
+
let tx_builder = new zklink.ContractBuilder(accountId, 0, slotId, nonce, this.safeInteger(params, 'pairId'), Precise.stringMul(this.safeString(params, 'size'), '1e18'), Precise.stringMul(this.safeString(params, 'price'), '1e18'), this.safeString(params, 'direction') === 'BUY', parseInt(Precise.stringMul(this.safeString(params, 'makerFeeRate'), '10000')), parseInt(Precise.stringMul(this.safeString(params, 'takerFeeRate'), '10000')), false);
|
|
1211
|
+
let contractor = zklink.newContract(tx_builder);
|
|
1212
|
+
//const signer = ZkLinkSigner.ethSig(seed);
|
|
1213
|
+
//const signer = new Signer(seed);
|
|
1214
|
+
contractor?.sign(_signer?.getZkLinkSigner());
|
|
1215
|
+
const tx = contractor.jsValue();
|
|
1216
|
+
const zkSign = tx?.signature?.signature;
|
|
1217
|
+
return zkSign;
|
|
1218
|
+
}
|
|
1219
|
+
async getZKTransferSignatureObj(seed, params = {}) {
|
|
1220
|
+
await init();
|
|
1221
|
+
const _signer = zklink.newRpcSignerWithProvider({});
|
|
1222
|
+
await _signer.initZklinkSigner(seed);
|
|
1223
|
+
let nonce = this.safeString(params, 'nonce', '0');
|
|
1224
|
+
if (this.safeBool(params, 'isContract') === true) {
|
|
1225
|
+
const formattedUint32 = '4294967295';
|
|
1226
|
+
const formattedNonce = BigInt('0x' + this.remove0xPrefix(this.hash(this.encode(nonce), sha256, 'hex'))).toString();
|
|
1227
|
+
nonce = Precise.stringMod(formattedNonce, formattedUint32);
|
|
1228
|
+
}
|
|
1229
|
+
let tx_builder = new zklink.TransferBuilder(this.safeNumber(params, 'zkAccountId', 0), this.safeString(params, 'receiverAddress'), this.safeNumber(params, 'subAccountId', 0), this.safeNumber(params, 'receiverSubAccountId', 0), this.safeNumber(params, 'tokenId', 0), this.safeString(params, 'fee', '0'), this.safeString(params, 'amount', '0'), this.parseToInt(nonce), this.safeNumber(params, 'timestampSeconds', 0));
|
|
1230
|
+
let contractor = zklink.newTransfer(tx_builder);
|
|
1231
|
+
//const signer = ZkLinkSigner.ethSig(seed);
|
|
1232
|
+
//const signer = new Signer(seed);
|
|
1233
|
+
contractor?.sign(_signer?.getZkLinkSigner());
|
|
1234
|
+
const tx = contractor.jsValue();
|
|
1235
|
+
const zkSign = tx?.signature?.signature;
|
|
1236
|
+
return zkSign;
|
|
1237
|
+
}
|
|
1197
1238
|
intToBase16(elem) {
|
|
1198
1239
|
return elem.toString(16);
|
|
1199
1240
|
}
|
|
@@ -2546,7 +2587,7 @@ export default class Exchange {
|
|
|
2546
2587
|
// find lowest precision (which is more desired)
|
|
2547
2588
|
const precision = this.safeString(network, 'precision');
|
|
2548
2589
|
const precisionMain = this.safeString(currency, 'precision');
|
|
2549
|
-
if (precisionMain === undefined || Precise.
|
|
2590
|
+
if (precisionMain === undefined || Precise.stringGt(precision, precisionMain)) {
|
|
2550
2591
|
currency['precision'] = this.parseNumber(precision);
|
|
2551
2592
|
}
|
|
2552
2593
|
// limits
|
package/js/src/binance.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/binance.js';
|
|
2
|
-
import type { TransferEntry, Int, OrderSide, Balances, OrderType, Trade, OHLCV, Order, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Market, Greeks, Strings, Currency, MarketInterface, MarginMode, MarginModes, Leverage, Leverages, Num, Option, MarginModification, TradingFeeInterface, Currencies, TradingFees, Conversion, CrossBorrowRate, IsolatedBorrowRates, IsolatedBorrowRate, Dict, LeverageTier, LeverageTiers, int, LedgerEntry, FundingRate, FundingRates, DepositAddress, LongShortRatio, BorrowInterest } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, Int, OrderSide, Balances, OrderType, Trade, OHLCV, Order, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Market, Greeks, Strings, Currency, MarketInterface, MarginMode, MarginModes, Leverage, Leverages, Num, Option, MarginModification, TradingFeeInterface, Currencies, TradingFees, Conversion, CrossBorrowRate, IsolatedBorrowRates, IsolatedBorrowRate, Dict, LeverageTier, LeverageTiers, int, LedgerEntry, FundingRate, FundingRates, DepositAddress, LongShortRatio, BorrowInterest, Position } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class binance
|
|
5
5
|
* @augments Exchange
|
|
@@ -985,7 +985,7 @@ export default class binance extends Exchange {
|
|
|
985
985
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
986
986
|
* @returns {object} a [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
|
|
987
987
|
*/
|
|
988
|
-
fetchPosition(symbol: string, params?: {}): Promise<
|
|
988
|
+
fetchPosition(symbol: string, params?: {}): Promise<Position>;
|
|
989
989
|
/**
|
|
990
990
|
* @method
|
|
991
991
|
* @name binance#fetchOptionPositions
|
|
@@ -995,8 +995,8 @@ export default class binance extends Exchange {
|
|
|
995
995
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
996
996
|
* @returns {object[]} a list of [position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
|
|
997
997
|
*/
|
|
998
|
-
fetchOptionPositions(symbols?: Strings, params?: {}): Promise<
|
|
999
|
-
parsePosition(position: Dict, market?: Market):
|
|
998
|
+
fetchOptionPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
|
|
999
|
+
parsePosition(position: Dict, market?: Market): Position;
|
|
1000
1000
|
/**
|
|
1001
1001
|
* @method
|
|
1002
1002
|
* @name binance#fetchPositions
|
|
@@ -1013,7 +1013,7 @@ export default class binance extends Exchange {
|
|
|
1013
1013
|
* @param {bool} [params.useV2] set to true if you want to use the obsolete endpoint, where some more additional fields were provided
|
|
1014
1014
|
* @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
|
|
1015
1015
|
*/
|
|
1016
|
-
fetchPositions(symbols?: Strings, params?: {}): Promise<
|
|
1016
|
+
fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
|
|
1017
1017
|
/**
|
|
1018
1018
|
* @method
|
|
1019
1019
|
* @name binance#fetchAccountPositions
|
|
@@ -1032,7 +1032,7 @@ export default class binance extends Exchange {
|
|
|
1032
1032
|
* @param {boolean} [params.useV2] set to true if you want to use obsolete endpoint, where some more additional fields were provided
|
|
1033
1033
|
* @returns {object} data on account positions
|
|
1034
1034
|
*/
|
|
1035
|
-
fetchAccountPositions(symbols?: Strings, params?: {}): Promise<
|
|
1035
|
+
fetchAccountPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
|
|
1036
1036
|
/**
|
|
1037
1037
|
* @method
|
|
1038
1038
|
* @name binance#fetchPositionsRisk
|
|
@@ -1050,7 +1050,7 @@ export default class binance extends Exchange {
|
|
|
1050
1050
|
* @param {bool} [params.useV2] set to true if you want to use the obsolete endpoint, where some more additional fields were provided
|
|
1051
1051
|
* @returns {object} data on the positions risk
|
|
1052
1052
|
*/
|
|
1053
|
-
fetchPositionsRisk(symbols?: Strings, params?: {}): Promise<
|
|
1053
|
+
fetchPositionsRisk(symbols?: Strings, params?: {}): Promise<Position[]>;
|
|
1054
1054
|
/**
|
|
1055
1055
|
* @method
|
|
1056
1056
|
* @name binance#fetchFundingHistory
|
package/js/src/binance.js
CHANGED
|
@@ -17,7 +17,7 @@ export default class binance extends Exchange {
|
|
|
17
17
|
return this.deepExtend(super.describe(), {
|
|
18
18
|
'id': 'binance',
|
|
19
19
|
'name': 'Binance',
|
|
20
|
-
'countries': [
|
|
20
|
+
'countries': [],
|
|
21
21
|
'rateLimit': 50,
|
|
22
22
|
'certified': true,
|
|
23
23
|
'pro': true,
|
|
@@ -1267,6 +1267,7 @@ export default class binance extends Exchange {
|
|
|
1267
1267
|
'inverse', // allows CORS in browsers
|
|
1268
1268
|
// 'option', // does not allow CORS, enable outside of the browser only
|
|
1269
1269
|
],
|
|
1270
|
+
'loadAllOptions': false,
|
|
1270
1271
|
'fetchCurrencies': true,
|
|
1271
1272
|
// 'fetchTradesMethod': 'publicGetAggTrades', // publicGetTrades, publicGetHistoricalTrades, eapiPublicGetTrades
|
|
1272
1273
|
// 'repayCrossMarginMethod': 'papiPostRepayLoan', // papiPostMarginRepayDebt
|
|
@@ -3033,6 +3034,13 @@ export default class binance extends Exchange {
|
|
|
3033
3034
|
async fetchMarkets(params = {}) {
|
|
3034
3035
|
const promisesRaw = [];
|
|
3035
3036
|
const rawFetchMarkets = this.safeList(this.options, 'fetchMarkets', ['spot', 'linear', 'inverse']);
|
|
3037
|
+
// handle loadAllOptions option
|
|
3038
|
+
const loadAllOptions = this.safeBool(this.options, 'loadAllOptions', false);
|
|
3039
|
+
if (loadAllOptions) {
|
|
3040
|
+
if (!this.inArray('option', rawFetchMarkets)) {
|
|
3041
|
+
rawFetchMarkets.push('option');
|
|
3042
|
+
}
|
|
3043
|
+
}
|
|
3036
3044
|
const sandboxMode = this.safeBool(this.options, 'sandboxMode', false);
|
|
3037
3045
|
const fetchMarkets = [];
|
|
3038
3046
|
for (let i = 0; i < rawFetchMarkets.length; i++) {
|
package/js/src/bingx.js
CHANGED
|
@@ -706,7 +706,7 @@ export default class bingx extends Exchange {
|
|
|
706
706
|
//
|
|
707
707
|
// {
|
|
708
708
|
// "code": 0,
|
|
709
|
-
// "timestamp":
|
|
709
|
+
// "timestamp": 1702623271476,
|
|
710
710
|
// "data": [
|
|
711
711
|
// {
|
|
712
712
|
// "coin": "BTC",
|
|
@@ -792,7 +792,7 @@ export default class bingx extends Exchange {
|
|
|
792
792
|
};
|
|
793
793
|
}
|
|
794
794
|
const active = depositEnabled || withdrawEnabled;
|
|
795
|
-
result[code] = {
|
|
795
|
+
result[code] = this.safeCurrencyStructure({
|
|
796
796
|
'info': entry,
|
|
797
797
|
'code': code,
|
|
798
798
|
'id': currencyId,
|
|
@@ -804,7 +804,7 @@ export default class bingx extends Exchange {
|
|
|
804
804
|
'networks': networks,
|
|
805
805
|
'fee': fee,
|
|
806
806
|
'limits': defaultLimits,
|
|
807
|
-
};
|
|
807
|
+
});
|
|
808
808
|
}
|
|
809
809
|
return result;
|
|
810
810
|
}
|
package/js/src/bitfinex.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/bitfinex.js';
|
|
2
|
-
import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderBook, Str, Transaction, Ticker, Balances, Tickers, Strings, Currency, Market, OpenInterest, Liquidation, OrderRequest, Num, MarginModification, Currencies, TradingFees, Dict, LedgerEntry, FundingRate, FundingRates, DepositAddress, OpenInterests } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderBook, Str, Transaction, Ticker, Balances, Tickers, Strings, Currency, Market, OpenInterest, Liquidation, OrderRequest, Num, MarginModification, Currencies, TradingFees, Dict, LedgerEntry, FundingRate, FundingRates, DepositAddress, OpenInterests, Position } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class bitfinex
|
|
5
5
|
* @augments Exchange
|
|
@@ -346,8 +346,8 @@ export default class bitfinex extends Exchange {
|
|
|
346
346
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
347
347
|
* @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
|
|
348
348
|
*/
|
|
349
|
-
fetchPositions(symbols?: Strings, params?: {}): Promise<
|
|
350
|
-
parsePosition(position: Dict, market?: Market):
|
|
349
|
+
fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
|
|
350
|
+
parsePosition(position: Dict, market?: Market): Position;
|
|
351
351
|
nonce(): number;
|
|
352
352
|
sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
|
|
353
353
|
url: string;
|
package/js/src/bitfinex.js
CHANGED
|
@@ -1155,9 +1155,8 @@ export default class bitfinex extends Exchange {
|
|
|
1155
1155
|
//
|
|
1156
1156
|
// on trading pairs (ex. tBTCUSD)
|
|
1157
1157
|
//
|
|
1158
|
-
//
|
|
1159
|
-
//
|
|
1160
|
-
// SYMBOL,
|
|
1158
|
+
// [
|
|
1159
|
+
// SYMBOL, // this index is not present in singular-ticker
|
|
1161
1160
|
// BID,
|
|
1162
1161
|
// BID_SIZE,
|
|
1163
1162
|
// ASK,
|
|
@@ -1168,15 +1167,13 @@ export default class bitfinex extends Exchange {
|
|
|
1168
1167
|
// VOLUME,
|
|
1169
1168
|
// HIGH,
|
|
1170
1169
|
// LOW
|
|
1171
|
-
//
|
|
1172
|
-
// }
|
|
1170
|
+
// ]
|
|
1173
1171
|
//
|
|
1174
1172
|
//
|
|
1175
1173
|
// on funding currencies (ex. fUSD)
|
|
1176
1174
|
//
|
|
1177
|
-
//
|
|
1178
|
-
//
|
|
1179
|
-
// SYMBOL,
|
|
1175
|
+
// [
|
|
1176
|
+
// SYMBOL, // this index is not present in singular-ticker
|
|
1180
1177
|
// FRR,
|
|
1181
1178
|
// BID,
|
|
1182
1179
|
// BID_PERIOD,
|
|
@@ -1193,35 +1190,75 @@ export default class bitfinex extends Exchange {
|
|
|
1193
1190
|
// _PLACEHOLDER,
|
|
1194
1191
|
// _PLACEHOLDER,
|
|
1195
1192
|
// FRR_AMOUNT_AVAILABLE
|
|
1196
|
-
//
|
|
1197
|
-
// }
|
|
1193
|
+
// ]
|
|
1198
1194
|
//
|
|
1199
|
-
const
|
|
1200
|
-
const
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1195
|
+
const length = ticker.length;
|
|
1196
|
+
const isFetchTicker = (length === 10) || (length === 16);
|
|
1197
|
+
let symbol = undefined;
|
|
1198
|
+
let minusIndex = 0;
|
|
1199
|
+
let isFundingCurrency = false;
|
|
1200
|
+
if (isFetchTicker) {
|
|
1201
|
+
minusIndex = 1;
|
|
1202
|
+
isFundingCurrency = (length === 16);
|
|
1203
|
+
}
|
|
1204
|
+
else {
|
|
1205
|
+
const marketId = this.safeString(ticker, 0);
|
|
1206
|
+
market = this.safeMarket(marketId, market);
|
|
1207
|
+
isFundingCurrency = (length === 17);
|
|
1208
|
+
}
|
|
1209
|
+
symbol = this.safeSymbol(undefined, market);
|
|
1210
|
+
let last = undefined;
|
|
1211
|
+
let bid = undefined;
|
|
1212
|
+
let ask = undefined;
|
|
1213
|
+
let change = undefined;
|
|
1214
|
+
let percentage = undefined;
|
|
1215
|
+
let volume = undefined;
|
|
1216
|
+
let high = undefined;
|
|
1217
|
+
let low = undefined;
|
|
1218
|
+
if (isFundingCurrency) {
|
|
1219
|
+
// per api docs, they are different array type
|
|
1220
|
+
last = this.safeString(ticker, 10 - minusIndex);
|
|
1221
|
+
bid = this.safeString(ticker, 2 - minusIndex);
|
|
1222
|
+
ask = this.safeString(ticker, 5 - minusIndex);
|
|
1223
|
+
change = this.safeString(ticker, 8 - minusIndex);
|
|
1224
|
+
percentage = this.safeString(ticker, 9 - minusIndex);
|
|
1225
|
+
volume = this.safeString(ticker, 11 - minusIndex);
|
|
1226
|
+
high = this.safeString(ticker, 12 - minusIndex);
|
|
1227
|
+
low = this.safeString(ticker, 13 - minusIndex);
|
|
1228
|
+
}
|
|
1229
|
+
else {
|
|
1230
|
+
// on trading pairs (ex. tBTCUSD or tHMSTR:USD)
|
|
1231
|
+
last = this.safeString(ticker, 7 - minusIndex);
|
|
1232
|
+
bid = this.safeString(ticker, 1 - minusIndex);
|
|
1233
|
+
ask = this.safeString(ticker, 3 - minusIndex);
|
|
1234
|
+
change = this.safeString(ticker, 5 - minusIndex);
|
|
1235
|
+
percentage = this.safeString(ticker, 6 - minusIndex);
|
|
1236
|
+
percentage = Precise.stringMul(percentage, '100');
|
|
1237
|
+
volume = this.safeString(ticker, 8 - minusIndex);
|
|
1238
|
+
high = this.safeString(ticker, 9 - minusIndex);
|
|
1239
|
+
low = this.safeString(ticker, 10 - minusIndex);
|
|
1240
|
+
}
|
|
1204
1241
|
return this.safeTicker({
|
|
1205
1242
|
'symbol': symbol,
|
|
1206
1243
|
'timestamp': undefined,
|
|
1207
1244
|
'datetime': undefined,
|
|
1208
|
-
'high':
|
|
1209
|
-
'low':
|
|
1210
|
-
'bid':
|
|
1211
|
-
'bidVolume':
|
|
1212
|
-
'ask':
|
|
1213
|
-
'askVolume':
|
|
1245
|
+
'high': high,
|
|
1246
|
+
'low': low,
|
|
1247
|
+
'bid': bid,
|
|
1248
|
+
'bidVolume': undefined,
|
|
1249
|
+
'ask': ask,
|
|
1250
|
+
'askVolume': undefined,
|
|
1214
1251
|
'vwap': undefined,
|
|
1215
1252
|
'open': undefined,
|
|
1216
1253
|
'close': last,
|
|
1217
1254
|
'last': last,
|
|
1218
1255
|
'previousClose': undefined,
|
|
1219
|
-
'change':
|
|
1220
|
-
'percentage':
|
|
1256
|
+
'change': change,
|
|
1257
|
+
'percentage': percentage,
|
|
1221
1258
|
'average': undefined,
|
|
1222
|
-
'baseVolume':
|
|
1259
|
+
'baseVolume': volume,
|
|
1223
1260
|
'quoteVolume': undefined,
|
|
1224
|
-
'info':
|
|
1261
|
+
'info': ticker,
|
|
1225
1262
|
}, market);
|
|
1226
1263
|
}
|
|
1227
1264
|
/**
|
|
@@ -1284,15 +1321,7 @@ export default class bitfinex extends Exchange {
|
|
|
1284
1321
|
// ...
|
|
1285
1322
|
// ]
|
|
1286
1323
|
//
|
|
1287
|
-
|
|
1288
|
-
for (let i = 0; i < tickers.length; i++) {
|
|
1289
|
-
const ticker = tickers[i];
|
|
1290
|
-
const marketId = this.safeString(ticker, 0);
|
|
1291
|
-
const market = this.safeMarket(marketId);
|
|
1292
|
-
const symbol = market['symbol'];
|
|
1293
|
-
result[symbol] = this.parseTicker({ 'result': ticker }, market);
|
|
1294
|
-
}
|
|
1295
|
-
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
1324
|
+
return this.parseTickers(tickers, symbols);
|
|
1296
1325
|
}
|
|
1297
1326
|
/**
|
|
1298
1327
|
* @method
|
|
@@ -1310,8 +1339,7 @@ export default class bitfinex extends Exchange {
|
|
|
1310
1339
|
'symbol': market['id'],
|
|
1311
1340
|
};
|
|
1312
1341
|
const ticker = await this.publicGetTickerSymbol(this.extend(request, params));
|
|
1313
|
-
|
|
1314
|
-
return this.parseTicker(result, market);
|
|
1342
|
+
return this.parseTicker(ticker, market);
|
|
1315
1343
|
}
|
|
1316
1344
|
parseTrade(trade, market = undefined) {
|
|
1317
1345
|
//
|
package/js/src/bitflyer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/bitflyer.js';
|
|
2
|
-
import type { Balances, Currency, Dict, FundingRate, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, TradingFeeInterface, Transaction, int } from './base/types.js';
|
|
2
|
+
import type { Balances, Currency, Dict, FundingRate, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, TradingFeeInterface, Transaction, Position, int } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class bitflyer
|
|
5
5
|
* @augments Exchange
|
|
@@ -167,7 +167,7 @@ export default class bitflyer extends Exchange {
|
|
|
167
167
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
168
168
|
* @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/#/?id=position-structure}
|
|
169
169
|
*/
|
|
170
|
-
fetchPositions(symbols?: Strings, params?: {}): Promise<
|
|
170
|
+
fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
|
|
171
171
|
/**
|
|
172
172
|
* @method
|
|
173
173
|
* @name bitflyer#withdraw
|
package/js/src/bitget.d.ts
CHANGED
|
@@ -588,8 +588,10 @@ export default class bitget extends Exchange {
|
|
|
588
588
|
* @name bitget#fetchFundingRate
|
|
589
589
|
* @description fetch the current funding rate
|
|
590
590
|
* @see https://www.bitget.com/api-doc/contract/market/Get-Current-Funding-Rate
|
|
591
|
+
* @see https://www.bitget.com/api-doc/contract/market/Get-Symbol-Next-Funding-Time
|
|
591
592
|
* @param {string} symbol unified market symbol
|
|
592
593
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
594
|
+
* @param {string} [params.method] either (default) 'publicMixGetV2MixMarketCurrentFundRate' or 'publicMixGetV2MixMarketFundingTime'
|
|
593
595
|
* @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
|
|
594
596
|
*/
|
|
595
597
|
fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
|