@binance/common 1.0.0 → 1.0.1

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/dist/index.mjs CHANGED
@@ -61,26 +61,12 @@ var TimeUnit = {
61
61
  MICROSECOND: "MICROSECOND",
62
62
  microsecond: "microsecond"
63
63
  };
64
- var SPOT_REST_API_PROD_URL = "https://api.binance.com";
65
- var SPOT_REST_API_TESTNET_URL = "https://testnet.binance.vision";
66
- var SPOT_WS_API_PROD_URL = "wss://ws-api.binance.com:443/ws-api/v3";
67
- var SPOT_WS_API_TESTNET_URL = "wss://ws-api.testnet.binance.vision/ws-api/v3";
68
- var SPOT_WS_STREAMS_PROD_URL = "wss://stream.binance.com:9443";
69
- var SPOT_WS_STREAMS_TESTNET_URL = "wss://stream.testnet.binance.vision";
70
- var SPOT_REST_API_MARKET_URL = "https://data-api.binance.vision";
71
- var SPOT_WS_STREAMS_MARKET_URL = "wss://data-stream.binance.vision";
72
64
  var ALGO_REST_API_PROD_URL = "https://api.binance.com";
73
- var ALGO_REST_API_TESTNET_URL = "https://testnet.binance.vision";
74
65
  var AUTO_INVEST_REST_API_PROD_URL = "https://api.binance.com";
75
- var AUTO_INVEST_REST_API_TESTNET_URL = "https://testnet.binance.vision";
76
66
  var C2C_REST_API_PROD_URL = "https://api.binance.com";
77
- var C2C_REST_API_TESTNET_URL = "https://testnet.binance.vision";
78
67
  var CONVERT_REST_API_PROD_URL = "https://api.binance.com";
79
- var CONVERT_REST_API_TESTNET_URL = "https://testnet.binance.vision";
80
68
  var COPY_TRADING_REST_API_PROD_URL = "https://api.binance.com";
81
- var COPY_TRADING_REST_API_TESTNET_URL = "https://testnet.binance.vision";
82
69
  var CRYPTO_LOAN_REST_API_PROD_URL = "https://api.binance.com";
83
- var CRYPTO_LOAN_REST_API_TESTNET_URL = "https://testnet.binance.vision";
84
70
  var DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL = "https://dapi.binance.com";
85
71
  var DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL = "https://testnet.binancefuture.com";
86
72
  var DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL = "wss://ws-dapi.binance.com/ws-dapi/v1";
@@ -100,31 +86,26 @@ var DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL = "https://testnet
100
86
  var DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL = "https://fapi.binance.com";
101
87
  var DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_TESTNET_URL = "https://testnet.binancefuture.com";
102
88
  var DUAL_INVESTMENT_REST_API_PROD_URL = "https://api.binance.com";
103
- var DUAL_INVESTMENT_REST_API_TESTNET_URL = "https://testnet.binance.vision";
104
89
  var FIAT_REST_API_PROD_URL = "https://api.binance.com";
105
- var FIAT_REST_API_TESTNET_URL = "https://testnet.binance.vision";
106
90
  var GIFT_CARD_REST_API_PROD_URL = "https://api.binance.com";
107
- var GIFT_CARD_REST_API_TESTNET_URL = "https://testnet.binance.vision";
108
91
  var MARGIN_TRADING_REST_API_PROD_URL = "https://api.binance.com";
109
- var MARGIN_TRADING_REST_API_TESTNET_URL = "https://testnet.binance.vision";
110
92
  var MINING_REST_API_PROD_URL = "https://api.binance.com";
111
- var MINING_REST_API_TESTNET_URL = "https://testnet.binance.vision";
112
93
  var NFT_REST_API_PROD_URL = "https://api.binance.com";
113
- var NFT_REST_API_TESTNET_URL = "https://testnet.binance.vision";
114
94
  var PAY_REST_API_PROD_URL = "https://api.binance.com";
115
- var PAY_REST_API_TESTNET_URL = "https://testnet.binance.vision";
116
95
  var REBATE_REST_API_PROD_URL = "https://api.binance.com";
117
- var REBATE_REST_API_TESTNET_URL = "https://testnet.binance.vision";
118
96
  var SIMPLE_EARN_REST_API_PROD_URL = "https://api.binance.com";
