opensea-js 6.0.1 → 6.0.3
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/README.md +3 -3
- package/lib/api.d.ts +5 -7
- package/lib/api.js +15 -68
- package/lib/api.js.map +1 -1
- package/lib/bundle.js +138 -1666
- package/package.json +4 -6
- package/src/api.ts +22 -89
package/README.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="
|
|
2
|
+
<img src="./img/banner.png" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
# OpenSea.js <!-- omit in toc -->
|
|
6
|
-
|
|
7
5
|
[![Version][version-badge]][version-link]
|
|
8
6
|
[![npm][npm-badge]][npm-link]
|
|
9
7
|
[![Test CI][ci-badge]][ci-link]
|
|
@@ -12,6 +10,8 @@
|
|
|
12
10
|
[![Docs][docs-badge]][docs-link]
|
|
13
11
|
[![Discussions][discussions-badge]][discussions-link]
|
|
14
12
|
|
|
13
|
+
# OpenSea.js <!-- omit in toc -->
|
|
14
|
+
|
|
15
15
|
A JavaScript library for crypto-native e-commerce: buying, selling, and bidding on NFTs (non-fungible tokens). With OpenSea.js, you can easily build your own native marketplace. These can be ERC-721 or ERC-1155 (semi-fungible) items. You don't have to deploy your own smart contracts or manage backend orderbooks.
|
|
16
16
|
|
|
17
17
|
- [Synopsis](#synopsis)
|
package/lib/api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
2
|
import { BuildOfferResponse, FulfillmentDataResponse, OrderAPIOptions, OrderSide, OrdersQueryOptions, OrderV2, PostOfferResponse, ProtocolData, QueryCursors } from "./orders/types";
|
|
3
3
|
import { OpenSeaAPIConfig, OpenSeaAsset, OpenSeaAssetBundle, OpenSeaAssetBundleQuery, OpenSeaAssetQuery, OpenSeaCollection, OpenSeaFungibleToken, OpenSeaFungibleTokenQuery } from "./types";
|
|
4
4
|
export declare class OpenSeaAPI {
|
|
@@ -113,16 +113,14 @@ export declare class OpenSeaAPI {
|
|
|
113
113
|
* POST JSON data to API, sending auth token in headers
|
|
114
114
|
* @param apiPath Path to URL endpoint under API
|
|
115
115
|
* @param body Data to send. Will be JSON.stringified
|
|
116
|
-
* @param opts
|
|
117
|
-
* a body, it won't be stringified.
|
|
116
|
+
* @param opts ethers ConnectionInfo, similar to Fetch API.
|
|
118
117
|
*/
|
|
119
|
-
post<T>(apiPath: string, body?: object, opts?:
|
|
118
|
+
post<T>(apiPath: string, body?: object, opts?: ethers.utils.ConnectionInfo): Promise<T>;
|
|
120
119
|
private objectToSearchParams;
|
|
121
120
|
/**
|
|
122
121
|
* Get from an API Endpoint, sending auth token in headers
|
|
123
|
-
* @param
|
|
124
|
-
* @param
|
|
122
|
+
* @param opts ethers ConnectionInfo, similar to Fetch API
|
|
123
|
+
* @param body Optional body to send. If set, will POST, otherwise GET
|
|
125
124
|
*/
|
|
126
125
|
private _fetch;
|
|
127
|
-
private _handleApiResponse;
|
|
128
126
|
}
|
package/lib/api.js
CHANGED
|
@@ -21,8 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
23
|
exports.OpenSeaAPI = void 0;
|
|
24
|
-
require("
|
|
25
|
-
const url_1 = require("url");
|
|
24
|
+
const ethers_1 = require("ethers");
|
|
26
25
|
const constants_1 = require("./constants");
|
|
27
26
|
const utils_1 = require("./orders/utils");
|
|
28
27
|
const types_1 = require("./types");
|
|
@@ -242,30 +241,24 @@ class OpenSeaAPI {
|
|
|
242
241
|
get(apiPath, query = {}) {
|
|
243
242
|
return __awaiter(this, void 0, void 0, function* () {
|
|
244
243
|
const qs = this.objectToSearchParams(query);
|
|
245
|
-
const url = `${apiPath}?${qs}`;
|
|
246
|
-
|
|
247
|
-
return response.json();
|
|
244
|
+
const url = `${this.apiBaseUrl}${apiPath}?${qs}`;
|
|
245
|
+
return yield this._fetch({ url });
|
|
248
246
|
});
|
|
249
247
|
}
|
|
250
248
|
/**
|
|
251
249
|
* POST JSON data to API, sending auth token in headers
|
|
252
250
|
* @param apiPath Path to URL endpoint under API
|
|
253
251
|
* @param body Data to send. Will be JSON.stringified
|
|
254
|
-
* @param opts
|
|
255
|
-
* a body, it won't be stringified.
|
|
252
|
+
* @param opts ethers ConnectionInfo, similar to Fetch API.
|
|
256
253
|
*/
|
|
257
|
-
post(apiPath, body, opts
|
|
254
|
+
post(apiPath, body, opts) {
|
|
258
255
|
return __awaiter(this, void 0, void 0, function* () {
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
"Content-Type": "application/json",
|
|
262
|
-
} }, opts);
|
|
263
|
-
const response = yield this._fetch(apiPath, fetchOpts);
|
|
264
|
-
return response.json();
|
|
256
|
+
const options = Object.assign({ url: `${this.apiBaseUrl}${apiPath}` }, opts);
|
|
257
|
+
return yield this._fetch(options, body);
|
|
265
258
|
});
|
|
266
259
|
}
|
|
267
260
|
objectToSearchParams(params = {}) {
|
|
268
|
-
const urlSearchParams = new
|
|
261
|
+
const urlSearchParams = new URLSearchParams();
|
|
269
262
|
Object.entries(params).forEach(([key, value]) => {
|
|
270
263
|
if (value && Array.isArray(value)) {
|
|
271
264
|
value.forEach((item) => item && urlSearchParams.append(key, item));
|
|
@@ -278,61 +271,15 @@ class OpenSeaAPI {
|
|
|
278
271
|
}
|
|
279
272
|
/**
|
|
280
273
|
* Get from an API Endpoint, sending auth token in headers
|
|
281
|
-
* @param
|
|
282
|
-
* @param
|
|
274
|
+
* @param opts ethers ConnectionInfo, similar to Fetch API
|
|
275
|
+
* @param body Optional body to send. If set, will POST, otherwise GET
|
|
283
276
|
*/
|
|
284
|
-
_fetch(
|
|
285
|
-
var _a;
|
|
277
|
+
_fetch(opts, body) {
|
|
286
278
|
return __awaiter(this, void 0, void 0, function* () {
|
|
287
|
-
const
|
|
288
|
-
const
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
this.logger(`Sending request: ${finalUrl} ${JSON.stringify(finalOpts).substr(0, 100)}...`);
|
|
292
|
-
return fetch(finalUrl, finalOpts).then((res) => __awaiter(this, void 0, void 0, function* () { return this._handleApiResponse(res); }));
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
_handleApiResponse(response) {
|
|
296
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
297
|
-
if (response.ok) {
|
|
298
|
-
this.logger(`Got success: ${response.status}`);
|
|
299
|
-
return response;
|
|
300
|
-
}
|
|
301
|
-
let result;
|
|
302
|
-
let errorMessage;
|
|
303
|
-
try {
|
|
304
|
-
result = yield response.text();
|
|
305
|
-
result = JSON.parse(result);
|
|
306
|
-
}
|
|
307
|
-
catch (_a) {
|
|
308
|
-
// Result will be undefined or text
|
|
309
|
-
}
|
|
310
|
-
this.logger(`Got error ${response.status}: ${JSON.stringify(result)}`);
|
|
311
|
-
switch (response.status) {
|
|
312
|
-
case 400:
|
|
313
|
-
errorMessage =
|
|
314
|
-
result && result.errors
|
|
315
|
-
? result.errors.join(", ")
|
|
316
|
-
: `Invalid request: ${JSON.stringify(result)}`;
|
|
317
|
-
break;
|
|
318
|
-
case 401:
|
|
319
|
-
case 403:
|
|
320
|
-
errorMessage = `Unauthorized. Full message was '${JSON.stringify(result)}'`;
|
|
321
|
-
break;
|
|
322
|
-
case 404:
|
|
323
|
-
errorMessage = `Not found. Full message was '${JSON.stringify(result)}'`;
|
|
324
|
-
break;
|
|
325
|
-
case 500:
|
|
326
|
-
errorMessage = `Internal server error. OpenSea has been alerted, but if the problem persists please contact us via Discord: https://discord.gg/opensea - full message was ${JSON.stringify(result)}`;
|
|
327
|
-
break;
|
|
328
|
-
case 503:
|
|
329
|
-
errorMessage = `Service unavailable. Please try again in a few minutes. If the problem persists please contact us via Discord: https://discord.gg/opensea - full message was ${JSON.stringify(result)}`;
|
|
330
|
-
break;
|
|
331
|
-
default:
|
|
332
|
-
errorMessage = `Message: ${JSON.stringify(result)}`;
|
|
333
|
-
break;
|
|
334
|
-
}
|
|
335
|
-
throw new Error(`API Error ${response.status}: ${errorMessage}`);
|
|
279
|
+
const headers = Object.assign(Object.assign({ "x-app-id": "opensea-js" }, (this.apiKey ? { "X-API-KEY": this.apiKey } : {})), opts.headers);
|
|
280
|
+
const req = Object.assign(Object.assign({}, opts), { headers });
|
|
281
|
+
this.logger(`Sending request: ${opts.url} ${JSON.stringify(req).slice(0, 200)}...`);
|
|
282
|
+
return yield ethers_1.ethers.utils.fetchJson(req, body ? JSON.stringify(body) : undefined);
|
|
336
283
|
});
|
|
337
284
|
}
|
|
338
285
|
}
|
package/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|