@binance/common 1.2.4 → 1.2.5

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.d.mts CHANGED
@@ -506,12 +506,16 @@ interface RequestArgs {
506
506
  */
507
507
  declare const clearSignerCache: () => void;
508
508
  /**
509
- * Generates a query string from an object of parameters.
509
+ * Builds a URL query string from the given parameters object.
510
510
  *
511
- * @param params - An object containing the query parameters.
512
- * @returns The generated query string.
511
+ * Iterates over the key-value pairs in the `params` object, serializes each value,
512
+ * and encodes it for use in a URL. Only keys with non-null and non-undefined values
513
+ * are included in the resulting query string.
514
+ *
515
+ * @param params - An object containing key-value pairs to be serialized into a query string.
516
+ * @returns A URL-encoded query string representing the provided parameters.
513
517
  */
514
- declare function buildQueryString(params: object): string;
518
+ declare function buildQueryString(params: Record<string, unknown>): string;
515
519
  /**
516
520
  * Generates a random string of 16 hexadecimal characters.
517
521
  *
@@ -550,7 +554,7 @@ declare const getSignature: (configuration: {
550
554
  apiSecret?: string;
551
555
  privateKey?: string | Buffer;
552
556
  privateKeyPassphrase?: string;
553
- }, queryParams: object) => string;
557
+ }, queryParams: Record<string, unknown>) => string;
554
558
  /**
555
559
  * Asserts that a function parameter exists and is not null or undefined.
556
560
  *
@@ -561,28 +565,14 @@ declare const getSignature: (configuration: {
561
565
  */
562
566
  declare const assertParamExists: (functionName: string, paramName: string, paramValue: unknown) => void;
563
567
  /**
564
- * Recursively flattens an object or array into URL search parameters.
565
- *
566
- * This function handles nested objects and arrays by converting them into dot-notation query parameters.
567
- * It supports different types of parameters:
568
- * - Arrays can be stringified or recursively added
569
- * - Objects are flattened with dot notation keys
570
- * - Primitive values are converted to strings
571
- *
572
- * @param urlSearchParams The URLSearchParams object to modify
573
- * @param parameter The parameter to flatten (can be an object, array, or primitive)
574
- * @param key Optional key for nested parameters, used for creating dot-notation keys
575
- */
576
- declare function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: unknown, key?: string): void;
577
- /**
578
- * Sets the search parameters of the provided URL by flattening the given objects into the URL's search parameters.
579
- *
580
- * This function takes a URL and one or more objects, and updates the URL's search parameters by flattening the objects into key-value pairs. It uses the `setFlattenedQueryParams` function to recursively flatten the objects.
568
+ * Sets the search parameters of a given URL object based on the provided key-value pairs.
569
+ * Only parameters with non-null and non-undefined values are included.
570
+ * Values are serialized using the `serializeValue` function before being set.
581
571
  *
582
- * @param url - The URL to update the search parameters for.
583
- * @param objects - One or more objects to flatten into the URL's search parameters.
572
+ * @param url - The URL object whose search parameters will be updated.
573
+ * @param params - An object containing key-value pairs to be set as search parameters.
584
574
  */
585
- declare const setSearchParams: (url: URL, ...objects: Record<string, unknown>[]) => void;
575
+ declare function setSearchParams(url: URL, params: Record<string, unknown>): void;
586
576
  /**
587
577
  * Converts a URL object to a full path string, including pathname, search parameters, and hash.
588
578
  *
@@ -1083,4 +1073,4 @@ interface WebsocketStream<T> {
1083
1073
  */
1084
1074
  declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
1085
1075
 
