opensea-js 8.0.13 → 8.0.14

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/lib/api/api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { FulfillmentDataResponse, OrderAPIOptions, OrdersQueryOptions, OrderV2, ProtocolData } from "../orders/types";
2
- import { Chain, OpenSeaAPIConfig, OpenSeaAccount, OpenSeaCollection, OpenSeaCollectionStats, OpenSeaPaymentToken, OrderSide } from "../types";
2
+ import { Chain, OpenSeaAPIConfig, OpenSeaAccount, OpenSeaCollection, OpenSeaCollectionStats, OpenSeaPaymentToken, OrderSide, RequestOptions } from "../types";
3
3
  import { BuildOfferResponse, GetCollectionsResponse, ListNFTsResponse, GetNFTResponse, GetOrdersResponse, GetBestOfferResponse, GetBestListingResponse, GetOffersResponse, GetListingsResponse, GetOrderByHashResponse, CollectionOffer, CollectionOrderByOption, CancelOrderResponse, GetEventsArgs, GetEventsResponse, GetContractResponse, GetTraitsResponse } from "./types";
4
4
  /**
5
5
  * The API class for the OpenSea SDK.
@@ -326,28 +326,37 @@ export declare class OpenSeaAPI {
326
326
  * Generic fetch method for any API endpoint with automatic rate limit retry
327
327
  * @param apiPath Path to URL endpoint under API
328
328
  * @param query URL query params. Will be used to create a URLSearchParams object.
329
+ * @param options Request options like timeout and abort signal.
329
330
  * @returns @typeParam T The response from the API.
330
331
  */
331
- get<T>(apiPath: string, query?: object): Promise<T>;
332
+ get<T>(apiPath: string, query?: object, options?: RequestOptions): Promise<T>;
332
333
  /**
333
334
  * Generic post method for any API endpoint with automatic rate limit retry
334
335
  * @param apiPath Path to URL endpoint under API
335
336
  * @param body Data to send.
336
- * @param opts ethers ConnectionInfo, similar to Fetch API.
337
+ * @param headers Additional headers to send with the request.
338
+ * @param options Request options like timeout and abort signal.
337
339
  * @returns @typeParam T The response from the API.
338
340
  */
339
- post<T>(apiPath: string, body?: object, opts?: object): Promise<T>;
341
+ post<T>(apiPath: string, body?: object, headers?: object, options?: RequestOptions): Promise<T>;
340
342
  private objectToSearchParams;
341
343
  /**
342
- * Get from an API Endpoint, sending auth token in headers
343
- * @param opts ethers ConnectionInfo, similar to Fetch API
344
+ * Fetch from an API Endpoint, sending auth token in headers
345
+ * @param url The URL to fetch
346
+ * @param headers Additional headers to send with the request
344
347
  * @param body Optional body to send. If set, will POST, otherwise GET
348
+ * @param options Request options like timeout and abort signal
345
349
  */
346
350
  private _fetch;
351
+ /**
352
+ * Maximum retry-after value in seconds (5 minutes).
353
+ * Prevents excessively long waits from buggy or malicious servers.
354
+ */
355
+ private static readonly MAX_RETRY_AFTER_SECONDS;
347
356
  /**
348
357
  * Parses the retry-after header from the response with robust error handling.
349
358
  * @param response The HTTP response object from the API
350
- * @returns The retry-after value in seconds, or undefined if not present or invalid
359
+ * @returns The retry-after value in seconds (capped at 5 minutes), or undefined if not present or invalid
351
360
  */
352
361
  private _parseRetryAfter;
353
362
  /**
package/lib/api/api.js CHANGED
@@ -405,26 +405,28 @@ class OpenSeaAPI {
405
405
  * Generic fetch method for any API endpoint with automatic rate limit retry
406
406
  * @param apiPath Path to URL endpoint under API
407
407
  * @param query URL query params. Will be used to create a URLSearchParams object.
408
+ * @param options Request options like timeout and abort signal.
408
409
  * @returns @typeParam T The response from the API.
409
410
  */
