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 +16 -7
- package/lib/api/api.js +76 -29
- package/lib/api/api.js.map +1 -1
- package/lib/api/fetcher.d.ts +6 -3
- package/lib/constants.d.ts +1 -1
- package/lib/constants.js +2 -2
- package/lib/constants.js.map +1 -1
- package/lib/types.d.ts +20 -0
- package/lib/utils/protocol.js +8 -3
- package/lib/utils/protocol.js.map +1 -1
- package/lib/utils/rateLimit.js +2 -1
- package/lib/utils/rateLimit.js.map +1 -1
- package/package.json +1 -1
- package/src/api/api.ts +91 -29
- package/src/api/fetcher.ts +12 -3
- package/src/constants.ts +2 -2
- package/src/types.ts +21 -0
- package/src/utils/protocol.ts +13 -3
- package/src/utils/rateLimit.ts +2 -1
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
|
|
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,
|
|
341
|
+
post<T>(apiPath: string, body?: object, headers?: object, options?: RequestOptions): Promise<T>;
|
|
340
342
|
private objectToSearchParams;
|
|
341
343
|
/**
|
|
342
|
-
*
|
|
343
|
-
* @param
|
|
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
|
|
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,
|
|
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,
|
|
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
|
-
*
|
|
444
|
-
* @param
|
|
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
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
errorMessage
|
|
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
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
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
|
|
502
|
-
|
|
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
|
package/lib/api/api.js.map
CHANGED
|
@@ -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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"}
|
package/lib/api/fetcher.d.ts
CHANGED
|
@@ -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
|
|
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,
|
|
23
|
+
post<T>(apiPath: string, body?: object, headers?: object, options?: RequestOptions): Promise<T>;
|
|
21
24
|
}
|
package/lib/constants.d.ts
CHANGED
|
@@ -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
|
-
]
|
|
49
|
+
]);
|
|
50
50
|
exports.SHARED_STOREFRONT_LAZY_MINT_ADAPTER_CROSS_CHAIN_ADDRESS = "0xa604060890923ff400e8c6f5290461a83aedacec";
|
|
51
51
|
//# sourceMappingURL=constants.js.map
|
package/lib/constants.js.map
CHANGED
|
@@ -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;
|
|
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 {};
|
package/lib/utils/protocol.js
CHANGED
|
@@ -39,9 +39,10 @@ exports.getAssetItemType = getAssetItemType;
|
|
|
39
39
|
* otherwise returns the original address unchanged
|
|
40
40
|
*/
|
|
41
41
|
const remapSharedStorefrontAddress = (tokenAddress) => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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":";;;AACA,iEAG2C;AAC3C,mCAAgC;AAChC,4CAIsB;AAGtB,wEAAwE;AACxE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,eAAM,CAAC,UAAU,CAAC,4CAAgC,CAAC;IACnD,eAAM,CAAC,UAAU,CAAC,0CAA8B,CAAC;CAClD,CAAC,CAAC;AAEH;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,aAA4B,EAAE,EAAE;IAC/D,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,oBAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,oBAAQ,CAAC,MAAM,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,oBAAQ,CAAC,OAAO,CAAC;QAC1B;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,aAAa,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B;AAEF;;;;;;;;;;GAUG;AACI,MAAM,4BAA4B,GAAG,CAAC,YAAoB,EAAU,EAAE;IAC3E,
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/utils/protocol.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/rateLimit.js
CHANGED
|
@@ -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
|
-
|
|
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":";;;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,CACJ,2BAA2B,
|
|
1
|
+
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../src/utils/rateLimit.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
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>(
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
-
*
|
|
753
|
-
* @param
|
|
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(
|
|
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
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
errorMessage
|
|
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
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
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
|
|
819
|
-
|
|
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
|
}
|
package/src/api/fetcher.ts
CHANGED
|
@@ -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
|
|
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>(
|
|
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
|
-
]
|
|
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
|
+
}
|
package/src/utils/protocol.ts
CHANGED
|
@@ -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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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)) {
|
package/src/utils/rateLimit.ts
CHANGED
|
@@ -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 ${
|
|
92
|
+
`Rate limit hit. Waiting ${delaySeconds} seconds before retry (attempt ${attempt + 1}/${maxRetries})...`,
|
|
92
93
|
);
|
|
93
94
|
}
|
|
94
95
|
|