ccxt 4.3.69 → 4.3.71
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 +7 -6
- package/dist/ccxt.browser.min.js +13 -10
- package/dist/cjs/ccxt.js +8 -1
- package/dist/cjs/src/abstract/paradex.js +9 -0
- package/dist/cjs/src/ascendex.js +1 -1
- package/dist/cjs/src/base/Exchange.js +55 -0
- package/dist/cjs/src/binance.js +1 -1
- package/dist/cjs/src/blofin.js +63 -6
- package/dist/cjs/src/bybit.js +1 -1
- package/dist/cjs/src/coinbaseinternational.js +168 -2
- package/dist/cjs/src/cryptocom.js +9 -1
- package/dist/cjs/src/hitbtc.js +1 -1
- package/dist/cjs/src/paradex.js +2075 -0
- package/dist/cjs/src/poloniex.js +1 -0
- package/dist/cjs/src/pro/bequant.js +4 -0
- package/dist/cjs/src/pro/blofin.js +665 -0
- package/dist/cjs/src/pro/coinbaseinternational.js +154 -9
- package/dist/cjs/src/pro/cryptocom.js +3 -1
- package/dist/cjs/src/pro/hitbtc.js +26 -8
- package/dist/cjs/src/pro/okx.js +7 -0
- package/dist/cjs/src/pro/paradex.js +365 -0
- package/dist/cjs/src/pro/poloniex.js +37 -12
- package/dist/cjs/src/pro/woo.js +5 -4
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +100 -0
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -0
- package/dist/cjs/src/static_dependencies/scure-starknet/index.js +284 -0
- package/dist/cjs/src/static_dependencies/starknet/constants.js +60 -0
- package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +26 -0
- package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +8 -0
- package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +13 -0
- package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +56 -0
- package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +19 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +15 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +44 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +122 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +137 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +61 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +218 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +66 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +281 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +33 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +37 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +156 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +250 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +215 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +112 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +206 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +58 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +57 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +76 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/num.js +92 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +48 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +101 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +334 -0
- package/dist/cjs/src/woo.js +4 -2
- package/js/ccxt.d.ts +11 -2
- package/js/ccxt.js +8 -2
- package/js/src/abstract/coinbaseinternational.d.ts +1 -1
- package/js/src/abstract/paradex.d.ts +43 -0
- package/js/src/abstract/paradex.js +11 -0
- package/js/src/ascendex.js +1 -1
- package/js/src/base/Exchange.d.ts +8 -0
- package/js/src/base/Exchange.js +51 -0
- package/js/src/binance.js +1 -1
- package/js/src/blofin.d.ts +1 -1
- package/js/src/blofin.js +63 -6
- package/js/src/bybit.js +1 -1
- package/js/src/coinbaseinternational.d.ts +6 -1
- package/js/src/coinbaseinternational.js +168 -2
- package/js/src/cryptocom.js +10 -2
- package/js/src/hitbtc.js +1 -1
- package/js/src/paradex.d.ts +76 -0
- package/js/src/paradex.js +2075 -0
- package/js/src/poloniex.js +1 -0
- package/js/src/pro/bequant.js +4 -0
- package/js/src/pro/blofin.d.ts +39 -0
- package/js/src/pro/blofin.js +668 -0
- package/js/src/pro/coinbaseinternational.d.ts +5 -1
- package/js/src/pro/coinbaseinternational.js +155 -10
- package/js/src/pro/cryptocom.js +4 -2
- package/js/src/pro/hitbtc.d.ts +1 -1
- package/js/src/pro/hitbtc.js +26 -8
- package/js/src/pro/okx.js +7 -0
- package/js/src/pro/paradex.d.ts +15 -0
- package/js/src/pro/paradex.js +366 -0
- package/js/src/pro/poloniex.js +37 -12
- package/js/src/pro/woo.js +5 -4
- package/js/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +24 -0
- package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
- package/js/src/static_dependencies/scure-starknet/index.d.ts +79 -0
- package/js/src/static_dependencies/scure-starknet/index.js +323 -0
- package/js/src/static_dependencies/starknet/constants.d.ts +61 -0
- package/js/src/static_dependencies/starknet/constants.js +67 -0
- package/js/src/static_dependencies/starknet/index.d.ts +7 -0
- package/js/src/static_dependencies/starknet/index.js +50 -0
- package/js/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
- package/js/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
- package/js/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
- package/js/src/static_dependencies/starknet/types/calldata.js +28 -0
- package/js/src/static_dependencies/starknet/types/index.d.ts +13 -0
- package/js/src/static_dependencies/starknet/types/index.js +16 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
- package/js/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
- package/js/src/static_dependencies/starknet/types/lib/index.js +52 -0
- package/js/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
- package/js/src/static_dependencies/starknet/types/typedData.js +19 -0
- package/js/src/static_dependencies/starknet/utils/address.d.ts +53 -0
- package/js/src/static_dependencies/starknet/utils/address.js +89 -0
- package/js/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
- package/js/src/static_dependencies/starknet/utils/assert.js +17 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
- package/js/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
- package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
- package/js/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
- package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
- package/js/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
- package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
- package/js/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
- package/js/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
- package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
- package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
- package/js/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
- package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
- package/js/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
- package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
- package/js/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
- package/js/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
- package/js/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
- package/js/src/static_dependencies/starknet/utils/encode.js +282 -0
- package/js/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
- package/js/src/static_dependencies/starknet/utils/hash/classHash.js +224 -0
- package/js/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
- package/js/src/static_dependencies/starknet/utils/hash/index.js +13 -0
- package/js/src/static_dependencies/starknet/utils/json.d.ts +24 -0
- package/js/src/static_dependencies/starknet/utils/json.js +43 -0
- package/js/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
- package/js/src/static_dependencies/starknet/utils/merkle.js +84 -0
- package/js/src/static_dependencies/starknet/utils/num.d.ts +182 -0
- package/js/src/static_dependencies/starknet/utils/num.js +244 -0
- package/js/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
- package/js/src/static_dependencies/starknet/utils/selector.js +85 -0
- package/js/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
- package/js/src/static_dependencies/starknet/utils/shortString.js +96 -0
- package/js/src/static_dependencies/starknet/utils/starknetId.d.ts +113 -0
- package/js/src/static_dependencies/starknet/utils/starknetId.js +265 -0
- package/js/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
- package/js/src/static_dependencies/starknet/utils/typedData.js +321 -0
- package/js/src/static_dependencies/starknet/utils/uint256.d.ts +21 -0
- package/js/src/static_dependencies/starknet/utils/uint256.js +32 -0
- package/js/src/static_dependencies/starknet/utils/url.d.ts +29 -0
- package/js/src/static_dependencies/starknet/utils/url.js +70 -0
- package/js/src/woo.js +4 -2
- package/package.json +1 -1
package/dist/cjs/ccxt.js
CHANGED
|
@@ -101,6 +101,7 @@ var okx = require('./src/okx.js');
|
|
|
101
101
|
var onetrading = require('./src/onetrading.js');
|
|
102
102
|
var oxfun = require('./src/oxfun.js');
|
|
103
103
|
var p2b = require('./src/p2b.js');
|
|
104
|
+
var paradex = require('./src/paradex.js');
|
|
104
105
|
var paymium = require('./src/paymium.js');
|
|
105
106
|
var phemex = require('./src/phemex.js');
|
|
106
107
|
var poloniex = require('./src/poloniex.js');
|
|
@@ -141,6 +142,7 @@ var bitrue$1 = require('./src/pro/bitrue.js');
|
|
|
141
142
|
var bitstamp$1 = require('./src/pro/bitstamp.js');
|
|
142
143
|
var bitvavo$1 = require('./src/pro/bitvavo.js');
|
|
143
144
|
var blockchaincom$1 = require('./src/pro/blockchaincom.js');
|
|
145
|
+
var blofin$1 = require('./src/pro/blofin.js');
|
|
144
146
|
var bybit$1 = require('./src/pro/bybit.js');
|
|
145
147
|
var cex$1 = require('./src/pro/cex.js');
|
|
146
148
|
var coinbase$1 = require('./src/pro/coinbase.js');
|
|
@@ -177,6 +179,7 @@ var okx$1 = require('./src/pro/okx.js');
|
|
|
177
179
|
var onetrading$1 = require('./src/pro/onetrading.js');
|
|
178
180
|
var oxfun$1 = require('./src/pro/oxfun.js');
|
|
179
181
|
var p2b$1 = require('./src/pro/p2b.js');
|
|
182
|
+
var paradex$1 = require('./src/pro/paradex.js');
|
|
180
183
|
var phemex$1 = require('./src/pro/phemex.js');
|
|
181
184
|
var poloniex$1 = require('./src/pro/poloniex.js');
|
|
182
185
|
var poloniexfutures$1 = require('./src/pro/poloniexfutures.js');
|
|
@@ -191,7 +194,7 @@ var xt$1 = require('./src/pro/xt.js');
|
|
|
191
194
|
|
|
192
195
|
//-----------------------------------------------------------------------------
|
|
193
196
|
// this is updated by vss.js when building
|
|
194
|
-
const version = '4.3.
|
|
197
|
+
const version = '4.3.71';
|
|
195
198
|
Exchange["default"].ccxtVersion = version;
|
|
196
199
|
const exchanges = {
|
|
197
200
|
'ace': ace,
|
|
@@ -283,6 +286,7 @@ const exchanges = {
|
|
|
283
286
|
'onetrading': onetrading,
|
|
284
287
|
'oxfun': oxfun,
|
|
285
288
|
'p2b': p2b,
|
|
289
|
+
'paradex': paradex,
|
|
286
290
|
'paymium': paymium,
|
|
287
291
|
'phemex': phemex,
|
|
288
292
|
'poloniex': poloniex,
|
|
@@ -325,6 +329,7 @@ const pro = {
|
|
|
325
329
|
'bitstamp': bitstamp$1,
|
|
326
330
|
'bitvavo': bitvavo$1,
|
|
327
331
|
'blockchaincom': blockchaincom$1,
|
|
332
|
+
'blofin': blofin$1,
|
|
328
333
|
'bybit': bybit$1,
|
|
329
334
|
'cex': cex$1,
|
|
330
335
|
'coinbase': coinbase$1,
|
|
@@ -361,6 +366,7 @@ const pro = {
|
|
|
361
366
|
'onetrading': onetrading$1,
|
|
362
367
|
'oxfun': oxfun$1,
|
|
363
368
|
'p2b': p2b$1,
|
|
369
|
+
'paradex': paradex$1,
|
|
364
370
|
'phemex': phemex$1,
|
|
365
371
|
'poloniex': poloniex$1,
|
|
366
372
|
'poloniexfutures': poloniexfutures$1,
|
|
@@ -510,6 +516,7 @@ exports.okx = okx;
|
|
|
510
516
|
exports.onetrading = onetrading;
|
|
511
517
|
exports.oxfun = oxfun;
|
|
512
518
|
exports.p2b = p2b;
|
|
519
|
+
exports.paradex = paradex;
|
|
513
520
|
exports.paymium = paymium;
|
|
514
521
|
exports.phemex = phemex;
|
|
515
522
|
exports.poloniex = poloniex;
|
package/dist/cjs/src/ascendex.js
CHANGED
|
@@ -3296,7 +3296,7 @@ class ascendex extends ascendex$1 {
|
|
|
3296
3296
|
async fetchMarginModes(symbols = undefined, params = {}) {
|
|
3297
3297
|
/**
|
|
3298
3298
|
* @method
|
|
3299
|
-
* @name ascendex#
|
|
3299
|
+
* @name ascendex#fetchMarginModes
|
|
3300
3300
|
* @description fetches the set margin mode of the user
|
|
3301
3301
|
* @see https://ascendex.github.io/ascendex-futures-pro-api-v2/#position
|
|
3302
3302
|
* @param {string[]} [symbols] a list of unified market symbols
|
|
@@ -22,6 +22,12 @@ require('../static_dependencies/noble-hashes/sha256.js');
|
|
|
22
22
|
require('../static_dependencies/ethers/address/address.js');
|
|
23
23
|
var typedData = require('../static_dependencies/ethers/hash/typed-data.js');
|
|
24
24
|
var rng = require('../static_dependencies/jsencrypt/lib/jsbn/rng.js');
|
|
25
|
+
var index$1 = require('../static_dependencies/scure-starknet/index.js');
|
|
26
|
+
require('../static_dependencies/noble-curves/abstract/modular.js');
|
|
27
|
+
var selector = require('../static_dependencies/starknet/utils/selector.js');
|
|
28
|
+
var classHash = require('../static_dependencies/starknet/utils/hash/classHash.js');
|
|
29
|
+
var index$2 = require('../static_dependencies/starknet/utils/calldata/index.js');
|
|
30
|
+
var typedData$1 = require('../static_dependencies/starknet/utils/typedData.js');
|
|
25
31
|
var generic = require('./functions/generic.js');
|
|
26
32
|
var misc = require('./functions/misc.js');
|
|
27
33
|
|
|
@@ -1182,6 +1188,49 @@ class Exchange {
|
|
|
1182
1188
|
ethEncodeStructuredData(domain, messageTypes, messageData) {
|
|
1183
1189
|
return this.base16ToBinary(typedData.TypedDataEncoder.encode(domain, messageTypes, messageData).slice(-132));
|
|
1184
1190
|
}
|
|
1191
|
+
retrieveStarkAccount(signature, accountClassHash, accountProxyClassHash) {
|
|
1192
|
+
const privateKey = index$1.ethSigToPrivate(signature);
|
|
1193
|
+
const publicKey = index$1.getStarkKey(privateKey);
|
|
1194
|
+
const callData = index$2.CallData.compile({
|
|
1195
|
+
implementation: accountClassHash,
|
|
1196
|
+
selector: selector.getSelectorFromName('initialize'),
|
|
1197
|
+
calldata: index$2.CallData.compile({
|
|
1198
|
+
signer: publicKey,
|
|
1199
|
+
guardian: '0',
|
|
1200
|
+
}),
|
|
1201
|
+
});
|
|
1202
|
+
const address = classHash.calculateContractAddressFromHash(publicKey, accountProxyClassHash, callData, 0);
|
|
1203
|
+
return {
|
|
1204
|
+
privateKey,
|
|
1205
|
+
publicKey,
|
|
1206
|
+
address
|
|
1207
|
+
};
|
|
1208
|
+
}
|
|
1209
|
+
starknetEncodeStructuredData(domain, messageTypes, messageData, address) {
|
|
1210
|
+
const types = Object.keys(messageTypes);
|
|
1211
|
+
if (types.length > 1) {
|
|
1212
|
+
throw new errors.NotSupported(this.id + 'starknetEncodeStructuredData only support single type');
|
|
1213
|
+
}
|
|
1214
|
+
const request = {
|
|
1215
|
+
'domain': domain,
|
|
1216
|
+
'primaryType': types[0],
|
|
1217
|
+
'types': this.extend({
|
|
1218
|
+
'StarkNetDomain': [
|
|
1219
|
+
{ 'name': "name", 'type': "felt" },
|
|
1220
|
+
{ 'name': "chainId", 'type': "felt" },
|
|
1221
|
+
{ 'name': "version", 'type': "felt" },
|
|
1222
|
+
],
|
|
1223
|
+
}, messageTypes),
|
|
1224
|
+
'message': messageData,
|
|
1225
|
+
};
|
|
1226
|
+
const msgHash = typedData$1.getMessageHash(request, address);
|
|
1227
|
+
return msgHash;
|
|
1228
|
+
}
|
|
1229
|
+
starknetSign(hash, pri) {
|
|
1230
|
+
// TODO: unify to ecdsa
|
|
1231
|
+
const signature = index$1.sign(hash.replace('0x', ''), pri.slice(-64));
|
|
1232
|
+
return this.json([signature.r.toString(), signature.s.toString()]);
|
|
1233
|
+
}
|
|
1185
1234
|
intToBase16(elem) {
|
|
1186
1235
|
return elem.toString(16);
|
|
1187
1236
|
}
|
|
@@ -1661,6 +1710,12 @@ class Exchange {
|
|
|
1661
1710
|
handleDelta(bookside, delta) {
|
|
1662
1711
|
throw new errors.NotSupported(this.id + ' handleDelta not supported yet');
|
|
1663
1712
|
}
|
|
1713
|
+
handleDeltasWithKeys(bookSide, deltas, priceKey = 0, amountKey = 1, countOrIdKey = 2) {
|
|
1714
|
+
for (let i = 0; i < deltas.length; i++) {
|
|
1715
|
+
const bidAsk = this.parseBidAsk(deltas[i], priceKey, amountKey, countOrIdKey);
|
|
1716
|
+
bookSide.storeArray(bidAsk);
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1664
1719
|
getCacheIndex(orderbook, deltas) {
|
|
1665
1720
|
// return the first index of the cache that can be applied to the orderbook or -1 if not possible
|
|
1666
1721
|
return -1;
|
package/dist/cjs/src/binance.js
CHANGED
|
@@ -12636,7 +12636,7 @@ class binance extends binance$1 {
|
|
|
12636
12636
|
async fetchMarginModes(symbols = undefined, params = {}) {
|
|
12637
12637
|
/**
|
|
12638
12638
|
* @method
|
|
12639
|
-
* @name binance#
|
|
12639
|
+
* @name binance#fetchMarginModes
|
|
12640
12640
|
* @description fetches margin modes ("isolated" or "cross") that the market for the symbol in in, with symbol=undefined all markets for a subType (linear/inverse) are returned
|
|
12641
12641
|
* @see https://developers.binance.com/docs/derivatives/coin-margined-futures/account/Account-Information
|
|
12642
12642
|
* @see https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Account-Information-V2
|
package/dist/cjs/src/blofin.js
CHANGED
|
@@ -20,6 +20,7 @@ class blofin extends blofin$1 {
|
|
|
20
20
|
'countries': ['US'],
|
|
21
21
|
'version': 'v1',
|
|
22
22
|
'rateLimit': 100,
|
|
23
|
+
'pro': true,
|
|
23
24
|
'has': {
|
|
24
25
|
'CORS': undefined,
|
|
25
26
|
'spot': false,
|
|
@@ -94,7 +95,7 @@ class blofin extends blofin$1 {
|
|
|
94
95
|
'fetchOpenInterestHistory': false,
|
|
95
96
|
'fetchOpenOrder': undefined,
|
|
96
97
|
'fetchOpenOrders': true,
|
|
97
|
-
'fetchOrder':
|
|
98
|
+
'fetchOrder': undefined,
|
|
98
99
|
'fetchOrderBook': true,
|
|
99
100
|
'fetchOrderBooks': false,
|
|
100
101
|
'fetchOrders': false,
|
|
@@ -144,11 +145,12 @@ class blofin extends blofin$1 {
|
|
|
144
145
|
'2h': '2H',
|
|
145
146
|
'4h': '4H',
|
|
146
147
|
'6h': '6H',
|
|
148
|
+
'8h': '8H',
|
|
147
149
|
'12h': '12H',
|
|
148
150
|
'1d': '1D',
|
|
151
|
+
'3d': '3D',
|
|
149
152
|
'1w': '1W',
|
|
150
153
|
'1M': '1M',
|
|
151
|
-
'3M': '3M',
|
|
152
154
|
},
|
|
153
155
|
'hostname': 'www.blofin.com',
|
|
154
156
|
'urls': {
|
|
@@ -489,6 +491,25 @@ class blofin extends blofin$1 {
|
|
|
489
491
|
return this.parseOrderBook(first, symbol, timestamp);
|
|
490
492
|
}
|
|
491
493
|
parseTicker(ticker, market = undefined) {
|
|
494
|
+
//
|
|
495
|
+
// response similar for REST & WS
|
|
496
|
+
//
|
|
497
|
+
// {
|
|
498
|
+
// instId: "ADA-USDT",
|
|
499
|
+
// ts: "1707736811486",
|
|
500
|
+
// last: "0.5315",
|
|
501
|
+
// lastSize: "4",
|
|
502
|
+
// askPrice: "0.5318",
|
|
503
|
+
// askSize: "248",
|
|
504
|
+
// bidPrice: "0.5315",
|
|
505
|
+
// bidSize: "63",
|
|
506
|
+
// open24h: "0.5555",
|
|
507
|
+
// high24h: "0.5563",
|
|
508
|
+
// low24h: "0.5315",
|
|
509
|
+
// volCurrency24h: "198560100",
|
|
510
|
+
// vol24h: "1985601",
|
|
511
|
+
// }
|
|
512
|
+
//
|
|
492
513
|
const timestamp = this.safeInteger(ticker, 'ts');
|
|
493
514
|
const marketId = this.safeString(ticker, 'instId');
|
|
494
515
|
market = this.safeMarket(marketId, market, '-');
|
|
@@ -561,7 +582,8 @@ class blofin extends blofin$1 {
|
|
|
561
582
|
}
|
|
562
583
|
parseTrade(trade, market = undefined) {
|
|
563
584
|
//
|
|
564
|
-
// fetch trades
|
|
585
|
+
// fetch trades (response similar for REST & WS)
|
|
586
|
+
//
|
|
565
587
|
// {
|
|
566
588
|
// "tradeId": "3263934920",
|
|
567
589
|
// "instId": "LTC-USDT",
|
|
@@ -570,6 +592,7 @@ class blofin extends blofin$1 {
|
|
|
570
592
|
// "side": "buy",
|
|
571
593
|
// "ts": "1707232020854"
|
|
572
594
|
// }
|
|
595
|
+
//
|
|
573
596
|
// my trades
|
|
574
597
|
// {
|
|
575
598
|
// "instId": "LTC-USDT",
|
|
@@ -848,10 +871,12 @@ class blofin extends blofin$1 {
|
|
|
848
871
|
return this.parseFundingBalance(response);
|
|
849
872
|
}
|
|
850
873
|
else {
|
|
851
|
-
return this.
|
|
874
|
+
return this.parseBalance(response);
|
|
852
875
|
}
|
|
853
876
|
}
|
|
854
|
-
|
|
877
|
+
parseBalance(response) {
|
|
878
|
+
//
|
|
879
|
+
// "data" similar for REST & WS
|
|
855
880
|
//
|
|
856
881
|
// {
|
|
857
882
|
// "code": "0",
|
|
@@ -873,7 +898,8 @@ class blofin extends blofin$1 {
|
|
|
873
898
|
// "orderFrozen": "14920.994472632597427761",
|
|
874
899
|
// "equityUsd": "10011254.077985990315787910",
|
|
875
900
|
// "isolatedUnrealizedPnl": "-22.151999999999999999952",
|
|
876
|
-
// "bonus": "0"
|
|
901
|
+
// "bonus": "0" // present only in REST
|
|
902
|
+
// "unrealizedPnl": "0" // present only in WS
|
|
877
903
|
// }
|
|
878
904
|
// ]
|
|
879
905
|
// }
|
|
@@ -1035,6 +1061,8 @@ class blofin extends blofin$1 {
|
|
|
1035
1061
|
return this.safeString(statuses, status, status);
|
|
1036
1062
|
}
|
|
1037
1063
|
parseOrder(order, market = undefined) {
|
|
1064
|
+
//
|
|
1065
|
+
// response similar for REST & WS
|
|
1038
1066
|
//
|
|
1039
1067
|
// {
|
|
1040
1068
|
// "orderId": "2075628533",
|
|
@@ -1063,6 +1091,9 @@ class blofin extends blofin$1 {
|
|
|
1063
1091
|
// "cancelSource": "not_canceled",
|
|
1064
1092
|
// "cancelSourceReason": null,
|
|
1065
1093
|
// "brokerId": "ec6dd3a7dd982d0b"
|
|
1094
|
+
// "filled_amount": "1.000000000000000000", // filledAmount in "ws" watchOrders
|
|
1095
|
+
// "cancelSource": "", // only in WS
|
|
1096
|
+
// "instType": "SWAP", // only in WS
|
|
1066
1097
|
// }
|
|
1067
1098
|
//
|
|
1068
1099
|
const id = this.safeString2(order, 'tpslId', 'orderId');
|
|
@@ -1812,6 +1843,32 @@ class blofin extends blofin$1 {
|
|
|
1812
1843
|
return this.filterByArrayPositions(result, 'symbol', symbols, false);
|
|
1813
1844
|
}
|
|
1814
1845
|
parsePosition(position, market = undefined) {
|
|
1846
|
+
//
|
|
1847
|
+
// response similar for REST & WS
|
|
1848
|
+
//
|
|
1849
|
+
// {
|
|
1850
|
+
// instType: 'SWAP',
|
|
1851
|
+
// instId: 'LTC-USDT',
|
|
1852
|
+
// marginMode: 'cross',
|
|
1853
|
+
// positionId: '644159',
|
|
1854
|
+
// positionSide: 'net',
|
|
1855
|
+
// positions: '1',
|
|
1856
|
+
// availablePositions: '1',
|
|
1857
|
+
// averagePrice: '68.16',
|
|
1858
|
+
// unrealizedPnl: '0.80631223',
|
|
1859
|
+
// unrealizedPnlRatio: '0.03548909463028169',
|
|
1860
|
+
// leverage: '3',
|
|
1861
|
+
// liquidationPrice: '10.116655172370356435',
|
|
1862
|
+
// markPrice: '68.96',
|
|
1863
|
+
// initialMargin: '22.988770743333333333',
|
|
1864
|
+
// margin: '', // this field might not exist in rest response
|
|
1865
|
+
// marginRatio: '152.523509620342499273',
|
|
1866
|
+
// maintenanceMargin: '0.34483156115',
|
|
1867
|
+
// adl: '4',
|
|
1868
|
+
// createTime: '1707235776528',
|
|
1869
|
+
// updateTime: '1707235776528'
|
|
1870
|
+
// }
|
|
1871
|
+
//
|
|
1815
1872
|
const marketId = this.safeString(position, 'instId');
|
|
1816
1873
|
market = this.safeMarket(marketId, market);
|
|
1817
1874
|
const symbol = market['symbol'];
|
package/dist/cjs/src/bybit.js
CHANGED
|
@@ -8198,7 +8198,7 @@ class bybit extends bybit$1 {
|
|
|
8198
8198
|
const quoteValueString = Precise["default"].stringMul(baseValueString, priceString);
|
|
8199
8199
|
return this.safeLiquidation({
|
|
8200
8200
|
'info': liquidation,
|
|
8201
|
-
'symbol': this.safeSymbol(marketId, market),
|
|
8201
|
+
'symbol': this.safeSymbol(marketId, market, undefined, 'contract'),
|
|
8202
8202
|
'contracts': this.parseNumber(contractsString),
|
|
8203
8203
|
'contractSize': this.parseNumber(contractSizeString),
|
|
8204
8204
|
'price': this.parseNumber(priceString),
|
|
@@ -83,7 +83,7 @@ class coinbaseinternational extends coinbaseinternational$1 {
|
|
|
83
83
|
'fetchMyBuys': true,
|
|
84
84
|
'fetchMySells': true,
|
|
85
85
|
'fetchMyTrades': true,
|
|
86
|
-
'fetchOHLCV':
|
|
86
|
+
'fetchOHLCV': true,
|
|
87
87
|
'fetchOpenInterestHistory': false,
|
|
88
88
|
'fetchOpenOrders': true,
|
|
89
89
|
'fetchOrder': true,
|
|
@@ -102,6 +102,7 @@ class coinbaseinternational extends coinbaseinternational$1 {
|
|
|
102
102
|
'fetchTrades': false,
|
|
103
103
|
'fetchTradingFee': false,
|
|
104
104
|
'fetchTradingFees': false,
|
|
105
|
+
'fetchTransfers': true,
|
|
105
106
|
'fetchWithdrawals': true,
|
|
106
107
|
'reduceMargin': false,
|
|
107
108
|
'sandbox': true,
|
|
@@ -144,7 +145,7 @@ class coinbaseinternational extends coinbaseinternational$1 {
|
|
|
144
145
|
'instruments/{instrument}',
|
|
145
146
|
'instruments/{instrument}/quote',
|
|
146
147
|
'instruments/{instrument}/funding',
|
|
147
|
-
'',
|
|
148
|
+
'instruments/{instrument}/candles',
|
|
148
149
|
],
|
|
149
150
|
},
|
|
150
151
|
'private': {
|
|
@@ -352,6 +353,81 @@ class coinbaseinternational extends coinbaseinternational$1 {
|
|
|
352
353
|
'info': account,
|
|
353
354
|
};
|
|
354
355
|
}
|
|
356
|
+
async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = 100, params = {}) {
|
|
357
|
+
/**
|
|
358
|
+
* @method
|
|
359
|
+
* @name coinbaseinternational#fetchOHLCV
|
|
360
|
+
* @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
361
|
+
* @see https://docs.cdp.coinbase.com/intx/reference/getinstrumentcandles
|
|
362
|
+
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
363
|
+
* @param {string} timeframe the length of time each candle represents
|
|
364
|
+
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
365
|
+
* @param {int} [limit] the maximum amount of candles to fetch, default 100 max 10000
|
|
366
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
367
|
+
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
368
|
+
* @param {int} [params.until] timestamp in ms of the latest candle to fetch
|
|
369
|
+
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
370
|
+
*/
|
|
371
|
+
await this.loadMarkets();
|
|
372
|
+
let paginate = false;
|
|
373
|
+
[paginate, params] = this.handleOptionAndParams(params, 'fetchOHLCV', 'paginate');
|
|
374
|
+
if (paginate) {
|
|
375
|
+
return await this.fetchPaginatedCallDeterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 10000);
|
|
376
|
+
}
|
|
377
|
+
const market = this.market(symbol);
|
|
378
|
+
const request = {
|
|
379
|
+
'instrument': market['id'],
|
|
380
|
+
'granularity': this.safeString(this.timeframes, timeframe, timeframe),
|
|
381
|
+
};
|
|
382
|
+
if (since !== undefined) {
|
|
383
|
+
request['start'] = this.iso8601(since);
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
throw new errors.ArgumentsRequired(this.id + ' fetchOHLCV() requires a since argument');
|
|
387
|
+
}
|
|
388
|
+
const unitl = this.safeInteger(params, 'until');
|
|
389
|
+
if (unitl !== undefined) {
|
|
390
|
+
params = this.omit(params, 'until');
|
|
391
|
+
request['end'] = this.iso8601(unitl);
|
|
392
|
+
}
|
|
393
|
+
const response = await this.v1PublicGetInstrumentsInstrumentCandles(this.extend(request, params));
|
|
394
|
+
//
|
|
395
|
+
// {
|
|
396
|
+
// "aggregations": [
|
|
397
|
+
// {
|
|
398
|
+
// "start": "2024-04-23T00:00:00Z",
|
|
399
|
+
// "open": "62884.4",
|
|
400
|
+
// "high": "64710.6",
|
|
401
|
+
// "low": "62884.4",
|
|
402
|
+
// "close": "63508.4",
|
|
403
|
+
// "volume": "3253.9983"
|
|
404
|
+
// }
|
|
405
|
+
// ]
|
|
406
|
+
// }
|
|
407
|
+
//
|
|
408
|
+
const candles = this.safeList(response, 'aggregations', []);
|
|
409
|
+
return this.parseOHLCVs(candles, market, timeframe, since, limit);
|
|
410
|
+
}
|
|
411
|
+
parseOHLCV(ohlcv, market = undefined) {
|
|
412
|
+
//
|
|
413
|
+
// {
|
|
414
|
+
// "start": "2024-04-23T00:00:00Z",
|
|
415
|
+
// "open": "62884.4",
|
|
416
|
+
// "high": "64710.6",
|
|
417
|
+
// "low": "62884.4",
|
|
418
|
+
// "close": "63508.4",
|
|
419
|
+
// "volume": "3253.9983"
|
|
420
|
+
// }
|
|
421
|
+
//
|
|
422
|
+
return [
|
|
423
|
+
this.parse8601(this.safeString2(ohlcv, 'start', 'time')),
|
|
424
|
+
this.safeNumber(ohlcv, 'open'),
|
|
425
|
+
this.safeNumber(ohlcv, 'high'),
|
|
426
|
+
this.safeNumber(ohlcv, 'low'),
|
|
427
|
+
this.safeNumber(ohlcv, 'close'),
|
|
428
|
+
this.safeNumber(ohlcv, 'volume'),
|
|
429
|
+
];
|
|
430
|
+
}
|
|
355
431
|
async fetchFundingRateHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
356
432
|
/**
|
|
357
433
|
* @method
|
|
@@ -517,6 +593,96 @@ class coinbaseinternational extends coinbaseinternational$1 {
|
|
|
517
593
|
'rate': undefined,
|
|
518
594
|
};
|
|
519
595
|
}
|
|
596
|
+
async fetchTransfers(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
597
|
+
/**
|
|
598
|
+
* @method
|
|
599
|
+
* @name coinbaseinternational#fetchTransfers
|
|
600
|
+
* @description fetch a history of internal transfers made on an account
|
|
601
|
+
* @see https://docs.cdp.coinbase.com/intx/reference/gettransfers
|
|
602
|
+
* @param {string} code unified currency code of the currency transferred
|
|
603
|
+
* @param {int} [since] the earliest time in ms to fetch transfers for
|
|
604
|
+
* @param {int} [limit] the maximum number of transfers structures to retrieve
|
|
605
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
606
|
+
* @returns {object[]} a list of [transfer structures]{@link https://docs.ccxt.com/#/?id=transfer-structure}
|
|
607
|
+
*/
|
|
608
|
+
await this.loadMarkets();
|
|
609
|
+
const request = {
|
|
610
|
+
'type': 'INTERNAL',
|
|
611
|
+
};
|
|
612
|
+
let currency = undefined;
|
|
613
|
+
if (code !== undefined) {
|
|
614
|
+
currency = this.currency(code);
|
|
615
|
+
}
|
|
616
|
+
let portfolios = undefined;
|
|
617
|
+
[portfolios, params] = this.handleOptionAndParams(params, 'fetchTransfers', 'portfolios');
|
|
618
|
+
if (portfolios !== undefined) {
|
|
619
|
+
request['portfolios'] = portfolios;
|
|
620
|
+
}
|
|
621
|
+
if (since !== undefined) {
|
|
622
|
+
request['time_from'] = this.iso8601(since);
|
|
623
|
+
}
|
|
624
|
+
if (limit !== undefined) {
|
|
625
|
+
request['result_limit'] = limit;
|
|
626
|
+
}
|
|
627
|
+
else {
|
|
628
|
+
request['result_limit'] = 100;
|
|
629
|
+
}
|
|
630
|
+
const response = await this.v1PrivateGetTransfers(this.extend(request, params));
|
|
631
|
+
const transfers = this.safeList(response, 'results', []);
|
|
632
|
+
return this.parseTransfers(transfers, currency, since, limit);
|
|
633
|
+
}
|
|
634
|
+
parseTransfer(transfer, currency = undefined) {
|
|
635
|
+
//
|
|
636
|
+
// {
|
|
637
|
+
// "amount":"0.0008",
|
|
638
|
+
// "asset":"USDC",
|
|
639
|
+
// "created_at":"2024-02-22T16:00:00Z",
|
|
640
|
+
// "from_portfolio":{
|
|
641
|
+
// "id":"13yuk1fs-1-0",
|
|
642
|
+
// "name":"Eng Test Portfolio - 2",
|
|
643
|
+
// "uuid":"018712f2-5ff9-7de3-9010-xxxxxxxxx"
|
|
644
|
+
// },
|
|
645
|
+
// "instrument_id":"149264164756389888",
|
|
646
|
+
// "instrument_symbol":"ETH-PERP",
|
|
647
|
+
// "position_id":"1xy4v51m-1-2",
|
|
648
|
+
// "status":"PROCESSED",
|
|
649
|
+
// "to_portfolio":{
|
|
650
|
+
// "name":"CB_FUND"
|
|
651
|
+
// },
|
|
652
|
+
// "transfer_type":"FUNDING",
|
|
653
|
+
// "transfer_uuid":"a6b708df-2c44-32c5-bb98-xxxxxxxxxx",
|
|
654
|
+
// "updated_at":"2024-02-22T16:00:00Z"
|
|
655
|
+
// }
|
|
656
|
+
//
|
|
657
|
+
const datetime = this.safeInteger(transfer, 'created_at');
|
|
658
|
+
const timestamp = this.parse8601(datetime);
|
|
659
|
+
const currencyId = this.safeString(transfer, 'asset');
|
|
660
|
+
const code = this.safeCurrencyCode(currencyId);
|
|
661
|
+
const fromPorfolio = this.safeDict(transfer, 'from_portfolio', {});
|
|
662
|
+
const fromId = this.safeString(fromPorfolio, 'id');
|
|
663
|
+
const toPorfolio = this.safeDict(transfer, 'to_portfolio', {});
|
|
664
|
+
const toId = this.safeString(toPorfolio, 'id');
|
|
665
|
+
return {
|
|
666
|
+
'info': transfer,
|
|
667
|
+
'id': this.safeString(transfer, 'transfer_uuid'),
|
|
668
|
+
'timestamp': timestamp,
|
|
669
|
+
'datetime': this.iso8601(timestamp),
|
|
670
|
+
'currency': code,
|
|
671
|
+
'amount': this.safeNumber(transfer, 'amount'),
|
|
672
|
+
'fromAccount': fromId,
|
|
673
|
+
'toAccount': toId,
|
|
674
|
+
'status': this.parseTransferStatus(this.safeString(transfer, 'status')),
|
|
675
|
+
};
|
|
676
|
+
}
|
|
677
|
+
parseTransferStatus(status) {
|
|
678
|
+
const statuses = {
|
|
679
|
+
'FAILED': 'failed',
|
|
680
|
+
'PROCESSED': 'ok',
|
|
681
|
+
'NEW': 'pending',
|
|
682
|
+
'STARTED': 'pending',
|
|
683
|
+
};
|
|
684
|
+
return this.safeString(statuses, status, status);
|
|
685
|
+
}
|
|
520
686
|
async createDepositAddress(code, params = {}) {
|
|
521
687
|
/**
|
|
522
688
|
* @method
|
|
@@ -386,7 +386,15 @@ class cryptocom extends cryptocom$1 {
|
|
|
386
386
|
'40006': errors.BadRequest,
|
|
387
387
|
'40007': errors.BadRequest,
|
|
388
388
|
'40101': errors.AuthenticationError,
|
|
389
|
-
'
|
|
389
|
+
'40102': errors.InvalidNonce,
|
|
390
|
+
'40103': errors.AuthenticationError,
|
|
391
|
+
'40104': errors.AuthenticationError,
|
|
392
|
+
'40107': errors.BadRequest,
|
|
393
|
+
'40401': errors.OrderNotFound,
|
|
394
|
+
'40801': errors.RequestTimeout,
|
|
395
|
+
'42901': errors.RateLimitExceeded,
|
|
396
|
+
'43005': errors.InvalidOrder,
|
|
397
|
+
'50001': errors.ExchangeError,
|
|
390
398
|
'9010001': errors.OnMaintenance, // {"code":9010001,"message":"SYSTEM_MAINTENANCE","details":"Crypto.com Exchange is currently under maintenance. Please refer to https://status.crypto.com for more details."}
|
|
391
399
|
},
|
|
392
400
|
'broad': {},
|
package/dist/cjs/src/hitbtc.js
CHANGED
|
@@ -2523,7 +2523,7 @@ class hitbtc extends hitbtc$1 {
|
|
|
2523
2523
|
async fetchMarginModes(symbols = undefined, params = {}) {
|
|
2524
2524
|
/**
|
|
2525
2525
|
* @method
|
|
2526
|
-
* @name hitbtc#
|
|
2526
|
+
* @name hitbtc#fetchMarginModes
|
|
2527
2527
|
* @description fetches margin mode of the user
|
|
2528
2528
|
* @see https://api.hitbtc.com/#get-margin-position-parameters
|
|
2529
2529
|
* @see https://api.hitbtc.com/#get-futures-position-parameters
|