1086
- export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, type TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
1076
+ export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, type TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
package/dist/index.d.ts CHANGED
@@ -506,12 +506,16 @@ interface RequestArgs {
506
506
  */
507
507
  declare const clearSignerCache: () => void;
508
508
  /**
509
- * Generates a query string from an object of parameters.
509
+ * Builds a URL query string from the given parameters object.
510
510
  *
511
- * @param params - An object containing the query parameters.
512
- * @returns The generated query string.
511
+ * Iterates over the key-value pairs in the `params` object, serializes each value,
512
+ * and encodes it for use in a URL. Only keys with non-null and non-undefined values
513
+ * are included in the resulting query string.
514
+ *
515
+ * @param params - An object containing key-value pairs to be serialized into a query string.
516
+ * @returns A URL-encoded query string representing the provided parameters.
513
517
  */
514
- declare function buildQueryString(params: object): string;
518
+ declare function buildQueryString(params: Record<string, unknown>): string;
515
519
  /**
516
520
  * Generates a random string of 16 hexadecimal characters.
517
521
  *
@@ -550,7 +554,7 @@ declare const getSignature: (configuration: {
550
554
  apiSecret?: string;
551
555
  privateKey?: string | Buffer;
552
556
  privateKeyPassphrase?: string;
553
- }, queryParams: object) => string;
557
+ }, queryParams: Record<string, unknown>) => string;
554
558
  /**
555
559
  * Asserts that a function parameter exists and is not null or undefined.
556
560
  *
@@ -561,28 +565,14 @@ declare const getSignature: (configuration: {
561
565
  */
562
566
  declare const assertParamExists: (functionName: string, paramName: string, paramValue: unknown) => void;
563
567
  /**
564
- * Recursively flattens an object or array into URL search parameters.
565
- *
566
- * This function handles nested objects and arrays by converting them into dot-notation query parameters.
567
- * It supports different types of parameters:
568
- * - Arrays can be stringified or recursively added
569
- * - Objects are flattened with dot notation keys
570
- * - Primitive values are converted to strings
571
- *
572
- * @param urlSearchParams The URLSearchParams object to modify
573
- * @param parameter The parameter to flatten (can be an object, array, or primitive)
574
- * @param key Optional key for nested parameters, used for creating dot-notation keys
575
- */
576
- declare function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: unknown, key?: string): void;
577
- /**
578
- * Sets the search parameters of the provided URL by flattening the given objects into the URL's search parameters.
579
- *
580
- * This function takes a URL and one or more objects, and updates the URL's search parameters by flattening the objects into key-value pairs. It uses the `setFlattenedQueryParams` function to recursively flatten the objects.
568
+ * Sets the search parameters of a given URL object based on the provided key-value pairs.
569
+ * Only parameters with non-null and non-undefined values are included.
570
+ * Values are serialized using the `serializeValue` function before being set.
581
571
  *
582
- * @param url - The URL to update the search parameters for.
583
- * @param objects - One or more objects to flatten into the URL's search parameters.
572
+ * @param url - The URL object whose search parameters will be updated.
573
+ * @param params - An object containing key-value pairs to be set as search parameters.
584
574
  */
585
- declare const setSearchParams: (url: URL, ...objects: Record<string, unknown>[]) => void;
575
+ declare function setSearchParams(url: URL, params: Record<string, unknown>): void;
586
576
  /**
587
577
  * Converts a URL object to a full path string, including pathname, search parameters, and hash.
588
578
  *
@@ -1083,4 +1073,4 @@ interface WebsocketStream<T> {
1083
1073
  */
1084
1074
  declare function createStreamHandler<T>(websocketBase: WebsocketAPIBase | WebsocketStreamsBase, streamOrId: string, id?: string): WebsocketStream<T>;
1085
1075
 
