@xyo-network/crypto-nft-collection-witness-plugin 2.70.15 → 2.71.0
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/cjs/Witness.js +2 -2
- package/dist/cjs/Witness.js.map +1 -1
- package/dist/cjs/lib/collectionMetrics/getNftCollectionMetrics.js.map +1 -1
- package/dist/cjs/lib/{getNftCollectionTotalNfts.js → getNftCollectionCount.js} +4 -4
- package/dist/cjs/lib/getNftCollectionCount.js.map +1 -0
- package/dist/cjs/lib/{getNftCollectionInfo.js → getNftCollectionMetadata.js} +7 -5
- package/dist/cjs/lib/getNftCollectionMetadata.js.map +1 -0
- package/dist/cjs/lib/getNftCollectionNfts.js +3 -1
- package/dist/cjs/lib/getNftCollectionNfts.js.map +1 -1
- package/dist/cjs/lib/index.js +2 -2
- package/dist/cjs/lib/index.js.map +1 -1
- package/dist/esm/Witness.js +3 -3
- package/dist/esm/Witness.js.map +1 -1
- package/dist/esm/lib/collectionMetrics/getNftCollectionMetrics.js.map +1 -1
- package/dist/esm/lib/{getNftCollectionTotalNfts.js → getNftCollectionCount.js} +2 -2
- package/dist/esm/lib/getNftCollectionCount.js.map +1 -0
- package/dist/esm/lib/{getNftCollectionInfo.js → getNftCollectionMetadata.js} +5 -3
- package/dist/esm/lib/getNftCollectionMetadata.js.map +1 -0
- package/dist/esm/lib/getNftCollectionNfts.js +4 -2
- package/dist/esm/lib/getNftCollectionNfts.js.map +1 -1
- package/dist/esm/lib/index.js +2 -2
- package/dist/esm/lib/index.js.map +1 -1
- package/dist/types/lib/collectionMetrics/getNftCollectionMetrics.d.ts +2 -2
- package/dist/types/lib/collectionMetrics/getNftCollectionMetrics.d.ts.map +1 -1
- package/dist/types/lib/getNftCollectionCount.d.ts +2 -0
- package/dist/types/lib/getNftCollectionCount.d.ts.map +1 -0
- package/dist/types/lib/getNftCollectionMetadata.d.ts +3 -0
- package/dist/types/lib/getNftCollectionMetadata.d.ts.map +1 -0
- package/dist/types/lib/getNftCollectionNfts.d.ts +2 -2
- package/dist/types/lib/getNftCollectionNfts.d.ts.map +1 -1
- package/dist/types/lib/index.d.ts +2 -2
- package/dist/types/lib/index.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/Witness.ts +6 -6
- package/src/lib/collectionMetrics/getNftCollectionMetrics.ts +2 -2
- package/src/lib/{getNftCollectionTotalNfts.ts → getNftCollectionCount.ts} +1 -1
- package/src/lib/{getNftCollectionInfo.ts → getNftCollectionMetadata.ts} +6 -4
- package/src/lib/getNftCollectionNfts.ts +7 -5
- package/src/lib/index.ts +2 -2
- package/dist/cjs/lib/getNftCollectionInfo.js.map +0 -1
- package/dist/cjs/lib/getNftCollectionTotalNfts.js.map +0 -1
- package/dist/docs.json +0 -21407
- package/dist/esm/lib/getNftCollectionInfo.js.map +0 -1
- package/dist/esm/lib/getNftCollectionTotalNfts.js.map +0 -1
- package/dist/types/lib/getNftCollectionInfo.d.ts +0 -3
- package/dist/types/lib/getNftCollectionInfo.d.ts.map +0 -1
- package/dist/types/lib/getNftCollectionTotalNfts.d.ts +0 -2
- package/dist/types/lib/getNftCollectionTotalNfts.d.ts.map +0 -1
package/dist/cjs/Witness.js
CHANGED
|
@@ -25,8 +25,8 @@ class CryptoNftCollectionWitness extends witness_1.AbstractWitness {
|
|
|
25
25
|
const chainId = (0, assert_1.assertEx)((query === null || query === void 0 ? void 0 : query.chainId) || this.config.chainId, 'params.chainId is required');
|
|
26
26
|
const maxNfts = (query === null || query === void 0 ? void 0 : query.maxNfts) || defaultMaxNfts;
|
|
27
27
|
const [info, total, nfts, archivist] = yield Promise.all([
|
|
28
|
-
(0, lib_1.
|
|
29
|
-
(0, lib_1.
|
|
28
|
+
(0, lib_1.getNftCollectionMetadata)(address, chainId, this.account.private.hex),
|
|
29
|
+
(0, lib_1.getNftCollectionCount)(address, chainId, this.account.private.hex),
|
|
30
30
|
(0, lib_1.getNftCollectionNfts)(address, chainId, this.account.private.hex, maxNfts),
|
|
31
31
|
this.writeArchivist(),
|
|
32
32
|
]);
|
package/dist/cjs/Witness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,4CAAiD;AACjD,4GAM0D;AAG1D,kDAAqE;AAErE,+BAAsH;AAItH,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B;;;;GAIG;AACH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;AAE9B,MAAa,0BAEX,SAAQ,yBAAwB;IAGP,cAAc,CAAC,QAAoB;;;YAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC3B,MAAM,OAAO,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,yEAAkC,CAAC,mCAAI,EAAE,CAAA;YAC1E,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,OAAO,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,4CAAiD;AACjD,4GAM0D;AAG1D,kDAAqE;AAErE,+BAAsH;AAItH,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B;;;;GAIG;AACH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;AAE9B,MAAa,0BAEX,SAAQ,yBAAwB;IAGP,cAAc,CAAC,QAAoB;;;YAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC3B,MAAM,OAAO,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,yEAAkC,CAAC,mCAAI,EAAE,CAAA;YAC1E,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,OAAO,CAAC,GAAG,CAA6B,CAAO,KAAK,EAAE,EAAE;gBACtD,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;gBAC7F,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;gBAC7F,MAAM,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,cAAc,CAAA;gBAChD,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACvD,IAAA,8BAAwB,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;oBACpE,IAAA,2BAAqB,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;oBACjE,IAAA,0BAAoB,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;oBACzE,IAAI,CAAC,cAAc,EAAE;iBACtB,CAAC,CAAA;gBACF,MAAM,OAAO,GAAG,IAAA,6BAAuB,EAAC,IAAI,CAAC,CAAA;gBAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAClC,wBAAwB;oBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5D,gDAAgD;oBAChD,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;iBAC1C,CAAC,CAAA;gBACF,MAAM,OAAO,mCAA2B,IAAI,KAAE,OAAO,EAAE,MAAM,EAAE,0DAAmB,EAAE,OAAO,EAAE,KAAK,GAAE,CAAA;gBACpG,OAAO,OAAO,CAAA;YAChB,CAAC,CAAA,CAAC,CACH,CAAA;YACD,OAAO,YAAY,CAAC,IAAI,EAAE,CAAA;;KAC3B;;AA/BH,gEAgCC;AA7BiB,wCAAa,GAAG,CAAC,uEAAgC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNftCollectionMetrics.js","sourceRoot":"","sources":["../../../../src/lib/collectionMetrics/getNftCollectionMetrics.ts"],"names":[],"mappings":";;;AAGA,+BAAkG;AAI3F,MAAM,uBAAuB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"getNftCollectionMetrics.js","sourceRoot":"","sources":["../../../../src/lib/collectionMetrics/getNftCollectionMetrics.ts"],"names":[],"mappings":";;;AAGA,+BAAkG;AAI3F,MAAM,uBAAuB,GAAG,CAAC,IAAqB,EAAwB,EAAE;IACrF,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,UAA+C,CAAA,EAAA,CAAC;SAC5E,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAC1D,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAClB,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACnG,CAAC,CAAC,CAAA;IACJ,MAAM,YAAY,GAAG,IAAA,wCAAkC,EAAC,MAAM,CAAC,CAAA;IAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;IACrB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SAC9D,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;QAChF,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,4CAAsC,EAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAA;QACjF,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,EAAE;YACvD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,4CAAsC,EAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAA;YAC5E,MAAM,OAAO,GAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;YAC5E,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACzB,CAAC,CAAC,CACH,CAAA;QACD,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7E,CAAC,CAAC,CACL,CAAA;IACD,OAAO,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA;AA1BY,QAAA,uBAAuB,2BA0BnC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getNftCollectionCount = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const sdk_1 = require("@infura/sdk");
|
|
6
6
|
const nonEvaluableContractAddresses_1 = require("./nonEvaluableContractAddresses");
|
|
7
|
-
const
|
|
7
|
+
const getNftCollectionCount = (
|
|
8
8
|
/**
|
|
9
9
|
* The address of the NFT contract to search for
|
|
10
10
|
*/
|
|
@@ -29,5 +29,5 @@ privateKey) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
|
29
29
|
const { total } = yield sdk.api.getNFTsForCollection(opts);
|
|
30
30
|
return total;
|
|
31
31
|
});
|
|
32
|
-
exports.
|
|
33
|
-
//# sourceMappingURL=
|
|
32
|
+
exports.getNftCollectionCount = getNftCollectionCount;
|
|
33
|
+
//# sourceMappingURL=getNftCollectionCount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionCount.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionCount.ts"],"names":[],"mappings":";;;;AAAA,qCAAuC;AAEvC,mFAA+E;AAOxE,MAAM,qBAAqB,GAAG;AACnC;;GAEG;AACH,eAAuB;AACvB;;GAEG;AACH,OAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,iDAAiD;AACjD;;GAEG;AACH,UAAkB,EACD,EAAE;IACnB,IAAI,6DAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,uDAAuD,eAAe,EAAE,CAAC,CAAA;KAC1F;IACD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,UAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IAC7I,MAAM,IAAI,GAA2B,EAAE,eAAe,EAAE,CAAA;IACxD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC1D,OAAO,KAAK,CAAA;AACd,CAAC,CAAA,CAAA;AAzBY,QAAA,qBAAqB,yBAyBjC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getNftCollectionMetadata = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const sdk_1 = require("@infura/sdk");
|
|
6
|
+
const crypto_nft_payload_plugin_1 = require("@xyo-network/crypto-nft-payload-plugin");
|
|
6
7
|
const nonEvaluableContractAddresses_1 = require("./nonEvaluableContractAddresses");
|
|
7
|
-
const
|
|
8
|
+
const getNftCollectionMetadata = (
|
|
8
9
|
/**
|
|
9
10
|
* The address of the NFT contract to search for
|
|
10
11
|
*/
|
|
@@ -27,7 +28,8 @@ privateKey) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
|
27
28
|
const sdk = new sdk_1.SDK(new sdk_1.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
|
|
28
29
|
const opts = { contractAddress };
|
|
29
30
|
const { name, symbol, tokenType } = yield sdk.api.getContractMetadata(opts);
|
|
30
|
-
|
|
31
|
+
const type = (0, crypto_nft_payload_plugin_1.toTokenType)(tokenType);
|
|
32
|
+
return { address: contractAddress, chainId, name, symbol, type };
|
|
31
33
|
});
|
|
32
|
-
exports.
|
|
33
|
-
//# sourceMappingURL=
|
|
34
|
+
exports.getNftCollectionMetadata = getNftCollectionMetadata;
|
|
35
|
+
//# sourceMappingURL=getNftCollectionMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionMetadata.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionMetadata.ts"],"names":[],"mappings":";;;;AAAA,qCAAuC;AAEvC,sFAAoE;AAEpE,mFAA+E;AAOxE,MAAM,wBAAwB,GAAG;AACtC;;GAEG;AACH,eAAuB;AACvB;;GAEG;AACH,OAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,iDAAiD;AACjD;;GAEG;AACH,UAAkB,EAC6B,EAAE;IACjD,IAAI,6DAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,uDAAuD,eAAe,EAAE,CAAC,CAAA;KAC1F;IACD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,UAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IAC7I,MAAM,IAAI,GAA2B,EAAE,eAAe,EAAE,CAAA;IACxD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC3E,MAAM,IAAI,GAAG,IAAA,uCAAW,EAAC,SAAS,CAAC,CAAA;IACnC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAClE,CAAC,CAAA,CAAA;AA1BY,QAAA,wBAAwB,4BA0BpC"}
|
|
@@ -38,7 +38,9 @@ maxNfts = 100) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
|
38
38
|
const opts = { contractAddress, cursor };
|
|
39
39
|
const { cursor: nextCursor, pageSize, total, assets } = yield sdk.api.getNFTsForCollection(opts);
|
|
40
40
|
const batch = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
|
|
41
|
-
|
|
41
|
+
const { contract: address, type: tokenType } = asset, rest = tslib_1.__rest(asset, ["contract", "type"]);
|
|
42
|
+
const type = (0, crypto_nft_payload_plugin_1.toTokenType)(tokenType);
|
|
43
|
+
return Object.assign({ address, chainId, type }, rest);
|
|
42
44
|
});
|
|
43
45
|
nfts.push(...batch);
|
|
44
46
|
cursor = nextCursor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNftCollectionNfts.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":";;;;AAAA,qCAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"getNftCollectionNfts.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":";;;;AAAA,qCAAuC;AACvC,sFAAuG;AAEvG,mFAA+E;AAOxE,MAAM,oBAAoB,GAAG;AAClC;;GAEG;AACH,eAAuB;AACvB;;GAEG;AACH,OAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,iDAAiD;AACjD;;GAEG;AACH,UAAkB;AAClB;;;;GAIG;AACH,OAAO,GAAG,GAAG,EACO,EAAE;IACtB,IAAI,6DAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,uDAAuD,eAAe,EAAE,CAAC,CAAA;KAC1F;IACD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,UAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IAC7I,MAAM,IAAI,GAAoB,EAAE,CAAA;IAChC,IAAI,MAAM,GAAuB,SAAS,CAAA;IAC1C,GAAG;QACD,MAAM,IAAI,GAA2B,EAAE,eAAe,EAAE,MAAM,EAAE,CAAA;QAChE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAChG,MAAM,KAAK,GAAoB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,KAAc,KAAK,EAAd,IAAI,kBAAK,KAAK,EAAvD,oBAA+C,CAAQ,CAAA;YAC7D,MAAM,IAAI,GAAG,IAAA,uCAAW,EAAC,SAAS,CAAC,CAAA;YACnC,uBAAS,OAAO,EAAE,OAAO,EAAE,IAAI,IAAK,IAAI,EAAE;QAC5C,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;QACnB,MAAM,GAAG,UAAU,CAAA;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,MAAM;YAAE,MAAK;KAC3C,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,EAAC;IAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,uCAAY,GAAG,KAAE,MAAM,EAAE,qCAAS,IAAE;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AA7CY,QAAA,oBAAoB,wBA6ChC"}
|
package/dist/cjs/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./collectionMetrics"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./
|
|
5
|
+
tslib_1.__exportStar(require("./getNftCollectionCount"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./getNftCollectionMetadata"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./getNftCollectionNfts"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./getNftCollectionTotalNfts"), exports);
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,8DAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,8DAAmC;AACnC,kEAAuC;AACvC,qEAA0C;AAC1C,iEAAsC"}
|
package/dist/esm/Witness.js
CHANGED
|
@@ -2,7 +2,7 @@ import { assertEx } from '@xylabs/assert';
|
|
|
2
2
|
import { PayloadHasher } from '@xyo-network/core';
|
|
3
3
|
import { isNftCollectionWitnessQueryPayload, NftCollectionSchema, NftCollectionWitnessConfigSchema, } from '@xyo-network/crypto-nft-collection-payload-plugin';
|
|
4
4
|
import { AbstractWitness } from '@xyo-network/witness';
|
|
5
|
-
import {
|
|
5
|
+
import { getNftCollectionCount, getNftCollectionMetadata, getNftCollectionMetrics, getNftCollectionNfts } from './lib';
|
|
6
6
|
const defaultMaxNfts = 100;
|
|
7
7
|
/**
|
|
8
8
|
* A "no operation" Promise to be used
|
|
@@ -20,8 +20,8 @@ export class CryptoNftCollectionWitness extends AbstractWitness {
|
|
|
20
20
|
const chainId = assertEx(query?.chainId || this.config.chainId, 'params.chainId is required');
|
|
21
21
|
const maxNfts = query?.maxNfts || defaultMaxNfts;
|
|
22
22
|
const [info, total, nfts, archivist] = await Promise.all([
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
getNftCollectionMetadata(address, chainId, this.account.private.hex),
|
|
24
|
+
getNftCollectionCount(address, chainId, this.account.private.hex),
|
|
25
25
|
getNftCollectionNfts(address, chainId, this.account.private.hex, maxNfts),
|
|
26
26
|
this.writeArchivist(),
|
|
27
27
|
]);
|
package/dist/esm/Witness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EACL,kCAAkC,EAElC,mBAAmB,EAEnB,gCAAgC,GACjC,MAAM,mDAAmD,CAAA;AAG1D,OAAO,EAAE,eAAe,EAAiB,MAAM,sBAAsB,CAAA;AAErE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EACL,kCAAkC,EAElC,mBAAmB,EAEnB,gCAAgC,GACjC,MAAM,mDAAmD,CAAA;AAG1D,OAAO,EAAE,eAAe,EAAiB,MAAM,sBAAsB,CAAA;AAErE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAItH,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B;;;;GAIG;AACH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;AAE9B,MAAM,OAAO,0BAEX,SAAQ,eAAwB;IAChC,MAAM,CAAU,aAAa,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAE/C,KAAK,CAAC,cAAc,CAAC,QAAoB;QAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC3B,MAAM,OAAO,GAAG,QAAQ,EAAE,MAAM,CAAC,kCAAkC,CAAC,IAAI,EAAE,CAAA;QAC1E,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,OAAO,CAAC,GAAG,CAA6B,KAAK,EAAE,KAAK,EAAE,EAAE;YACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;YAC7F,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;YAC7F,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,cAAc,CAAA;YAChD,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACvD,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;gBACpE,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;gBACjE,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;gBACzE,IAAI,CAAC,cAAc,EAAE;aACtB,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAClC,wBAAwB;gBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,gDAAgD;gBAChD,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;aAC1C,CAAC,CAAA;YACF,MAAM,OAAO,GAAsB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;YACpG,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CACH,CAAA;QACD,OAAO,YAAY,CAAC,IAAI,EAAE,CAAA;IAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNftCollectionMetrics.js","sourceRoot":"","sources":["../../../../src/lib/collectionMetrics/getNftCollectionMetrics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kCAAkC,EAAE,sCAAsC,EAAE,MAAM,OAAO,CAAA;AAIlG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"getNftCollectionMetrics.js","sourceRoot":"","sources":["../../../../src/lib/collectionMetrics/getNftCollectionMetrics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kCAAkC,EAAE,sCAAsC,EAAE,MAAM,OAAO,CAAA;AAIlG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAqB,EAAwB,EAAE;IACrF,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,UAA+C,CAAC;SAC5E,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAC1D,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAClB,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACnG,CAAC,CAAC,CAAA;IACJ,MAAM,YAAY,GAAG,kCAAkC,CAAC,MAAM,CAAC,CAAA;IAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;IACrB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SAC9D,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;QAChF,MAAM,EAAE,CAAC,EAAE,GAAG,sCAAsC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAA;QACjF,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,EAAE;YACvD,MAAM,EAAE,CAAC,EAAE,GAAG,sCAAsC,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAA;YAC5E,MAAM,OAAO,GAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;YAC5E,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACzB,CAAC,CAAC,CACH,CAAA;QACD,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7E,CAAC,CAAC,CACL,CAAA;IACD,OAAO,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,CAAA;AACrC,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Auth, SDK } from '@infura/sdk';
|
|
2
2
|
import { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses';
|
|
3
|
-
export const
|
|
3
|
+
export const getNftCollectionCount = async (
|
|
4
4
|
/**
|
|
5
5
|
* The address of the NFT contract to search for
|
|
6
6
|
*/
|
|
@@ -25,4 +25,4 @@ privateKey) => {
|
|
|
25
25
|
const { total } = await sdk.api.getNFTsForCollection(opts);
|
|
26
26
|
return total;
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=getNftCollectionCount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionCount.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionCount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAO/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK;AACxC;;GAEG;AACH,eAAuB;AACvB;;GAEG;AACH,OAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,iDAAiD;AACjD;;GAEG;AACH,UAAkB,EACD,EAAE;IACnB,IAAI,6BAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,uDAAuD,eAAe,EAAE,CAAC,CAAA;KAC1F;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IAC7I,MAAM,IAAI,GAA2B,EAAE,eAAe,EAAE,CAAA;IACxD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC1D,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Auth, SDK } from '@infura/sdk';
|
|
2
|
+
import { toTokenType } from '@xyo-network/crypto-nft-payload-plugin';
|
|
2
3
|
import { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses';
|
|
3
|
-
export const
|
|
4
|
+
export const getNftCollectionMetadata = async (
|
|
4
5
|
/**
|
|
5
6
|
* The address of the NFT contract to search for
|
|
6
7
|
*/
|
|
@@ -23,6 +24,7 @@ privateKey) => {
|
|
|
23
24
|
const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
|
|
24
25
|
const opts = { contractAddress };
|
|
25
26
|
const { name, symbol, tokenType } = await sdk.api.getContractMetadata(opts);
|
|
26
|
-
|
|
27
|
+
const type = toTokenType(tokenType);
|
|
28
|
+
return { address: contractAddress, chainId, name, symbol, type };
|
|
27
29
|
};
|
|
28
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=getNftCollectionMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionMetadata.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAO/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK;AAC3C;;GAEG;AACH,eAAuB;AACvB;;GAEG;AACH,OAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,iDAAiD;AACjD;;GAEG;AACH,UAAkB,EAC6B,EAAE;IACjD,IAAI,6BAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,uDAAuD,eAAe,EAAE,CAAC,CAAA;KAC1F;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IAC7I,MAAM,IAAI,GAA2B,EAAE,eAAe,EAAE,CAAA;IACxD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC3E,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAClE,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Auth, SDK } from '@infura/sdk';
|
|
2
|
-
import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin';
|
|
2
|
+
import { NftSchema, toTokenType } from '@xyo-network/crypto-nft-payload-plugin';
|
|
3
3
|
import { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses';
|
|
4
4
|
export const getNftCollectionNfts = async (
|
|
5
5
|
/**
|
|
@@ -34,7 +34,9 @@ maxNfts = 100) => {
|
|
|
34
34
|
const opts = { contractAddress, cursor };
|
|
35
35
|
const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts);
|
|
36
36
|
const batch = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
|
|
37
|
-
|
|
37
|
+
const { contract: address, type: tokenType, ...rest } = asset;
|
|
38
|
+
const type = toTokenType(tokenType);
|
|
39
|
+
return { address, chainId, type, ...rest };
|
|
38
40
|
});
|
|
39
41
|
nfts.push(...batch);
|
|
40
42
|
cursor = nextCursor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNftCollectionNfts.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"getNftCollectionNfts.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAA0B,SAAS,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AAEvG,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAO/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK;AACvC;;GAEG;AACH,eAAuB;AACvB;;GAEG;AACH,OAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,iDAAiD;AACjD;;GAEG;AACH,UAAkB;AAClB;;;;GAIG;AACH,OAAO,GAAG,GAAG,EACO,EAAE;IACtB,IAAI,6BAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,uDAAuD,eAAe,EAAE,CAAC,CAAA;KAC1F;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IAC7I,MAAM,IAAI,GAAoB,EAAE,CAAA;IAChC,IAAI,MAAM,GAAuB,SAAS,CAAA;IAC1C,GAAG;QACD,MAAM,IAAI,GAA2B,EAAE,eAAe,EAAE,MAAM,EAAE,CAAA;QAChE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAChG,MAAM,KAAK,GAAoB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;YAC7D,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;YACnC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAA;QAC5C,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;QACnB,MAAM,GAAG,UAAU,CAAA;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,MAAM;YAAE,MAAK;KAC3C,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,EAAC;IAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
package/dist/esm/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './collectionMetrics';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './getNftCollectionCount';
|
|
3
|
+
export * from './getNftCollectionMetadata';
|
|
3
4
|
export * from './getNftCollectionNfts';
|
|
4
|
-
export * from './getNftCollectionTotalNfts';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { NftCollectionMetrics } from '@xyo-network/crypto-nft-collection-payload-plugin';
|
|
2
|
-
import {
|
|
3
|
-
export declare const getNftCollectionMetrics: (nfts:
|
|
2
|
+
import { NftInfoFields } from '@xyo-network/crypto-nft-payload-plugin';
|
|
3
|
+
export declare const getNftCollectionMetrics: (nfts: NftInfoFields[]) => NftCollectionMetrics;
|
|
4
4
|
//# sourceMappingURL=getNftCollectionMetrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNftCollectionMetrics.d.ts","sourceRoot":"","sources":["../../../../src/lib/collectionMetrics/getNftCollectionMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,mDAAmD,CAAA;AACzG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"getNftCollectionMetrics.d.ts","sourceRoot":"","sources":["../../../../src/lib/collectionMetrics/getNftCollectionMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,mDAAmD,CAAA;AACzG,OAAO,EAAE,aAAa,EAAuB,MAAM,wCAAwC,CAAA;AAM3F,eAAO,MAAM,uBAAuB,SAAU,aAAa,EAAE,KAAG,oBA0B/D,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionCount.d.ts","sourceRoot":"","sources":["../../../src/lib/getNftCollectionCount.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,qBAAqB,oBAIf,MAAM,WAId,MAAM,cAQH,MAAM,KACjB,QAAQ,MAAM,CAQhB,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { NftCollectionMetadata } from '@xyo-network/crypto-nft-collection-payload-plugin';
|
|
2
|
+
export declare const getNftCollectionMetadata: (contractAddress: string, chainId: number, privateKey: string) => Promise<Omit<NftCollectionMetadata, 'total'>>;
|
|
3
|
+
//# sourceMappingURL=getNftCollectionMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/getNftCollectionMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AAUzF,eAAO,MAAM,wBAAwB,oBAIlB,MAAM,WAId,MAAM,cAQH,MAAM,KACjB,QAAQ,KAAK,qBAAqB,EAAE,OAAO,CAAC,CAS9C,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const getNftCollectionNfts: (contractAddress: string, chainId: number, privateKey: string, maxNfts?: number) => Promise<
|
|
1
|
+
import { NftInfo } from '@xyo-network/crypto-nft-payload-plugin';
|
|
2
|
+
export declare const getNftCollectionNfts: (contractAddress: string, chainId: number, privateKey: string, maxNfts?: number) => Promise<NftInfo[]>;
|
|
3
3
|
//# sourceMappingURL=getNftCollectionNfts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNftCollectionNfts.d.ts","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"getNftCollectionNfts.d.ts","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAyC,MAAM,wCAAwC,CAAA;AASvG,eAAO,MAAM,oBAAoB,oBAId,MAAM,WAId,MAAM,cAQH,MAAM,uBAOjB,QAAQ,OAAO,EAAE,CAsBnB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './collectionMetrics';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './getNftCollectionCount';
|
|
3
|
+
export * from './getNftCollectionMetadata';
|
|
3
4
|
export * from './getNftCollectionNfts';
|
|
4
|
-
export * from './getNftCollectionTotalNfts';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA"}
|
package/package.json
CHANGED
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@infura/sdk": "^2.4.3",
|
|
14
14
|
"@xylabs/assert": "^2.9.3",
|
|
15
|
-
"@xyo-network/core": "~2.
|
|
16
|
-
"@xyo-network/crypto-nft-collection-payload-plugin": "~2.
|
|
17
|
-
"@xyo-network/crypto-nft-payload-plugin": "~2.
|
|
18
|
-
"@xyo-network/module": "~2.
|
|
19
|
-
"@xyo-network/payload-model": "~2.
|
|
20
|
-
"@xyo-network/payloadset-plugin": "~2.
|
|
21
|
-
"@xyo-network/witness": "~2.
|
|
15
|
+
"@xyo-network/core": "~2.71.0",
|
|
16
|
+
"@xyo-network/crypto-nft-collection-payload-plugin": "~2.71.0",
|
|
17
|
+
"@xyo-network/crypto-nft-payload-plugin": "~2.71.0",
|
|
18
|
+
"@xyo-network/module": "~2.71.0",
|
|
19
|
+
"@xyo-network/payload-model": "~2.71.0",
|
|
20
|
+
"@xyo-network/payloadset-plugin": "~2.71.0",
|
|
21
|
+
"@xyo-network/witness": "~2.71.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@xylabs/jest-helpers": "^2.9.3",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
},
|
|
62
62
|
"sideEffects": false,
|
|
63
63
|
"types": "dist/types/index.d.ts",
|
|
64
|
-
"version": "2.
|
|
64
|
+
"version": "2.71.0"
|
|
65
65
|
}
|
package/src/Witness.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { assertEx } from '@xylabs/assert'
|
|
|
2
2
|
import { PayloadHasher } from '@xyo-network/core'
|
|
3
3
|
import {
|
|
4
4
|
isNftCollectionWitnessQueryPayload,
|
|
5
|
-
|
|
5
|
+
NftCollectionInfo,
|
|
6
6
|
NftCollectionSchema,
|
|
7
7
|
NftCollectionWitnessConfig,
|
|
8
8
|
NftCollectionWitnessConfigSchema,
|
|
@@ -11,7 +11,7 @@ import { AnyConfigSchema } from '@xyo-network/module'
|
|
|
11
11
|
import { Payload } from '@xyo-network/payload-model'
|
|
12
12
|
import { AbstractWitness, WitnessParams } from '@xyo-network/witness'
|
|
13
13
|
|
|
14
|
-
import {
|
|
14
|
+
import { getNftCollectionCount, getNftCollectionMetadata, getNftCollectionMetrics, getNftCollectionNfts } from './lib'
|
|
15
15
|
|
|
16
16
|
export type CryptoNftCollectionWitnessParams = WitnessParams<AnyConfigSchema<NftCollectionWitnessConfig>>
|
|
17
17
|
|
|
@@ -33,13 +33,13 @@ export class CryptoNftCollectionWitness<
|
|
|
33
33
|
await this.started('throw')
|
|
34
34
|
const queries = payloads?.filter(isNftCollectionWitnessQueryPayload) ?? []
|
|
35
35
|
const observations = await Promise.all(
|
|
36
|
-
queries.map<Promise<
|
|
36
|
+
queries.map<Promise<NftCollectionInfo>>(async (query) => {
|
|
37
37
|
const address = assertEx(query?.address || this.config.address, 'params.address is required')
|
|
38
38
|
const chainId = assertEx(query?.chainId || this.config.chainId, 'params.chainId is required')
|
|
39
39
|
const maxNfts = query?.maxNfts || defaultMaxNfts
|
|
40
40
|
const [info, total, nfts, archivist] = await Promise.all([
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
getNftCollectionMetadata(address, chainId, this.account.private.hex),
|
|
42
|
+
getNftCollectionCount(address, chainId, this.account.private.hex),
|
|
43
43
|
getNftCollectionNfts(address, chainId, this.account.private.hex, maxNfts),
|
|
44
44
|
this.writeArchivist(),
|
|
45
45
|
])
|
|
@@ -50,7 +50,7 @@ export class CryptoNftCollectionWitness<
|
|
|
50
50
|
// Insert them into the archivist if we have one
|
|
51
51
|
archivist ? archivist.insert(nfts) : NoOp,
|
|
52
52
|
])
|
|
53
|
-
const payload:
|
|
53
|
+
const payload: NftCollectionInfo = { ...info, metrics, schema: NftCollectionSchema, sources, total }
|
|
54
54
|
return payload
|
|
55
55
|
}),
|
|
56
56
|
)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { NftCollectionMetrics, NftTraitMetrics } from '@xyo-network/crypto-nft-collection-payload-plugin'
|
|
2
|
-
import {
|
|
2
|
+
import { NftInfoFields, OpenSeaNftAttribute } from '@xyo-network/crypto-nft-payload-plugin'
|
|
3
3
|
|
|
4
4
|
import { calculateAllPropertiesDistribution, calculateBinomialParamsFromProbability } from './lib'
|
|
5
5
|
|
|
6
6
|
type TraitDistributionEntry = [string, { [key: string]: number }]
|
|
7
7
|
|
|
8
|
-
export const getNftCollectionMetrics = (nfts:
|
|
8
|
+
export const getNftCollectionMetrics = (nfts: NftInfoFields[]): NftCollectionMetrics => {
|
|
9
9
|
const traits = nfts
|
|
10
10
|
.map((nft) => nft?.metadata?.attributes as OpenSeaNftAttribute[] | undefined)
|
|
11
11
|
.filter((v): v is OpenSeaNftAttribute[] => v !== undefined)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Auth, SDK } from '@infura/sdk'
|
|
2
|
-
import {
|
|
2
|
+
import { NftCollectionMetadata } from '@xyo-network/crypto-nft-collection-payload-plugin'
|
|
3
|
+
import { toTokenType } from '@xyo-network/crypto-nft-payload-plugin'
|
|
3
4
|
|
|
4
5
|
import { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses'
|
|
5
6
|
|
|
@@ -8,7 +9,7 @@ type ContractAddressOptions = {
|
|
|
8
9
|
cursor?: string
|
|
9
10
|
}
|
|
10
11
|
|
|
11
|
-
export const
|
|
12
|
+
export const getNftCollectionMetadata = async (
|
|
12
13
|
/**
|
|
13
14
|
* The address of the NFT contract to search for
|
|
14
15
|
*/
|
|
@@ -25,12 +26,13 @@ export const getNftCollectionInfo = async (
|
|
|
25
26
|
* The private key of the wallet to use to search for NFTs
|
|
26
27
|
*/
|
|
27
28
|
privateKey: string,
|
|
28
|
-
): Promise<Omit<
|
|
29
|
+
): Promise<Omit<NftCollectionMetadata, 'total'>> => {
|
|
29
30
|
if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
|
|
30
31
|
throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`)
|
|
31
32
|
}
|
|
32
33
|
const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }))
|
|
33
34
|
const opts: ContractAddressOptions = { contractAddress }
|
|
34
35
|
const { name, symbol, tokenType } = await sdk.api.getContractMetadata(opts)
|
|
35
|
-
|
|
36
|
+
const type = toTokenType(tokenType)
|
|
37
|
+
return { address: contractAddress, chainId, name, symbol, type }
|
|
36
38
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Auth, SDK } from '@infura/sdk'
|
|
2
|
-
import { NftInfo,
|
|
2
|
+
import { NftInfo, NftInfoFields, NftSchema, toTokenType } from '@xyo-network/crypto-nft-payload-plugin'
|
|
3
3
|
|
|
4
4
|
import { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses'
|
|
5
5
|
|
|
@@ -31,18 +31,20 @@ export const getNftCollectionNfts = async (
|
|
|
31
31
|
* multiple of 100 as that appears to be the default page size.
|
|
32
32
|
*/
|
|
33
33
|
maxNfts = 100,
|
|
34
|
-
): Promise<
|
|
34
|
+
): Promise<NftInfo[]> => {
|
|
35
35
|
if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
|
|
36
36
|
throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`)
|
|
37
37
|
}
|
|
38
38
|
const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }))
|
|
39
|
-
const nfts:
|
|
39
|
+
const nfts: NftInfoFields[] = []
|
|
40
40
|
let cursor: string | undefined = undefined
|
|
41
41
|
do {
|
|
42
42
|
const opts: ContractAddressOptions = { contractAddress, cursor }
|
|
43
43
|
const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts)
|
|
44
|
-
const batch:
|
|
45
|
-
|
|
44
|
+
const batch: NftInfoFields[] = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
|
|
45
|
+
const { contract: address, type: tokenType, ...rest } = asset
|
|
46
|
+
const type = toTokenType(tokenType)
|
|
47
|
+
return { address, chainId, type, ...rest }
|
|
46
48
|
})
|
|
47
49
|
nfts.push(...batch)
|
|
48
50
|
cursor = nextCursor
|
package/src/lib/index.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getNftCollectionInfo.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionInfo.ts"],"names":[],"mappings":";;;;AAAA,qCAAuC;AAGvC,mFAA+E;AAOxE,MAAM,oBAAoB,GAAG;AAClC;;GAEG;AACH,eAAuB;AACvB;;GAEG;AACH,OAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,iDAAiD;AACjD;;GAEG;AACH,UAAkB,EACyB,EAAE;IAC7C,IAAI,6DAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,uDAAuD,eAAe,EAAE,CAAC,CAAA;KAC1F;IACD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,UAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IAC7I,MAAM,IAAI,GAA2B,EAAE,eAAe,EAAE,CAAA;IACxD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC3E,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AACvE,CAAC,CAAA,CAAA;AAzBY,QAAA,oBAAoB,wBAyBhC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getNftCollectionTotalNfts.js","sourceRoot":"","sources":["../../../src/lib/getNftCollectionTotalNfts.ts"],"names":[],"mappings":";;;;AAAA,qCAAuC;AAEvC,mFAA+E;AAOxE,MAAM,yBAAyB,GAAG;AACvC;;GAEG;AACH,eAAuB;AACvB;;GAEG;AACH,OAAe;AACf,MAAM;AACN,mDAAmD;AACnD,MAAM;AACN,iDAAiD;AACjD;;GAEG;AACH,UAAkB,EACD,EAAE;IACnB,IAAI,6DAA6B,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE;QACzE,MAAM,IAAI,KAAK,CAAC,uDAAuD,eAAe,EAAE,CAAC,CAAA;KAC1F;IACD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,UAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IAC7I,MAAM,IAAI,GAA2B,EAAE,eAAe,EAAE,CAAA;IACxD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC1D,OAAO,KAAK,CAAA;AACd,CAAC,CAAA,CAAA;AAzBY,QAAA,yBAAyB,6BAyBrC"}
|