ccxt 4.1.24 → 4.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/ccxt.browser.js +1368 -201
- package/dist/ccxt.browser.min.js +4 -4
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ace.js +1 -1
- package/dist/cjs/src/base/Exchange.js +7 -3
- package/dist/cjs/src/base/functions/crypto.js +11 -2
- package/dist/cjs/src/base/functions/generic.js +5 -3
- package/dist/cjs/src/base/functions.js +1 -0
- package/dist/cjs/src/binance.js +108 -5
- package/dist/cjs/src/bitget.js +485 -22
- package/dist/cjs/src/bybit.js +132 -15
- package/dist/cjs/src/cryptocom.js +262 -15
- package/dist/cjs/src/gate.js +191 -88
- package/dist/cjs/src/krakenfutures.js +86 -20
- package/dist/cjs/src/oceanex.js +0 -12
- package/dist/cjs/src/okx.js +60 -1
- package/dist/cjs/src/pro/bybit.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +8 -6
- package/dist/cjs/src/wavesexchange.js +6 -6
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/gate.d.ts +2 -7
- package/js/src/abstract/gateio.d.ts +2 -7
- package/js/src/ace.js +1 -1
- package/js/src/base/Exchange.d.ts +4 -2
- package/js/src/base/Exchange.js +7 -3
- package/js/src/base/functions/crypto.d.ts +3 -2
- package/js/src/base/functions/crypto.js +11 -3
- package/js/src/base/functions/generic.d.ts +1 -1
- package/js/src/base/functions/generic.js +5 -3
- package/js/src/base/types.d.ts +8 -0
- package/js/src/binance.d.ts +2 -1
- package/js/src/binance.js +108 -5
- package/js/src/bitget.d.ts +31 -1
- package/js/src/bitget.js +485 -22
- package/js/src/bybit.d.ts +4 -2
- package/js/src/bybit.js +132 -15
- package/js/src/cryptocom.d.ts +4 -1
- package/js/src/cryptocom.js +262 -15
- package/js/src/gate.d.ts +3 -1
- package/js/src/gate.js +191 -88
- package/js/src/krakenfutures.d.ts +3 -1
- package/js/src/krakenfutures.js +86 -20
- package/js/src/oceanex.d.ts +0 -1
- package/js/src/oceanex.js +0 -12
- package/js/src/okx.d.ts +2 -1
- package/js/src/okx.js +60 -1
- package/js/src/pro/bybit.js +1 -1
- package/js/src/static_dependencies/noble-curves/abstract/edwards.d.ts +1 -0
- package/js/src/static_dependencies/noble-curves/abstract/edwards.js +5 -3
- package/js/src/wavesexchange.js +7 -7
- package/package.json +1 -1
- package/skip-tests.json +2 -3
package/js/src/pro/bybit.js
CHANGED
|
@@ -319,7 +319,7 @@ export default class bybit extends bybitRest {
|
|
|
319
319
|
const topic = this.safeString(message, 'topic', '');
|
|
320
320
|
const updateType = this.safeString(message, 'type', '');
|
|
321
321
|
const data = this.safeValue(message, 'data', {});
|
|
322
|
-
const isSpot = this.safeString(data, '
|
|
322
|
+
const isSpot = this.safeString(data, 'fundingRate') === undefined;
|
|
323
323
|
const type = isSpot ? 'spot' : 'contract';
|
|
324
324
|
let symbol = undefined;
|
|
325
325
|
let parsed = undefined;
|
|
@@ -61,6 +61,7 @@ export declare type CurveFn = {
|
|
|
61
61
|
CURVE: ReturnType<typeof validateOpts>;
|
|
62
62
|
getPublicKey: (privateKey: Hex) => Uint8Array;
|
|
63
63
|
sign: (message: Hex, privateKey: Hex) => Uint8Array;
|
|
64
|
+
signModified?: (message: Hex, privateKey: Hex) => Uint8Array;
|
|
64
65
|
verify: (sig: Hex, message: Hex, publicKey: Hex) => boolean;
|
|
65
66
|
ExtendedPoint: ExtPointConstructor;
|
|
66
67
|
utils: {
|
|
@@ -359,9 +359,9 @@ export function twistedEdwards(curveDef) {
|
|
|
359
359
|
}
|
|
360
360
|
/** Signs message with privateKey. RFC8032 5.1.6 */
|
|
361
361
|
function sign(msg, privKey, context) {
|
|
362
|
-
/*
|
|
363
362
|
msg = ensureBytes('message', msg);
|
|
364
|
-
if (preHash)
|
|
363
|
+
if (preHash)
|
|
364
|
+
msg = preHash(msg); // for ed25519ph etc.
|
|
365
365
|
const { prefix, scalar, pointBytes } = getExtendedPublicKey(privKey);
|
|
366
366
|
const r = hashDomainToScalar(context, prefix, msg); // r = dom2(F, C) || prefix || PH(M)
|
|
367
367
|
const R = G.multiply(r).toRawBytes(); // R = rG
|
|
@@ -370,7 +370,8 @@ export function twistedEdwards(curveDef) {
|
|
|
370
370
|
assertGE0(s); // 0 <= s < l
|
|
371
371
|
const res = ut.concatBytes(R, ut.numberToBytesLE(s, Fp.BYTES));
|
|
372
372
|
return ensureBytes('result', res, nByteLength * 2); // 64-byte signature
|
|
373
|
-
|
|
373
|
+
}
|
|
374
|
+
function signModified(msg, privKey, context) {
|
|
374
375
|
msg = ensureBytes('message', msg);
|
|
375
376
|
const privKeyBytes = ensureBytes('privKey', privKey);
|
|
376
377
|
const privKeyNumber = ut.bytesToNumberLE(privKeyBytes);
|
|
@@ -423,6 +424,7 @@ export function twistedEdwards(curveDef) {
|
|
|
423
424
|
CURVE,
|
|
424
425
|
getPublicKey,
|
|
425
426
|
sign,
|
|
427
|
+
signModified,
|
|
426
428
|
verify,
|
|
427
429
|
ExtendedPoint: Point,
|
|
428
430
|
utils,
|
package/js/src/wavesexchange.js
CHANGED
|
@@ -9,7 +9,7 @@ import Exchange from './abstract/wavesexchange.js';
|
|
|
9
9
|
import { ArgumentsRequired, AuthenticationError, InsufficientFunds, InvalidOrder, AccountSuspended, ExchangeError, DuplicateOrderId, OrderNotFound, BadSymbol, ExchangeNotAvailable, BadRequest } from './base/errors.js';
|
|
10
10
|
import { Precise } from './base/Precise.js';
|
|
11
11
|
import { ed25519 } from './static_dependencies/noble-curves/ed25519.js';
|
|
12
|
-
import {
|
|
12
|
+
import { axolotl } from './base/functions/crypto.js';
|
|
13
13
|
import { DECIMAL_PLACES } from './base/functions/number.js';
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
15
15
|
/**
|
|
@@ -755,7 +755,7 @@ export default class wavesexchange extends Exchange {
|
|
|
755
755
|
const messageHex = this.binaryToBase16(this.encode(message));
|
|
756
756
|
const payload = prefix + messageHex;
|
|
757
757
|
const hexKey = this.binaryToBase16(this.base58ToBinary(this.secret));
|
|
758
|
-
const signature =
|
|
758
|
+
const signature = axolotl(payload, hexKey, ed25519);
|
|
759
759
|
const request = {
|
|
760
760
|
'grant_type': 'password',
|
|
761
761
|
'scope': 'general',
|
|
@@ -1424,7 +1424,7 @@ export default class wavesexchange extends Exchange {
|
|
|
1424
1424
|
if ((serializedOrder[0] === '"') && (serializedOrder[(serializedOrder.length - 1)] === '"')) {
|
|
1425
1425
|
serializedOrder = serializedOrder.slice(1, serializedOrder.length - 1);
|
|
1426
1426
|
}
|
|
1427
|
-
const signature =
|
|
1427
|
+
const signature = axolotl(this.binaryToBase16(this.base58ToBinary(serializedOrder)), this.binaryToBase16(this.base58ToBinary(this.secret)), ed25519);
|
|
1428
1428
|
body['signature'] = signature;
|
|
1429
1429
|
//
|
|
1430
1430
|
// {
|
|
@@ -1539,7 +1539,7 @@ export default class wavesexchange extends Exchange {
|
|
|
1539
1539
|
];
|
|
1540
1540
|
const binary = this.binaryConcatArray(byteArray);
|
|
1541
1541
|
const hexSecret = this.binaryToBase16(this.base58ToBinary(this.secret));
|
|
1542
|
-
const signature =
|
|
1542
|
+
const signature = axolotl(this.binaryToBase16(binary), hexSecret, ed25519);
|
|
1543
1543
|
const request = {
|
|
1544
1544
|
'Timestamp': timestamp.toString(),
|
|
1545
1545
|
'Signature': signature,
|
|
@@ -1574,7 +1574,7 @@ export default class wavesexchange extends Exchange {
|
|
|
1574
1574
|
];
|
|
1575
1575
|
const binary = this.binaryConcatArray(byteArray);
|
|
1576
1576
|
const hexSecret = this.binaryToBase16(this.base58ToBinary(this.secret));
|
|
1577
|
-
const signature =
|
|
1577
|
+
const signature = axolotl(this.binaryToBase16(binary), hexSecret, ed25519);
|
|
1578
1578
|
const request = {
|
|
1579
1579
|
'Accept': 'application/json',
|
|
1580
1580
|
'Timestamp': timestamp.toString(),
|
|
@@ -1938,7 +1938,7 @@ export default class wavesexchange extends Exchange {
|
|
|
1938
1938
|
];
|
|
1939
1939
|
const binary = this.binaryConcatArray(byteArray);
|
|
1940
1940
|
const hexSecret = this.binaryToBase16(this.base58ToBinary(this.secret));
|
|
1941
|
-
const signature =
|
|
1941
|
+
const signature = axolotl(this.binaryToBase16(binary), hexSecret, ed25519);
|
|
1942
1942
|
const matcherRequest = {
|
|
1943
1943
|
'publicKey': this.apiKey,
|
|
1944
1944
|
'signature': signature,
|
|
@@ -2536,7 +2536,7 @@ export default class wavesexchange extends Exchange {
|
|
|
2536
2536
|
];
|
|
2537
2537
|
const binary = this.binaryConcatArray(byteArray);
|
|
2538
2538
|
const hexSecret = this.binaryToBase16(this.base58ToBinary(this.secret));
|
|
2539
|
-
const signature =
|
|
2539
|
+
const signature = axolotl(this.binaryToBase16(binary), hexSecret, ed25519);
|
|
2540
2540
|
const request = {
|
|
2541
2541
|
'senderPublicKey': this.apiKey,
|
|
2542
2542
|
'amount': amountInteger,
|
package/package.json
CHANGED
package/skip-tests.json
CHANGED
|
@@ -1080,9 +1080,8 @@
|
|
|
1080
1080
|
"skipWs": true,
|
|
1081
1081
|
"skipMethods":{
|
|
1082
1082
|
"fetchCurrencies": {
|
|
1083
|
-
"
|
|
1084
|
-
"
|
|
1085
|
-
"deposit": "not provided for some currencies"
|
|
1083
|
+
"depositForNonCrypto": "not provided",
|
|
1084
|
+
"withdrawForNonCrypto": "not provided"
|
|
1086
1085
|
},
|
|
1087
1086
|
"loadMarkets": {
|
|
1088
1087
|
"currencyIdAndCode": "messed"
|