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.
Files changed (54) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.js +1368 -201
  3. package/dist/ccxt.browser.min.js +4 -4
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/ace.js +1 -1
  6. package/dist/cjs/src/base/Exchange.js +7 -3
  7. package/dist/cjs/src/base/functions/crypto.js +11 -2
  8. package/dist/cjs/src/base/functions/generic.js +5 -3
  9. package/dist/cjs/src/base/functions.js +1 -0
  10. package/dist/cjs/src/binance.js +108 -5
  11. package/dist/cjs/src/bitget.js +485 -22
  12. package/dist/cjs/src/bybit.js +132 -15
  13. package/dist/cjs/src/cryptocom.js +262 -15
  14. package/dist/cjs/src/gate.js +191 -88
  15. package/dist/cjs/src/krakenfutures.js +86 -20
  16. package/dist/cjs/src/oceanex.js +0 -12
  17. package/dist/cjs/src/okx.js +60 -1
  18. package/dist/cjs/src/pro/bybit.js +1 -1
  19. package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +8 -6
  20. package/dist/cjs/src/wavesexchange.js +6 -6
  21. package/js/ccxt.d.ts +1 -1
  22. package/js/ccxt.js +1 -1
  23. package/js/src/abstract/gate.d.ts +2 -7
  24. package/js/src/abstract/gateio.d.ts +2 -7
  25. package/js/src/ace.js +1 -1
  26. package/js/src/base/Exchange.d.ts +4 -2
  27. package/js/src/base/Exchange.js +7 -3
  28. package/js/src/base/functions/crypto.d.ts +3 -2
  29. package/js/src/base/functions/crypto.js +11 -3
  30. package/js/src/base/functions/generic.d.ts +1 -1
  31. package/js/src/base/functions/generic.js +5 -3
  32. package/js/src/base/types.d.ts +8 -0
  33. package/js/src/binance.d.ts +2 -1
  34. package/js/src/binance.js +108 -5
  35. package/js/src/bitget.d.ts +31 -1
  36. package/js/src/bitget.js +485 -22
  37. package/js/src/bybit.d.ts +4 -2
  38. package/js/src/bybit.js +132 -15
  39. package/js/src/cryptocom.d.ts +4 -1
  40. package/js/src/cryptocom.js +262 -15
  41. package/js/src/gate.d.ts +3 -1
  42. package/js/src/gate.js +191 -88
  43. package/js/src/krakenfutures.d.ts +3 -1
  44. package/js/src/krakenfutures.js +86 -20
  45. package/js/src/oceanex.d.ts +0 -1
  46. package/js/src/oceanex.js +0 -12
  47. package/js/src/okx.d.ts +2 -1
  48. package/js/src/okx.js +60 -1
  49. package/js/src/pro/bybit.js +1 -1
  50. package/js/src/static_dependencies/noble-curves/abstract/edwards.d.ts +1 -0
  51. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +5 -3
  52. package/js/src/wavesexchange.js +7 -7
  53. package/package.json +1 -1
  54. package/skip-tests.json +2 -3
@@ -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, 'openInterestValue') === undefined;
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) msg = preHash(msg); // for ed25519ph etc.
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,
@@ -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 { eddsa } from './base/functions/crypto.js';
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 = eddsa(payload, hexKey, ed25519);
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 = eddsa(this.binaryToBase16(this.base58ToBinary(serializedOrder)), this.binaryToBase16(this.base58ToBinary(this.secret)), ed25519);
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 = eddsa(this.binaryToBase16(binary), hexSecret, ed25519);
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 = eddsa(this.binaryToBase16(binary), hexSecret, ed25519);
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 = eddsa(this.binaryToBase16(binary), hexSecret, ed25519);
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 = eddsa(this.binaryToBase16(binary), hexSecret, ed25519);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.1.24",
3
+ "version": "4.1.26",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",
package/skip-tests.json CHANGED
@@ -1080,9 +1080,8 @@
1080
1080
  "skipWs": true,
1081
1081
  "skipMethods":{
1082
1082
  "fetchCurrencies": {
1083
- "networks": "not yet implemented",
1084
- "withdraw": "not provided for some currencies",
1085
- "deposit": "not provided for some currencies"
1083
+ "depositForNonCrypto": "not provided",
1084
+ "withdrawForNonCrypto": "not provided"
1086
1085
  },
1087
1086
  "loadMarkets": {
1088
1087
  "currencyIdAndCode": "messed"