119
- var SIMPLE_EARN_REST_API_TESTNET_URL = "https://testnet.binance.vision";
97
+ var SPOT_REST_API_PROD_URL = "https://api.binance.com";
98
+ var SPOT_REST_API_TESTNET_URL = "https://testnet.binance.vision";
99
+ var SPOT_WS_API_PROD_URL = "wss://ws-api.binance.com:443/ws-api/v3";
100
+ var SPOT_WS_API_TESTNET_URL = "wss://ws-api.testnet.binance.vision/ws-api/v3";
101
+ var SPOT_WS_STREAMS_PROD_URL = "wss://stream.binance.com:9443";
102
+ var SPOT_WS_STREAMS_TESTNET_URL = "wss://stream.testnet.binance.vision";
103
+ var SPOT_REST_API_MARKET_URL = "https://data-api.binance.vision";
104
+ var SPOT_WS_STREAMS_MARKET_URL = "wss://data-stream.binance.vision";
120
105
  var STAKING_REST_API_PROD_URL = "https://api.binance.com";
121
- var STAKING_REST_API_TESTNET_URL = "https://testnet.binance.vision";
122
106
  var SUB_ACCOUNT_REST_API_PROD_URL = "https://api.binance.com";
123
- var SUB_ACCOUNT_REST_API_TESTNET_URL = "https://testnet.binance.vision";
124
107
  var VIP_LOAN_REST_API_PROD_URL = "https://api.binance.com";
125
- var VIP_LOAN_REST_API_TESTNET_URL = "https://testnet.binance.vision";
126
108
  var WALLET_REST_API_PROD_URL = "https://api.binance.com";
127
- var WALLET_REST_API_TESTNET_URL = "https://testnet.binance.vision";
128
109
 
129
110
  // src/errors.ts