1086
- export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, type TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setFlattenedQueryParams, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
1076
+ export { ALGO_REST_API_PROD_URL, AUTO_INVEST_REST_API_PROD_URL, type AxiosRequestArgs, BadRequestError, C2C_REST_API_PROD_URL, CONVERT_REST_API_PROD_URL, COPY_TRADING_REST_API_PROD_URL, CRYPTO_LOAN_REST_API_PROD_URL, ConfigurationRestAPI, ConfigurationWebsocketAPI, ConfigurationWebsocketStreams, ConnectorClientError, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL, DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_PRO_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_REST_API_TESTNET_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_PORTFOLIO_MARGIN_WS_STREAMS_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL, DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL, DUAL_INVESTMENT_REST_API_PROD_URL, FIAT_REST_API_PROD_URL, ForbiddenError, GIFT_CARD_REST_API_PROD_URL, LogLevel, Logger, MARGIN_TRADING_REST_API_PROD_URL, MARGIN_TRADING_RISK_WS_STREAMS_PROD_URL, MARGIN_TRADING_WS_STREAMS_PROD_URL, MINING_REST_API_PROD_URL, NFT_REST_API_PROD_URL, NetworkError, NotFoundError, type ObjectType, PAY_REST_API_PROD_URL, REBATE_REST_API_PROD_URL, RateLimitBanError, type RequestArgs, RequiredError, type RestApiRateLimit, type RestApiResponse, SIMPLE_EARN_REST_API_PROD_URL, SPOT_REST_API_MARKET_URL, SPOT_REST_API_PROD_URL, SPOT_REST_API_TESTNET_URL, SPOT_WS_API_PROD_URL, SPOT_WS_API_TESTNET_URL, SPOT_WS_STREAMS_MARKET_URL, SPOT_WS_STREAMS_PROD_URL, SPOT_WS_STREAMS_TESTNET_URL, STAKING_REST_API_PROD_URL, SUB_ACCOUNT_REST_API_PROD_URL, type SendMessageOptions, ServerError, TimeUnit, type TimerRecord, TooManyRequestsError, UnauthorizedError, VIP_LOAN_REST_API_PROD_URL, WALLET_REST_API_PROD_URL, WebsocketAPIBase, type WebsocketApiRateLimit, type WebsocketApiResponse, WebsocketCommon, type WebsocketConnection, WebsocketEventEmitter, type WebsocketSendMsgConfig, type WebsocketSendMsgOptions, type WebsocketStream, WebsocketStreamsBase, assertParamExists, buildQueryString, buildUserAgent, buildWebsocketAPIMessage, clearSignerCache, createStreamHandler, delay, getSignature, getTimestamp, httpRequestFunction, normalizeScientificNumbers, parseCustomHeaders, parseRateLimitHeaders, randomString, removeEmptyValue, replaceWebsocketStreamsPlaceholders, sanitizeHeaderValue, sendRequest, setSearchParams, shouldRetryRequest, sortObject, toPathString, validateTimeUnit };
package/dist/index.js CHANGED
@@ -117,7 +117,6 @@ __export(index_exports, {
117
117
  replaceWebsocketStreamsPlaceholders: () => replaceWebsocketStreamsPlaceholders,
118
118
  sanitizeHeaderValue: () => sanitizeHeaderValue,
119
119
  sendRequest: () => sendRequest,
120
- setFlattenedQueryParams: () => setFlattenedQueryParams,
121
120
  setSearchParams: () => setSearchParams,
122
121
  shouldRetryRequest: () => shouldRetryRequest,
123
122
  sortObject: () => sortObject,
@@ -178,13 +177,22 @@ var RequestSigner = class {
178
177
  var clearSignerCache = function() {
179
178
  signerCache = /* @__PURE__ */ new WeakMap();
180
179
  };
180
+ function serializeValue(value) {
181
+ if (value === null || value === void 0) return "";
182
+ if (Array.isArray(value) || typeof value === "object" && value !== null)
183
+ return JSON.stringify(value);
184
+ return String(value);
185
+ }
181
186
  function buildQueryString(params) {
182
187
  if (!params) return "";
183
- return Object.entries(params).map(stringifyKeyValuePair).join("&");
184
- }
185
- function stringifyKeyValuePair([key, value]) {
186
- const valueString = Array.isArray(value) ? `["${value.join('","')}"]` : value;
187
- return `${key}=${encodeURIComponent(valueString)}`;
188
+ const pairs = [];
189
+ Object.entries(params).forEach(([key, value]) => {
190
+ if (value !== null && value !== void 0) {
191
+ const serializedValue = serializeValue(value);
192
+ pairs.push(`${key}=${encodeURIComponent(serializedValue)}`);
193
+ }
194
+ });
195
+ return pairs.join("&");
188
196
  }
189
197
  function randomString() {
190
198
  return import_crypto.default.randomBytes(16).toString("hex");
@@ -219,34 +227,16 @@ var assertParamExists = function(functionName, paramName, paramValue) {
219
227
  );
220
228
  }
221
229
  };
222
- function setFlattenedQueryParams(urlSearchParams, parameter, key = "") {
223
- if (parameter == null) return;
224
- if (Array.isArray(parameter)) {
225
- if (key)
226
- urlSearchParams.set(key, JSON.stringify(parameter));
227
- else
228
- for (const item of parameter) {
229
- setFlattenedQueryParams(urlSearchParams, item, "");
230
- }
231
- return;
232
- }
233
- if (typeof parameter === "object") {
234
- for (const subKey of Object.keys(parameter)) {
235
- const subVal = parameter[subKey];
236
- const newKey = key ? `${key}.${subKey}` : subKey;
237
- setFlattenedQueryParams(urlSearchParams, subVal, newKey);
230
+ function setSearchParams(url, params) {
231
+ const searchParams = new URLSearchParams();
232
+ Object.entries(params).forEach(([key, value]) => {
233
+ if (value !== null && value !== void 0) {
234
+ const serializedValue = serializeValue(value);
235
+ searchParams.set(key, serializedValue);
238
236
  }
239
- return;
240
- }
241
- const str = String(parameter);
242
- if (urlSearchParams.has(key)) urlSearchParams.append(key, str);
243
- else urlSearchParams.set(key, str);
244
- }
245
- var setSearchParams = function(url, ...objects) {
246
- const searchParams = new URLSearchParams(url.search);
247
- setFlattenedQueryParams(searchParams, objects);
237
+ });
248
238
  url.search = searchParams.toString();
249
- };
239
+ }
250
240
  var toPathString = function(url) {
251
241
  return url.pathname + url.search + url.hash;
252
242
  };
@@ -1766,7 +1756,6 @@ function createStreamHandler(websocketBase, streamOrId, id) {
1766
1756
  replaceWebsocketStreamsPlaceholders,
1767
1757
  sanitizeHeaderValue,
1768
1758
  sendRequest,
1769
- setFlattenedQueryParams,
1770
1759
  setSearchParams,
1771
1760
  shouldRetryRequest,
1772
1761
  sortObject,