410
- async get(apiPath, query = {}) {
411
+ async get(apiPath, query = {}, options) {
411
412
  return (0, rateLimit_1.executeWithRateLimit)(async () => {
412
413
  const qs = this.objectToSearchParams(query);
413
414
  const url = `${this.apiBaseUrl}${apiPath}?${qs}`;
414
- return await this._fetch(url);
415
+ return await this._fetch(url, undefined, undefined, options);
415
416
  }, { logger: this.logger });
416
417
  }
417
418
  /**
418
419
  * Generic post method for any API endpoint with automatic rate limit retry
419
420
  * @param apiPath Path to URL endpoint under API
420
421
  * @param body Data to send.
421
- * @param opts ethers ConnectionInfo, similar to Fetch API.
422
+ * @param headers Additional headers to send with the request.
423
+ * @param options Request options like timeout and abort signal.
422
424
  * @returns @typeParam T The response from the API.
423
425
  */
424
- async post(apiPath, body, opts) {
426
+ async post(apiPath, body, headers, options) {
425
427
  return (0, rateLimit_1.executeWithRateLimit)(async () => {
426
428
  const url = `${this.apiBaseUrl}${apiPath}`;
427
- return await this._fetch(url, opts, body);
429
+ return await this._fetch(url, headers, body, options);
428
430
  }, { logger: this.logger });
429
431
  }
430
432
  objectToSearchParams(params = {}) {
@@ -440,11 +442,13 @@ class OpenSeaAPI {
440
442
  return urlSearchParams.toString();
441
443
  }
442
444
  /**
443
- * Get from an API Endpoint, sending auth token in headers
444
- * @param opts ethers ConnectionInfo, similar to Fetch API
445
+ * Fetch from an API Endpoint, sending auth token in headers
446
+ * @param url The URL to fetch
447
+ * @param headers Additional headers to send with the request
445
448
  * @param body Optional body to send. If set, will POST, otherwise GET
449
+ * @param options Request options like timeout and abort signal
446
450
  */
447
- async _fetch(url, headers, body) {
451
+ async _fetch(url, headers, body, options) {
448
452
  // Create the fetch request
449
453
  const req = new ethers_1.ethers.FetchRequest(url);
450
454
  // Set the headers
@@ -460,6 +464,19 @@ class OpenSeaAPI {
460
464
  if (body) {
461
465
  req.body = body;
462
466
  }
467
+ // Apply request options
468
+ if (options?.timeout !== undefined) {
469
+ req.timeout = options.timeout;
470
+ }
471
+ // Set up abort signal handling
472
+ let abortHandler;
473
+ if (options?.signal) {
474
+ if (options.signal.aborted) {
475
+ throw new Error("Request aborted");
476
+ }
477
+ abortHandler = () => req.cancel();
478
+ options.signal.addEventListener("abort", abortHandler);
479
+ }
463
480
  // Set the throttle params
464
481
  req.setThrottleParams({ slotInterval: 1000 });
465
482
  this.logger(`Sending request: ${url} ${JSON.stringify({
@@ -467,39 +484,64 @@ class OpenSeaAPI {
467
484
  headers: req.headers,
468
485
  body: body ? JSON.stringify(body, null, 2) : undefined,
469
486
  })}`);
470
- const response = await req.send();
471
- if (!response.ok()) {
472
- // Handle rate limit errors (429 Too Many Requests and 599 custom rate limit)
473
- if (response.statusCode === 599 || response.statusCode === 429) {
474
- throw this._createRateLimitError(response);
475
- }
476
- // If an errors array is returned, throw with the error messages.
477
- const errors = response.bodyJson?.errors;
478
- if (errors?.length > 0) {
479
- let errorMessage = errors.join(", ");
480
- if (errorMessage === "[object Object]") {
481
- errorMessage = JSON.stringify(errors);
487
+ try {
488
+ const response = await req.send();
489
+ if (!response.ok()) {
490
+ // Handle rate limit errors (429 Too Many Requests and 599 custom rate limit)
491
+ if (response.statusCode === 599 || response.statusCode === 429) {
492
+ throw this._createRateLimitError(response);
493
+ }
494
+ // If an errors array is returned, throw with the error messages.
495
+ const errors = response.bodyJson?.errors;
496
+ if (errors?.length > 0) {
497
+ let errorMessage = errors.join(", ");
498
+ if (errorMessage === "[object Object]") {
499
+ errorMessage = JSON.stringify(errors);
500
+ }
501
+ throw new Error(`Server Error: ${errorMessage}`);
502
+ }
503
+ else {
504
+ // Otherwise, let ethers throw a SERVER_ERROR since it will include
505
+ // more context about the request and response.
506
+ response.assertOk();
482
507
  }
483
- throw new Error(`Server Error: ${errorMessage}`);
484
508
  }
485
- else {
486
- // Otherwise, let ethers throw a SERVER_ERROR since it will include
487
- // more context about the request and response.
488
- response.assertOk();
509
+ return response.bodyJson;
510
+ }
511
+ finally {
512
+ // Clean up abort handler
513
+ if (abortHandler && options?.signal) {
514
+ options.signal.removeEventListener("abort", abortHandler);
489
515
  }
490
516
  }
491
- return response.bodyJson;
492
517
  }
493
518
  /**
494
519
  * Parses the retry-after header from the response with robust error handling.
495
520
  * @param response The HTTP response object from the API
496
- * @returns The retry-after value in seconds, or undefined if not present or invalid
521
+ * @returns The retry-after value in seconds (capped at 5 minutes), or undefined if not present or invalid
497
522
  */
498
523
  _parseRetryAfter(response) {
499
524
  const retryAfterHeader = response.headers["retry-after"] || response.headers["Retry-After"];
500
525
  if (retryAfterHeader) {
501
- const parsed = parseInt(retryAfterHeader, 10);
502
- return isNaN(parsed) || parsed <= 0 ? undefined : parsed;
526
+ const trimmed = retryAfterHeader.trim();
527
+ const parsedSeconds = parseInt(trimmed, 10);
528
+ // If it looks like a number (starts with digit or minus sign), handle as numeric
529
+ if (/^-?\d/.test(trimmed)) {
530
+ if (isNaN(parsedSeconds) || parsedSeconds <= 0) {
531
+ return undefined;
532
+ }
533
+ return Math.min(parsedSeconds, OpenSeaAPI.MAX_RETRY_AFTER_SECONDS);
534
+ }
535
+ // Otherwise, try to parse as HTTP-date
536
+ const parsedDateMs = Date.parse(trimmed);
537
+ if (isNaN(parsedDateMs)) {
538
+ return undefined;
539
+ }
540
+ const diffSeconds = Math.ceil((parsedDateMs - Date.now()) / 1000);
541
+ if (diffSeconds <= 0) {
542
+ return undefined;
543
+ }
544
+ return Math.min(diffSeconds, OpenSeaAPI.MAX_RETRY_AFTER_SECONDS);
503
545
  }
504
546
  return undefined;
505
547
  }
@@ -519,4 +561,9 @@ class OpenSeaAPI {
519
561
  }
520
562
  }
521
563
  exports.OpenSeaAPI = OpenSeaAPI;
564
+ /**
565
+ * Maximum retry-after value in seconds (5 minutes).
566
+ * Prevents excessively long waits from buggy or malicious servers.
567
+ */
568
+ OpenSeaAPI.MAX_RETRY_AFTER_SECONDS = 300;
522
569
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { RequestOptions } from "../types";
1
2
  /**
2
3
  * Fetcher context interface for making HTTP requests to the OpenSea API.
3
4
  * This interface abstracts the HTTP methods used by specialized API clients.
@@ -7,15 +8,17 @@ export interface Fetcher {
7
8
  * Generic fetch method for GET requests with automatic rate limit retry
8
9
  * @param apiPath Path to URL endpoint under API
9
10
  * @param query URL query params. Will be used to create a URLSearchParams object.
11
+ * @param options Request options like timeout and abort signal.
10
12
  * @returns The response from the API.
11
13
  */
12
- get<T>(apiPath: string, query?: object): Promise<T>;
14
+ get<T>(apiPath: string, query?: object, options?: RequestOptions): Promise<T>;
13
15
  /**
14
16
  * Generic post method for POST requests with automatic rate limit retry
15
17
  * @param apiPath Path to URL endpoint under API
16
18
  * @param body Data to send.
17
- * @param opts Optional connection options.
19
+ * @param headers Additional headers to send with the request.
20
+ * @param options Request options like timeout and abort signal.
18
21
  * @returns The response from the API.
19
22
  */
20
- post<T>(apiPath: string, body?: object, opts?: object): Promise<T>;
23
+ post<T>(apiPath: string, body?: object, headers?: object, options?: RequestOptions): Promise<T>;
21
24
  }
@@ -17,5 +17,5 @@ export declare const SOMNIA_FEE_RECIPIENT = "0xdfe1593dca6ad8a20eeb418643e48577c
17
17
  export declare const WPOL_ADDRESS = "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270";
18
18
  export declare const MULTICALL3_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
19
19
  export declare const TRANSFER_HELPER_ADDRESS = "0x0000000000c2d145a2526bd8c716263bfebe1a72";
20
- export declare const SHARED_STOREFRONT_ADDRESSES: string[];
20
+ export declare const SHARED_STOREFRONT_ADDRESSES: Set<string>;
21
21
  export declare const SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS = "0xa604060890923ff400e8c6f5290461a83aedacec";
package/lib/constants.js CHANGED
@@ -43,9 +43,9 @@ exports.TRANSFER_HELPER_ADDRESS = "0x0000000000c2d145a2526bd8c716263bfebe1a72";
43
43
  // =============================================================================
44
44
  const SHARED_STOREFRONT_ADDRESS_MAINNET = "0x495f947276749ce646f68ac8c248420045cb7b5e";
45
45
  const SHARED_STOREFRONT_ADDRESS_POLYGON = "0x2953399124f0cbb46d2cbacd8a89cf0599974963";
46
- exports.SHARED_STOREFRONT_ADDRESSES = [
46
+ exports.SHARED_STOREFRONT_ADDRESSES = new Set([
47
47
  SHARED_STOREFRONT_ADDRESS_MAINNET,
48
48
  SHARED_STOREFRONT_ADDRESS_POLYGON,
49
- ].map((address) => address.toLowerCase());
49
+ ]);
50
50
  exports.SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS = "0xa604060890923ff400e8c6f5290461a83aedacec";
51
51
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAErC,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEnE,QAAA,gBAAgB,GAAG,oBAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAA,mBAAmB,GAAG,MAAO,CAAC,CAAC,0BAA0B;AAEtE,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEnE,QAAA,gBAAgB,GAAG,wBAAwB,CAAC;AAEzD,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEnE,QAAA,qBAAqB,GAChC,4CAA4C,CAAC;AAElC,QAAA,mBAAmB,GAC9B,oEAAoE,CAAC;AAE1D,QAAA,uBAAuB,GAClC,4CAA4C,CAAC;AAElC,QAAA,qBAAqB,GAChC,oEAAoE,CAAC;AAE1D,QAAA,yBAAyB,GACpC,4CAA4C,CAAC;AAElC,QAAA,sBAAsB,GACjC,4CAA4C,CAAC;AAE/C,gFAAgF;AAChF,kEAAkE;AAClE,gFAAgF;AAEnE,QAAA,yBAAyB,GACpC,4CAA4C,CAAC;AAElC,QAAA,qBAAqB,GAChC,oEAAoE,CAAC;AAE1D,QAAA,8BAA8B,GACzC,4CAA4C,CAAC;AAElC,QAAA,gCAAgC,GAC3C,4CAA4C,CAAC;AAE/C,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAEnE,QAAA,sBAAsB,GACjC,4CAA4C,CAAC;AAElC,QAAA,oBAAoB,GAC/B,4CAA4C,CAAC;AAE/C,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEnE,QAAA,YAAY,GAAG,4CAA4C,CAAC;AAE5D,QAAA,kBAAkB,GAAG,4CAA4C,CAAC;AAElE,QAAA,uBAAuB,GAClC,4CAA4C,CAAC;AAE/C,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,MAAM,iCAAiC,GACrC,4CAA4C,CAAC;AAC/C,MAAM,iCAAiC,GACrC,4CAA4C,CAAC;AAClC,QAAA,2BAA2B,GAAG;IACzC,iCAAiC;IACjC,iCAAiC;CAClC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7B,QAAA,uDAAuD,GAClE,4CAA4C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAErC,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEnE,QAAA,gBAAgB,GAAG,oBAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC9C,QAAA,mBAAmB,GAAG,MAAO,CAAC,CAAC,0BAA0B;AAEtE,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEnE,QAAA,gBAAgB,GAAG,wBAAwB,CAAC;AAEzD,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEnE,QAAA,qBAAqB,GAChC,4CAA4C,CAAC;AAElC,QAAA,mBAAmB,GAC9B,oEAAoE,CAAC;AAE1D,QAAA,uBAAuB,GAClC,4CAA4C,CAAC;AAElC,QAAA,qBAAqB,GAChC,oEAAoE,CAAC;AAE1D,QAAA,yBAAyB,GACpC,4CAA4C,CAAC;AAElC,QAAA,sBAAsB,GACjC,4CAA4C,CAAC;AAE/C,gFAAgF;AAChF,kEAAkE;AAClE,gFAAgF;AAEnE,QAAA,yBAAyB,GACpC,4CAA4C,CAAC;AAElC,QAAA,qBAAqB,GAChC,oEAAoE,CAAC;AAE1D,QAAA,8BAA8B,GACzC,4CAA4C,CAAC;AAElC,QAAA,gCAAgC,GAC3C,4CAA4C,CAAC;AAE/C,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAEnE,QAAA,sBAAsB,GACjC,4CAA4C,CAAC;AAElC,QAAA,oBAAoB,GAC/B,4CAA4C,CAAC;AAE/C,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEnE,QAAA,YAAY,GAAG,4CAA4C,CAAC;AAE5D,QAAA,kBAAkB,GAAG,4CAA4C,CAAC;AAElE,QAAA,uBAAuB,GAClC,4CAA4C,CAAC;AAE/C,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,MAAM,iCAAiC,GACrC,4CAA4C,CAAC;AAC/C,MAAM,iCAAiC,GACrC,4CAA4C,CAAC;AAClC,QAAA,2BAA2B,GAAG,IAAI,GAAG,CAAC;IACjD,iCAAiC;IACjC,iCAAiC;CAClC,CAAC,CAAC;AACU,QAAA,uDAAuD,GAClE,4CAA4C,CAAC"}
package/lib/types.d.ts CHANGED
@@ -363,4 +363,24 @@ export interface OpenSeaRateLimitError extends Error {
363
363
  /** The response body from the API */
364
364
  responseBody?: unknown;
365
365
  }
366
+ /**
367
+ * Options for controlling HTTP request behavior.
368
+ * @category API Models
369
+ */
370
+ export interface RequestOptions {
371
+ /**
372
+ * Request timeout in milliseconds.
373
+ * If the request takes longer than this, it will be aborted.
374
+ */
375
+ timeout?: number;
376
+ /**
377
+ * An AbortSignal to cancel the request.
378
+ * Useful for implementing custom cancellation logic or timeouts.
379
+ * @example
380
+ * const controller = new AbortController();
381
+ * setTimeout(() => controller.abort(), 5000);
382
+ * await api.post('/path', body, headers, { signal: controller.signal });
383
+ */
384
+ signal?: AbortSignal;
385
+ }
366
386
  export {};
@@ -39,9 +39,10 @@ exports.getAssetItemType = getAssetItemType;
39
39
  * otherwise returns the original address unchanged
40
40
  */
41
41
  const remapSharedStorefrontAddress = (tokenAddress) => {
42
- return constants_2.SHARED_STOREFRONT_ADDRESSES.includes(tokenAddress.toLowerCase())
43
- ? constants_2.SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS
44
- : tokenAddress;
42
+ if (constants_2.SHARED_STOREFRONT_ADDRESSES.has(tokenAddress.toLowerCase())) {
43
+ return ethers_1.ethers.getAddress(constants_2.SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS);
44
+ }
45
+ return tokenAddress;
45
46
  };
46
47
  exports.remapSharedStorefrontAddress = remapSharedStorefrontAddress;
47
48
  /**
@@ -125,6 +126,10 @@ const decodeTokenIds = (encodedTokenIds) => {
125
126
  if (encodedTokenIds === "") {
126
127
  return [];
127
128
  }
129
+ // Check for whitespace and provide helpful error message
130
+ if (/\s/.test(encodedTokenIds)) {
131
+ throw new Error("Invalid input format: whitespace is not allowed. Expected format: '1,2,3' or '1:5' or '1,3:5,8' (no spaces).");
132
+ }
128
133
  const validFormatRegex = /^(\d+(:\d+)?)(,\d+(:\d+)?)*$/;
129
134
  if (!validFormatRegex.test(encodedTokenIds)) {
130
135
  throw new Error("Invalid input format. Expected a valid comma-separated list of numbers and ranges.");
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/utils/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/utils/protocol.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,8 @@ async function executeWithRateLimit(operation, options = {}) {
57
57
  else {
58
58
  // Exponential backoff
59
59
  delayMs = baseRetryDelay * Math.pow(EXPONENTIAL_BACKOFF_BASE, attempt);
60
- logger(`Rate limit hit. Waiting ${delayMs}ms before retry (attempt ${attempt + 1}/${maxRetries})...`);
60
+ const delaySeconds = delayMs / MILLISECONDS_PER_SECOND;
61
+ logger(`Rate limit hit. Waiting ${delaySeconds} seconds before retry (attempt ${attempt + 1}/${maxRetries})...`);
61
62
  }
62
63
  await sleep(delayMs);
63
64
  logger(`Retrying operation...`);
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../src/utils/rateLimit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../src/utils/rateLimit.ts"],"names":[],"mappings":";;;AACA,iDAA2C;AAE3C;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;GAEG;AACH,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAiB1C;;;GAGG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,oBAAoB,CACxC,SAA2B,EAC3B,UAA4B,EAAE;IAE9B,MAAM,EACJ,MAAM,GAAG,GAAG,EAAE,GAAE,CAAC,EACjB,UAAU,GAAG,mBAAmB,EAChC,cAAc,GAAG,2BAA2B,GAC7C,GAAG,OAAO,CAAC;IAEZ,IAAI,SAA4B,CAAC;IAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAc,CAAC;YAC3B,MAAM,cAAc,GAAG,KAA8B,CAAC;YAEtD,oFAAoF;YACpF,MAAM,gBAAgB,GACpB,cAAc,CAAC,UAAU,KAAK,sBAAsB;gBACpD,cAAc,CAAC,UAAU,KAAK,6BAA6B;gBAC3D,cAAc,CAAC,UAAU,KAAK,SAAS,CAAC;YAE1C,IAAI,CAAC,gBAAgB,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAChD,4DAA4D;gBAC5D,MAAM,KAAK,CAAC;YACd,CAAC;YAED,kBAAkB;YAClB,IAAI,OAAe,CAAC;YACpB,IAAI,cAAc,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC5C,OAAO,GAAG,cAAc,CAAC,UAAU,GAAG,uBAAuB,CAAC;gBAC9D,MAAM,CACJ,2BAA2B,cAAc,CAAC,UAAU,kCAAkC,OAAO,GAAG,CAAC,IAAI,UAAU,MAAM,CACtH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,OAAO,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;gBACvE,MAAM,YAAY,GAAG,OAAO,GAAG,uBAAuB,CAAC;gBACvD,MAAM,CACJ,2BAA2B,YAAY,kCAAkC,OAAO,GAAG,CAAC,IAAI,UAAU,MAAM,CACzG,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,MAAM,SAAS,CAAC;AAClB,CAAC;AArDD,oDAqDC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,8BAA8B,CAClD,UAAmC,EACnC,UAEI,EAAE;IAEN,MAAM,EACJ,MAAM,GAAG,GAAG,EAAE,GAAE,CAAC,EACjB,aAAa,GAAG,WAAW,EAC3B,GAAG,gBAAgB,EACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;IAEhC,MAAM,CAAC,YAAY,KAAK,IAAI,IAAA,wBAAS,EAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,aAAa,aAAa,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE;YACnD,GAAG,gBAAgB;YACnB,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,CAAC,aAAa,aAAa,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CACJ,OAAO,KAAK,IAAI,IAAA,wBAAS,EAAC,KAAK,EAAE,aAAa,CAAC,yBAAyB,CACzE,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAnCD,wEAmCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opensea-js",
3
- "version": "8.0.13",
3
+ "version": "8.0.14",
4
4
  "description": "TypeScript SDK for the OpenSea marketplace helps developers build new experiences using NFTs and our marketplace data",
5
5
  "license": "MIT",
6
6
  "author": "OpenSea Developers",
package/src/api/api.ts CHANGED
@@ -22,6 +22,7 @@ import {
22
22
  OpenSeaPaymentToken,
23
23
  OpenSeaRateLimitError,
24
24
  OrderSide,
25
+ RequestOptions,
25
26
  } from "../types";
26
27
  import { OrdersAPI } from "./orders";
27
28
  import {
@@ -700,14 +701,19 @@ export class OpenSeaAPI {
700
701
  * Generic fetch method for any API endpoint with automatic rate limit retry
701
702
  * @param apiPath Path to URL endpoint under API
702
703
  * @param query URL query params. Will be used to create a URLSearchParams object.
704
+ * @param options Request options like timeout and abort signal.
703
705
  * @returns @typeParam T The response from the API.
704
706
  */
705
- public async get<T>(apiPath: string, query: object = {}): Promise<T> {
707
+ public async get<T>(
708
+ apiPath: string,
709
+ query: object = {},
710
+ options?: RequestOptions,
711
+ ): Promise<T> {
706
712
  return executeWithRateLimit(
707
713
  async () => {
708
714
  const qs = this.objectToSearchParams(query);
709
715
  const url = `${this.apiBaseUrl}${apiPath}?${qs}`;
710
- return await this._fetch(url);
716
+ return await this._fetch(url, undefined, undefined, options);
711
717
  },
712
718
  { logger: this.logger },
713
719
  );
@@ -717,18 +723,20 @@ export class OpenSeaAPI {
717
723
  * Generic post method for any API endpoint with automatic rate limit retry
718
724
  * @param apiPath Path to URL endpoint under API
719
725
  * @param body Data to send.
720
- * @param opts ethers ConnectionInfo, similar to Fetch API.
726
+ * @param headers Additional headers to send with the request.
727
+ * @param options Request options like timeout and abort signal.
721
728
  * @returns @typeParam T The response from the API.
722
729
  */
723
730
  public async post<T>(
724
731
  apiPath: string,
725
732
  body?: object,
726
- opts?: object,
733
+ headers?: object,
734
+ options?: RequestOptions,
727
735
  ): Promise<T> {
728
736
  return executeWithRateLimit(
729
737
  async () => {
730
738
  const url = `${this.apiBaseUrl}${apiPath}`;
731
- return await this._fetch(url, opts, body);
739
+ return await this._fetch(url, headers, body, options);
732
740
  },
733
741
  { logger: this.logger },
734
742
  );
@@ -749,11 +757,18 @@ export class OpenSeaAPI {
749
757
  }
750
758
 
751
759
  /**
752
- * Get from an API Endpoint, sending auth token in headers
753
- * @param opts ethers ConnectionInfo, similar to Fetch API
760
+ * Fetch from an API Endpoint, sending auth token in headers
761
+ * @param url The URL to fetch
762
+ * @param headers Additional headers to send with the request
754
763
  * @param body Optional body to send. If set, will POST, otherwise GET
764
+ * @param options Request options like timeout and abort signal
755
765
  */
756
- private async _fetch(url: string, headers?: object, body?: object) {
766
+ private async _fetch(
767
+ url: string,
768
+ headers?: object,
769
+ body?: object,
770
+ options?: RequestOptions,
771
+ ) {
757
772
  // Create the fetch request
758
773
  const req = new ethers.FetchRequest(url);
759
774
 
@@ -772,6 +787,21 @@ export class OpenSeaAPI {
772
787
  req.body = body;
773
788
  }
774
789
 
790
+ // Apply request options
791
+ if (options?.timeout !== undefined) {
792
+ req.timeout = options.timeout;
793
+ }
794
+
795
+ // Set up abort signal handling
796
+ let abortHandler: (() => void) | undefined;
797
+ if (options?.signal) {
798
+ if (options.signal.aborted) {
799
+ throw new Error("Request aborted");
800
+ }
801
+ abortHandler = () => req.cancel();
802
+ options.signal.addEventListener("abort", abortHandler);
803
+ }
804
+
775
805
  // Set the throttle params
776
806
  req.setThrottleParams({ slotInterval: 1000 });
777
807
 
@@ -783,40 +813,72 @@ export class OpenSeaAPI {
783
813
  })}`,
784
814
  );
785
815
 
786
- const response = await req.send();
787
- if (!response.ok()) {
788
- // Handle rate limit errors (429 Too Many Requests and 599 custom rate limit)
789
- if (response.statusCode === 599 || response.statusCode === 429) {
790
- throw this._createRateLimitError(response);
791
- }
792
- // If an errors array is returned, throw with the error messages.
793
- const errors = response.bodyJson?.errors;
794
- if (errors?.length > 0) {
795
- let errorMessage = errors.join(", ");
796
- if (errorMessage === "[object Object]") {
797
- errorMessage = JSON.stringify(errors);
816
+ try {
817
+ const response = await req.send();
818
+ if (!response.ok()) {
819
+ // Handle rate limit errors (429 Too Many Requests and 599 custom rate limit)
820
+ if (response.statusCode === 599 || response.statusCode === 429) {
821
+ throw this._createRateLimitError(response);
822
+ }
823
+ // If an errors array is returned, throw with the error messages.
824
+ const errors = response.bodyJson?.errors;
825
+ if (errors?.length > 0) {
826
+ let errorMessage = errors.join(", ");
827
+ if (errorMessage === "[object Object]") {
828
+ errorMessage = JSON.stringify(errors);
829
+ }
830
+ throw new Error(`Server Error: ${errorMessage}`);
831
+ } else {
832
+ // Otherwise, let ethers throw a SERVER_ERROR since it will include
833
+ // more context about the request and response.
834
+ response.assertOk();
798
835
  }
799
- throw new Error(`Server Error: ${errorMessage}`);
800
- } else {
801
- // Otherwise, let ethers throw a SERVER_ERROR since it will include
802
- // more context about the request and response.
803
- response.assertOk();
836
+ }
837
+ return response.bodyJson;
838
+ } finally {
839
+ // Clean up abort handler
840
+ if (abortHandler && options?.signal) {
841
+ options.signal.removeEventListener("abort", abortHandler);
804
842
  }
805
843
  }
806
- return response.bodyJson;
807
844
  }
808
845
 
846
+ /**
847
+ * Maximum retry-after value in seconds (5 minutes).
848
+ * Prevents excessively long waits from buggy or malicious servers.
849
+ */
850
+ private static readonly MAX_RETRY_AFTER_SECONDS = 300;
851
+
809
852
  /**
810
853
  * Parses the retry-after header from the response with robust error handling.
811
854
  * @param response The HTTP response object from the API
812
- * @returns The retry-after value in seconds, or undefined if not present or invalid
855
+ * @returns The retry-after value in seconds (capped at 5 minutes), or undefined if not present or invalid
813
856
  */
814
857
  private _parseRetryAfter(response: ethers.FetchResponse): number | undefined {
815
858
  const retryAfterHeader =
816
859
  response.headers["retry-after"] || response.headers["Retry-After"];
817
860
  if (retryAfterHeader) {
818
- const parsed = parseInt(retryAfterHeader, 10);
819
- return isNaN(parsed) || parsed <= 0 ? undefined : parsed;
861
+ const trimmed = retryAfterHeader.trim();
862
+ const parsedSeconds = parseInt(trimmed, 10);
863
+
864
+ // If it looks like a number (starts with digit or minus sign), handle as numeric
865
+ if (/^-?\d/.test(trimmed)) {
866
+ if (isNaN(parsedSeconds) || parsedSeconds <= 0) {
867
+ return undefined;
868
+ }
869
+ return Math.min(parsedSeconds, OpenSeaAPI.MAX_RETRY_AFTER_SECONDS);
870
+ }
871
+
872
+ // Otherwise, try to parse as HTTP-date
873
+ const parsedDateMs = Date.parse(trimmed);
874
+ if (isNaN(parsedDateMs)) {
875
+ return undefined;
876
+ }
877
+ const diffSeconds = Math.ceil((parsedDateMs - Date.now()) / 1000);
878
+ if (diffSeconds <= 0) {
879
+ return undefined;
880
+ }
881
+ return Math.min(diffSeconds, OpenSeaAPI.MAX_RETRY_AFTER_SECONDS);
820
882
  }
821
883
  return undefined;
822
884
  }
@@ -1,3 +1,5 @@
1
+ import { RequestOptions } from "../types";
2
+
1
3
  /**
2
4
  * Fetcher context interface for making HTTP requests to the OpenSea API.
3
5
  * This interface abstracts the HTTP methods used by specialized API clients.
@@ -7,16 +9,23 @@ export interface Fetcher {
7
9
  * Generic fetch method for GET requests with automatic rate limit retry
8
10
  * @param apiPath Path to URL endpoint under API
9
11
  * @param query URL query params. Will be used to create a URLSearchParams object.
12
+ * @param options Request options like timeout and abort signal.
10
13
  * @returns The response from the API.
11
14
  */
12
- get<T>(apiPath: string, query?: object): Promise<T>;
15
+ get<T>(apiPath: string, query?: object, options?: RequestOptions): Promise<T>;
13
16
 
14
17
  /**
15
18
  * Generic post method for POST requests with automatic rate limit retry
16
19
  * @param apiPath Path to URL endpoint under API
17
20
  * @param body Data to send.
18
- * @param opts Optional connection options.
21
+ * @param headers Additional headers to send with the request.
22
+ * @param options Request options like timeout and abort signal.
19
23
  * @returns The response from the API.
20
24
  */
21
- post<T>(apiPath: string, body?: object, opts?: object): Promise<T>;
25
+ post<T>(
26
+ apiPath: string,
27
+ body?: object,
28
+ headers?: object,
29
+ options?: RequestOptions,
30
+ ): Promise<T>;
22
31
  }
package/src/constants.ts CHANGED
@@ -80,9 +80,9 @@ const SHARED_STOREFRONT_ADDRESS_MAINNET =
80
80
  "0x495f947276749ce646f68ac8c248420045cb7b5e";
81
81
  const SHARED_STOREFRONT_ADDRESS_POLYGON =
82
82
  "0x2953399124f0cbb46d2cbacd8a89cf0599974963";
83
- export const SHARED_STOREFRONT_ADDRESSES = [
83
+ export const SHARED_STOREFRONT_ADDRESSES = new Set([
84
84
  SHARED_STOREFRONT_ADDRESS_MAINNET,
85
85
  SHARED_STOREFRONT_ADDRESS_POLYGON,
86
- ].map((address) => address.toLowerCase());
86
+ ]);
87
87
  export const SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS =
88
88
  "0xa604060890923ff400e8c6f5290461a83aedacec";
package/src/types.ts CHANGED
@@ -379,3 +379,24 @@ export interface OpenSeaRateLimitError extends Error {
379
379
  /** The response body from the API */
380
380
  responseBody?: unknown;
381
381
  }
382
+
383
+ /**
384
+ * Options for controlling HTTP request behavior.
385
+ * @category API Models
386
+ */
387
+ export interface RequestOptions {
388
+ /**
389
+ * Request timeout in milliseconds.
390
+ * If the request takes longer than this, it will be aborted.
391
+ */
392
+ timeout?: number;
393
+ /**
394
+ * An AbortSignal to cancel the request.
395
+ * Useful for implementing custom cancellation logic or timeouts.
396
+ * @example
397
+ * const controller = new AbortController();
398
+ * setTimeout(() => controller.abort(), 5000);
399
+ * await api.post('/path', body, headers, { signal: controller.signal });
400
+ */
401
+ signal?: AbortSignal;
402
+ }
@@ -47,9 +47,12 @@ export const getAssetItemType = (tokenStandard: TokenStandard) => {
47
47
  * otherwise returns the original address unchanged
48
48
  */
49
49
  export const remapSharedStorefrontAddress = (tokenAddress: string): string => {
50
- return SHARED_STOREFRONT_ADDRESSES.includes(tokenAddress.toLowerCase())
51
- ? SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS
52
- : tokenAddress;
50
+ if (SHARED_STOREFRONT_ADDRESSES.has(tokenAddress.toLowerCase())) {
51
+ return ethers.getAddress(
52
+ SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS,
53
+ );
54
+ }
55
+ return tokenAddress;
53
56
  };
54
57
 
55
58
  /**
@@ -137,6 +140,13 @@ export const decodeTokenIds = (encodedTokenIds: string): string[] => {
137
140
  return [];
138
141
  }
139
142
 
143
+ // Check for whitespace and provide helpful error message
144
+ if (/\s/.test(encodedTokenIds)) {
145
+ throw new Error(
146
+ "Invalid input format: whitespace is not allowed. Expected format: '1,2,3' or '1:5' or '1,3:5,8' (no spaces).",
147
+ );
148
+ }
149
+
140
150
  const validFormatRegex = /^(\d+(:\d+)?)(,\d+(:\d+)?)*$/;
141
151
 
142
152
  if (!validFormatRegex.test(encodedTokenIds)) {
@@ -87,8 +87,9 @@ export async function executeWithRateLimit<T>(
87
87
  } else {
88
88
  // Exponential backoff
89
89
  delayMs = baseRetryDelay * Math.pow(EXPONENTIAL_BACKOFF_BASE, attempt);
90
+ const delaySeconds = delayMs / MILLISECONDS_PER_SECOND;
90
91
  logger(
91
- `Rate limit hit. Waiting ${delayMs}ms before retry (attempt ${attempt + 1}/${maxRetries})...`,
92
+ `Rate limit hit. Waiting ${delaySeconds} seconds before retry (attempt ${attempt + 1}/${maxRetries})...`,
92
93
  );
93
94
  }
94
95