130
111
  var ConnectorClientError = class _ConnectorClientError extends Error {
@@ -396,6 +377,7 @@ var httpRequestFunction = async function(axiosArgs, configuration) {
396
377
  const retries = configuration?.retries ?? 0;
397
378
  const backoff = configuration?.backoff ?? 0;
398
379
  let attempt = 0;
380
+ let lastError;
399
381
  while (attempt <= retries) {
400
382
  try {
401
383
  const response = await globalAxios.request({
@@ -411,43 +393,54 @@ var httpRequestFunction = async function(axiosArgs, configuration) {
411
393
  };
412
394
  } catch (error) {
413
395
  attempt++;
396
+ const axiosError = error;
414
397
  if (shouldRetryRequest(
415
- error,
398
+ axiosError,
416
399
  axiosRequestArgs?.method?.toUpperCase(),
417
400
  retries - attempt
418
401
  )) {
419
402
  await delay(backoff * attempt);
420
403
  } else {
421
- if (error.response) {
422
- const status = error.response?.status;
423
- const data = JSON.parse(
424
- error.response?.data ?? "{}"
425
- );
404
+ if (axiosError.response && axiosError.response.status) {
405
+ const status = axiosError.response?.status;
406
+ const responseData = axiosError.response.data;
407
+ let data = {};
408
+ if (responseData && responseData !== null) {
409
+ if (typeof responseData === "string" && responseData !== "")
410
+ data = JSON.parse(responseData);
411
+ else if (typeof responseData === "object")
412
+ data = responseData;
413
+ }
414
+ const errorMsg = data.msg;
426
415
  switch (status) {
427
416
  case 400:
428
- throw new BadRequestError(data?.msg);
417
+ throw new BadRequestError(errorMsg);
429
418
  case 401:
430
- throw new UnauthorizedError(data?.msg);
419
+ throw new UnauthorizedError(errorMsg);
431
420
  case 403:
432
- throw new ForbiddenError(data?.msg);
421
+ throw new ForbiddenError(errorMsg);
433
422
  case 404:
434
- throw new NotFoundError(data?.msg);
423
+ throw new NotFoundError(errorMsg);
435
424
  case 418:
436
- throw new RateLimitBanError(data?.msg);
425
+ throw new RateLimitBanError(errorMsg);
437
426
  case 429:
438
- throw new TooManyRequestsError(data?.msg);
427
+ throw new TooManyRequestsError(errorMsg);
439
428
  default:
440
429
  if (status >= 500 && status < 600)
441
430
  throw new ServerError(`Server error: ${status}`, status);
442
- throw new ConnectorClientError(data?.msg);
431
+ throw new ConnectorClientError(errorMsg);
443
432
  }
444
433
  } else {
445
- throw new NetworkError("Network error or request timeout.");
434
+ if (retries > 0 && attempt >= retries)
435
+ lastError = new Error(`Request failed after ${retries} retries`);
436
+ else
437
+ lastError = new NetworkError("Network error or request timeout.");
438
+ break;
446
439
  }
447
440
  }
448
441
  }
449
442
  }
450
- throw new Error(`Request failed after ${retries} retries`);
443
+ throw lastError;
451
444
  };
452
445
  var parseRateLimitHeaders = function(headers) {
453
446
  const rateLimits = [];
@@ -1392,18 +1385,12 @@ var WebsocketStreamsBase2 = class extends WebsocketCommon {
1392
1385
  };
1393
1386
  export {
1394
1387
  ALGO_REST_API_PROD_URL,
1395
- ALGO_REST_API_TESTNET_URL,
1396
1388
  AUTO_INVEST_REST_API_PROD_URL,
1397
- AUTO_INVEST_REST_API_TESTNET_URL,
1398
1389
  BadRequestError,
1399
1390
  C2C_REST_API_PROD_URL,
1400
- C2C_REST_API_TESTNET_URL,
1401
1391
  CONVERT_REST_API_PROD_URL,
1402
- CONVERT_REST_API_TESTNET_URL,
1403
1392
  COPY_TRADING_REST_API_PROD_URL,
1404
- COPY_TRADING_REST_API_TESTNET_URL,
1405
1393
  CRYPTO_LOAN_REST_API_PROD_URL,
1406
- CRYPTO_LOAN_REST_API_TESTNET_URL,
1407
1394
  ConfigurationRestAPI,
1408
1395
  ConfigurationWebsocketAPI,
1409
1396
  ConfigurationWebsocketStreams,
@@ -1427,30 +1414,21 @@ export {
1427
1414
  DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL,
1428
1415
  DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL,
1429
1416
  DUAL_INVESTMENT_REST_API_PROD_URL,
1430
- DUAL_INVESTMENT_REST_API_TESTNET_URL,
1431
1417
  FIAT_REST_API_PROD_URL,
1432
- FIAT_REST_API_TESTNET_URL,
1433
1418
  ForbiddenError,
1434
1419
  GIFT_CARD_REST_API_PROD_URL,
1435
- GIFT_CARD_REST_API_TESTNET_URL,
1436
1420
  LogLevel,
1437
1421
  Logger,
1438
1422
  MARGIN_TRADING_REST_API_PROD_URL,
1439
- MARGIN_TRADING_REST_API_TESTNET_URL,
1440
1423
  MINING_REST_API_PROD_URL,
1441
- MINING_REST_API_TESTNET_URL,
1442
1424
  NFT_REST_API_PROD_URL,
1443
- NFT_REST_API_TESTNET_URL,
1444
1425
  NetworkError,
1445
1426
  NotFoundError,
1446
1427
  PAY_REST_API_PROD_URL,
1447
- PAY_REST_API_TESTNET_URL,
1448
1428
  REBATE_REST_API_PROD_URL,
1449
- REBATE_REST_API_TESTNET_URL,
1450
1429
  RateLimitBanError,
1451
1430
  RequiredError,
1452
1431
  SIMPLE_EARN_REST_API_PROD_URL,
1453
- SIMPLE_EARN_REST_API_TESTNET_URL,
1454
1432
  SPOT_REST_API_MARKET_URL,
1455
1433
  SPOT_REST_API_PROD_URL,
1456
1434
  SPOT_REST_API_TESTNET_URL,
@@ -1460,17 +1438,13 @@ export {
1460
1438
  SPOT_WS_STREAMS_PROD_URL,
1461
1439
  SPOT_WS_STREAMS_TESTNET_URL,
1462
1440
  STAKING_REST_API_PROD_URL,
1463
- STAKING_REST_API_TESTNET_URL,
1464
1441
  SUB_ACCOUNT_REST_API_PROD_URL,
1465
- SUB_ACCOUNT_REST_API_TESTNET_URL,
1466
1442
  ServerError,
1467
1443
  TimeUnit,
1468
1444
  TooManyRequestsError,
1469
1445
  UnauthorizedError,
1470
1446
  VIP_LOAN_REST_API_PROD_URL,
1471
- VIP_LOAN_REST_API_TESTNET_URL,
1472
1447
  WALLET_REST_API_PROD_URL,
1473
- WALLET_REST_API_TESTNET_URL,
1474
1448
  WebsocketAPIBase,
1475
1449
  WebsocketCommon,
1476
1450
  WebsocketEventEmitter,