@xyo-network/crypto-nft-collection-witness-plugin 2.73.2 → 2.73.4

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.
Files changed (117) hide show
  1. package/dist/docs.json +66 -66
  2. package/dist/index.d.mts +82 -0
  3. package/dist/index.d.ts +82 -0
  4. package/dist/index.js +219 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +191 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +37 -24
  9. package/tsup.config.ts +16 -0
  10. package/dist/cjs/Plugin.js +0 -16
  11. package/dist/cjs/Plugin.js.map +0 -1
  12. package/dist/cjs/Witness.js +0 -49
  13. package/dist/cjs/Witness.js.map +0 -1
  14. package/dist/cjs/index.js +0 -11
  15. package/dist/cjs/index.js.map +0 -1
  16. package/dist/cjs/lib/collectionMetrics/getNftCollectionMetrics.js +0 -29
  17. package/dist/cjs/lib/collectionMetrics/getNftCollectionMetrics.js.map +0 -1
  18. package/dist/cjs/lib/collectionMetrics/index.js +0 -5
  19. package/dist/cjs/lib/collectionMetrics/index.js.map +0 -1
  20. package/dist/cjs/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js +0 -30
  21. package/dist/cjs/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js.map +0 -1
  22. package/dist/cjs/lib/collectionMetrics/lib/calculatePropertyDistribution.js +0 -26
  23. package/dist/cjs/lib/collectionMetrics/lib/calculatePropertyDistribution.js.map +0 -1
  24. package/dist/cjs/lib/collectionMetrics/lib/distribution.js +0 -3
  25. package/dist/cjs/lib/collectionMetrics/lib/distribution.js.map +0 -1
  26. package/dist/cjs/lib/collectionMetrics/lib/index.js +0 -7
  27. package/dist/cjs/lib/collectionMetrics/lib/index.js.map +0 -1
  28. package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js +0 -23
  29. package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js.map +0 -1
  30. package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js +0 -20
  31. package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js.map +0 -1
  32. package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js +0 -6
  33. package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js.map +0 -1
  34. package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/index.js +0 -5
  35. package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/index.js.map +0 -1
  36. package/dist/cjs/lib/getNftCollectionCount.js +0 -33
  37. package/dist/cjs/lib/getNftCollectionCount.js.map +0 -1
  38. package/dist/cjs/lib/getNftCollectionMetadata.js +0 -35
  39. package/dist/cjs/lib/getNftCollectionMetadata.js.map +0 -1
  40. package/dist/cjs/lib/getNftCollectionNfts.js +0 -55
  41. package/dist/cjs/lib/getNftCollectionNfts.js.map +0 -1
  42. package/dist/cjs/lib/index.js +0 -8
  43. package/dist/cjs/lib/index.js.map +0 -1
  44. package/dist/cjs/lib/nonEvaluableContractAddresses.js +0 -12
  45. package/dist/cjs/lib/nonEvaluableContractAddresses.js.map +0 -1
  46. package/dist/esm/Plugin.js +0 -11
  47. package/dist/esm/Plugin.js.map +0 -1
  48. package/dist/esm/Witness.js +0 -41
  49. package/dist/esm/Witness.js.map +0 -1
  50. package/dist/esm/index.js +0 -7
  51. package/dist/esm/index.js.map +0 -1
  52. package/dist/esm/lib/collectionMetrics/getNftCollectionMetrics.js +0 -25
  53. package/dist/esm/lib/collectionMetrics/getNftCollectionMetrics.js.map +0 -1
  54. package/dist/esm/lib/collectionMetrics/index.js +0 -2
  55. package/dist/esm/lib/collectionMetrics/index.js.map +0 -1
  56. package/dist/esm/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js +0 -26
  57. package/dist/esm/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js.map +0 -1
  58. package/dist/esm/lib/collectionMetrics/lib/calculatePropertyDistribution.js +0 -22
  59. package/dist/esm/lib/collectionMetrics/lib/calculatePropertyDistribution.js.map +0 -1
  60. package/dist/esm/lib/collectionMetrics/lib/distribution.js +0 -2
  61. package/dist/esm/lib/collectionMetrics/lib/distribution.js.map +0 -1
  62. package/dist/esm/lib/collectionMetrics/lib/index.js +0 -4
  63. package/dist/esm/lib/collectionMetrics/lib/index.js.map +0 -1
  64. package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js +0 -19
  65. package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js.map +0 -1
  66. package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js +0 -16
  67. package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js.map +0 -1
  68. package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js +0 -3
  69. package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js.map +0 -1
  70. package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/index.js +0 -2
  71. package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/index.js.map +0 -1
  72. package/dist/esm/lib/getNftCollectionCount.js +0 -28
  73. package/dist/esm/lib/getNftCollectionCount.js.map +0 -1
  74. package/dist/esm/lib/getNftCollectionMetadata.js +0 -30
  75. package/dist/esm/lib/getNftCollectionMetadata.js.map +0 -1
  76. package/dist/esm/lib/getNftCollectionNfts.js +0 -50
  77. package/dist/esm/lib/getNftCollectionNfts.js.map +0 -1
  78. package/dist/esm/lib/index.js +0 -5
  79. package/dist/esm/lib/index.js.map +0 -1
  80. package/dist/esm/lib/nonEvaluableContractAddresses.js +0 -9
  81. package/dist/esm/lib/nonEvaluableContractAddresses.js.map +0 -1
  82. package/dist/types/Plugin.d.ts +0 -56
  83. package/dist/types/Plugin.d.ts.map +0 -1
  84. package/dist/types/Witness.d.ts +0 -10
  85. package/dist/types/Witness.d.ts.map +0 -1
  86. package/dist/types/index.d.ts +0 -6
  87. package/dist/types/index.d.ts.map +0 -1
  88. package/dist/types/lib/collectionMetrics/getNftCollectionMetrics.d.ts +0 -4
  89. package/dist/types/lib/collectionMetrics/getNftCollectionMetrics.d.ts.map +0 -1
  90. package/dist/types/lib/collectionMetrics/index.d.ts +0 -2
  91. package/dist/types/lib/collectionMetrics/index.d.ts.map +0 -1
  92. package/dist/types/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts +0 -3
  93. package/dist/types/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts.map +0 -1
  94. package/dist/types/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts +0 -3
  95. package/dist/types/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts.map +0 -1
  96. package/dist/types/lib/collectionMetrics/lib/distribution.d.ts +0 -6
  97. package/dist/types/lib/collectionMetrics/lib/distribution.d.ts.map +0 -1
  98. package/dist/types/lib/collectionMetrics/lib/index.d.ts +0 -4
  99. package/dist/types/lib/collectionMetrics/lib/index.d.ts.map +0 -1
  100. package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts +0 -8
  101. package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts.map +0 -1
  102. package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts +0 -9
  103. package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts.map +0 -1
  104. package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts +0 -3
  105. package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts.map +0 -1
  106. package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/index.d.ts +0 -2
  107. package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/index.d.ts.map +0 -1
  108. package/dist/types/lib/getNftCollectionCount.d.ts +0 -2
  109. package/dist/types/lib/getNftCollectionCount.d.ts.map +0 -1
  110. package/dist/types/lib/getNftCollectionMetadata.d.ts +0 -3
  111. package/dist/types/lib/getNftCollectionMetadata.d.ts.map +0 -1
  112. package/dist/types/lib/getNftCollectionNfts.d.ts +0 -3
  113. package/dist/types/lib/getNftCollectionNfts.d.ts.map +0 -1
  114. package/dist/types/lib/index.d.ts +0 -5
  115. package/dist/types/lib/index.d.ts.map +0 -1
  116. package/dist/types/lib/nonEvaluableContractAddresses.d.ts +0 -6
  117. package/dist/types/lib/nonEvaluableContractAddresses.d.ts.map +0 -1
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CryptoNftCollectionWitness = void 0;
4
- const tslib_1 = require("tslib");
5
- const assert_1 = require("@xylabs/assert");
6
- const core_1 = require("@xyo-network/core");
7
- const crypto_nft_collection_payload_plugin_1 = require("@xyo-network/crypto-nft-collection-payload-plugin");
8
- const witness_1 = require("@xyo-network/witness");
9
- const lib_1 = require("./lib");
10
- const defaultMaxNfts = 100;
11
- /**
12
- * A "no operation" Promise to be used
13
- * when no action is desired but a Promise
14
- * is required to be returned
15
- */
16
- const NoOp = Promise.resolve();
17
- class CryptoNftCollectionWitness extends witness_1.AbstractWitness {
18
- observeHandler(payloads) {
19
- var _a;
20
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
21
- yield this.started('throw');
22
- const queries = (_a = payloads === null || payloads === void 0 ? void 0 : payloads.filter(crypto_nft_collection_payload_plugin_1.isNftCollectionWitnessQuery)) !== null && _a !== void 0 ? _a : [];
23
- const observations = yield Promise.all(queries.map((query) => tslib_1.__awaiter(this, void 0, void 0, function* () {
24
- const address = (0, assert_1.assertEx)((query === null || query === void 0 ? void 0 : query.address) || this.config.address, 'params.address is required');
25
- const chainId = (0, assert_1.assertEx)((query === null || query === void 0 ? void 0 : query.chainId) || this.config.chainId, 'params.chainId is required');
26
- const maxNfts = (query === null || query === void 0 ? void 0 : query.maxNfts) || defaultMaxNfts;
27
- const [info, total, nfts, archivist] = yield Promise.all([
28
- (0, lib_1.getNftCollectionMetadata)(address, chainId, this.account.private.hex),
29
- (0, lib_1.getNftCollectionCount)(address, chainId, this.account.private.hex),
30
- (0, lib_1.getNftCollectionNfts)(address, chainId, this.account.private.hex, maxNfts),
31
- this.writeArchivist(),
32
- ]);
33
- const metrics = (0, lib_1.getNftCollectionMetrics)(nfts);
34
- const [sources] = yield Promise.all([
35
- // Hash all the payloads
36
- Promise.all(nfts.map((nft) => core_1.PayloadHasher.hashAsync(nft))),
37
- // Insert them into the archivist if we have one
38
- archivist ? archivist.insert(nfts) : NoOp,
39
- ]);
40
- const payload = Object.assign(Object.assign({}, info), { metrics, schema: crypto_nft_collection_payload_plugin_1.NftCollectionSchema, sources, total });
41
- return payload;
42
- })));
43
- return observations.flat();
44
- });
45
- }
46
- }
47
- exports.CryptoNftCollectionWitness = CryptoNftCollectionWitness;
48
- CryptoNftCollectionWitness.configSchemas = [crypto_nft_collection_payload_plugin_1.NftCollectionWitnessConfigSchema];
49
- //# sourceMappingURL=Witness.js.map
@@ -1 +0,0 @@
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,kEAA2B,CAAC,mCAAI,EAAE,CAAA;YACnE,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"}
package/dist/cjs/index.js DELETED
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CryptoNftCollectionWitnessPlugin = void 0;
4
- const tslib_1 = require("tslib");
5
- const Plugin_1 = require("./Plugin");
6
- Object.defineProperty(exports, "CryptoNftCollectionWitnessPlugin", { enumerable: true, get: function () { return Plugin_1.CryptoNftCollectionWitnessPlugin; } });
7
- tslib_1.__exportStar(require("./lib"), exports);
8
- tslib_1.__exportStar(require("./Witness"), exports);
9
- // eslint-disable-next-line import/no-default-export
10
- exports.default = Plugin_1.CryptoNftCollectionWitnessPlugin;
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qCAA2D;AAKlD,iHALA,yCAAgC,OAKA;AAHzC,gDAAqB;AACrB,oDAAyB;AAIzB,oDAAoD;AACpD,kBAAe,yCAAgC,CAAA"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNftCollectionMetrics = void 0;
4
- const lib_1 = require("./lib");
5
- const getNftCollectionMetrics = (nfts) => {
6
- const traits = nfts
7
- .map((nft) => { var _a; return (_a = nft === null || nft === void 0 ? void 0 : nft.metadata) === null || _a === void 0 ? void 0 : _a.attributes; })
8
- .filter((v) => v !== undefined)
9
- .map((attributes) => {
10
- return Object.fromEntries(attributes.map((attribute) => [attribute.trait_type, attribute.value]));
11
- });
12
- const distribution = (0, lib_1.calculateAllPropertiesDistribution)(traits);
13
- const n = nfts.length;
14
- const attributes = Object.fromEntries(Object.entries(distribution)
15
- .filter((v) => v[1] !== undefined)
16
- .map(([trait, entries]) => {
17
- const traitCount = Object.values(entries).reduce((prev, curr) => prev + curr, 0);
18
- const { p } = (0, lib_1.calculateBinomialParamsFromProbability)(nfts.length, traitCount / n);
19
- const values = Object.fromEntries(Object.entries(entries).map(([value, traitValueCount]) => {
20
- const { p } = (0, lib_1.calculateBinomialParamsFromProbability)(n, traitValueCount / n);
21
- const metrics = { binomial: { p }, count: traitValueCount };
22
- return [value, metrics];
23
- }));
24
- return [trait, { metrics: { binomial: { p }, count: traitCount }, values }];
25
- }));
26
- return { metadata: { attributes } };
27
- };
28
- exports.getNftCollectionMetrics = getNftCollectionMetrics;
29
- //# sourceMappingURL=getNftCollectionMetrics.js.map
@@ -1 +0,0 @@
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,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./getNftCollectionMetrics"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/collectionMetrics/index.ts"],"names":[],"mappings":";;;AAAA,oEAAyC"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateAllPropertiesDistribution = void 0;
4
- const calculateAllPropertiesDistribution = (array) => {
5
- const distribution = {};
6
- array.forEach((item) => {
7
- for (const property in item) {
8
- if (Object.prototype.hasOwnProperty.call(item, property)) {
9
- const value = item[property];
10
- if (value !== undefined && value !== null) {
11
- const valueString = value.toString();
12
- if (!distribution[property]) {
13
- distribution[property] = { [valueString]: 1 };
14
- }
15
- else if (!distribution[property][valueString]) {
16
- ;
17
- distribution[property][valueString] = 1;
18
- }
19
- else {
20
- ;
21
- distribution[property][valueString] += 1;
22
- }
23
- }
24
- }
25
- }
26
- });
27
- return distribution;
28
- };
29
- exports.calculateAllPropertiesDistribution = calculateAllPropertiesDistribution;
30
- //# sourceMappingURL=calculateAllPropertiesDistribution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateAllPropertiesDistribution.js","sourceRoot":"","sources":["../../../../../src/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.ts"],"names":[],"mappings":";;;AAEO,MAAM,kCAAkC,GAAG,CAAI,KAAU,EAAmB,EAAE;IACnF,MAAM,YAAY,GAAoB,EAAE,CAAA;IAExC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE;YAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAmB,CAAC,CAAA;gBACvC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;oBACzC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;oBACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;wBAC3B,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAA;qBAC9C;yBAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAE,CAAC,WAAW,CAAC,EAAE;wBAChD,CAAC;wBAAC,YAAY,CAAC,QAAQ,CAA4B,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;qBACrE;yBAAM;wBACL,CAAC;wBAAC,YAAY,CAAC,QAAQ,CAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;qBACtE;iBACF;aACF;SACF;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAtBY,QAAA,kCAAkC,sCAsB9C"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculatePropertyDistribution = void 0;
4
- const calculatePropertyDistribution = (array, property) => {
5
- const distribution = {};
6
- array.forEach((item) => {
7
- const value = item[property];
8
- if (value !== undefined && value !== null) {
9
- const valueString = value.toString();
10
- if (!distribution[property]) {
11
- distribution[property] = { [valueString]: 1 };
12
- }
13
- else if (!distribution[property][valueString]) {
14
- ;
15
- distribution[property][valueString] = 1;
16
- }
17
- else {
18
- ;
19
- distribution[property][valueString] += 1;
20
- }
21
- }
22
- });
23
- return distribution;
24
- };
25
- exports.calculatePropertyDistribution = calculatePropertyDistribution;
26
- //# sourceMappingURL=calculatePropertyDistribution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculatePropertyDistribution.js","sourceRoot":"","sources":["../../../../../src/lib/collectionMetrics/lib/calculatePropertyDistribution.ts"],"names":[],"mappings":";;;AAEO,MAAM,6BAA6B,GAAG,CAAI,KAAU,EAAE,QAAiB,EAAmB,EAAE;IACjG,MAAM,YAAY,GAAoB,EAAE,CAAA;IACxC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACzC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;YACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;gBAC3B,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAA;aAC9C;iBAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAE,CAAC,WAAW,CAAC,EAAE;gBAChD,CAAC;gBAAC,YAAY,CAAC,QAAQ,CAA4B,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;aACrE;iBAAM;gBACL,CAAC;gBAAC,YAAY,CAAC,QAAQ,CAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;aACtE;SACF;IACH,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAhBY,QAAA,6BAA6B,iCAgBzC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=distribution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../../../../src/lib/collectionMetrics/lib/distribution.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./calculateAllPropertiesDistribution"), exports);
5
- tslib_1.__exportStar(require("./distribution"), exports);
6
- tslib_1.__exportStar(require("./probabilityDistributions"), exports);
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/collectionMetrics/lib/index.ts"],"names":[],"mappings":";;;AAAA,+EAAoD;AACpD,yDAA8B;AAC9B,qEAA0C"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateBinomialParamsFromOutcomes = void 0;
4
- /**
5
- * Calculates the parameters of a binomial distribution given a list of outcomes
6
- * @param outcomes List of outcomes, where 1 is a success and 0 is a failure
7
- * @returns The mean, standard deviation, and variance of the binomial distribution
8
- */
9
- const calculateBinomialParamsFromOutcomes = (outcomes) => {
10
- const n = outcomes.length;
11
- // Calculate p: the proportion of successes
12
- const sum = outcomes.reduce((acc, value) => acc + value, 0);
13
- const p = sum / n;
14
- // Mean (µ)
15
- const mean = n * p;
16
- // Variance (σ^2)
17
- const variance = n * p * (1 - p);
18
- // Standard Deviation (σ)
19
- const stdDev = Math.sqrt(variance);
20
- return { mean, p, stdDev, variance };
21
- };
22
- exports.calculateBinomialParamsFromOutcomes = calculateBinomialParamsFromOutcomes;
23
- //# sourceMappingURL=calculateBinomialParamsFromOutcomes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateBinomialParamsFromOutcomes.js","sourceRoot":"","sources":["../../../../../../../src/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,mCAAmC,GAAG,CAAC,QAAkB,EAAkC,EAAE;IACxG,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAA;IACzB,2CAA2C;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;IACjB,WAAW;IACX,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAClB,iBAAiB;IACjB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAChC,yBAAyB;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AACtC,CAAC,CAAA;AAZY,QAAA,mCAAmC,uCAY/C"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateBinomialParamsFromProbability = void 0;
4
- /**
5
- * Calculates the parameters of a binomial distribution given the number of trials and success probability
6
- * @param n Number of trials
7
- * @param p Success probability
8
- * @returns The binomial distribution parameters
9
- */
10
- const calculateBinomialParamsFromProbability = (n, p) => {
11
- // Mean (µ)
12
- const mean = n * p;
13
- // Variance (σ^2)
14
- const variance = n * p * (1 - p);
15
- // Standard Deviation (σ)
16
- const stdDev = Math.sqrt(variance);
17
- return { mean, p, stdDev, variance };
18
- };
19
- exports.calculateBinomialParamsFromProbability = calculateBinomialParamsFromProbability;
20
- //# sourceMappingURL=calculateBinomialParamsFromProbability.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateBinomialParamsFromProbability.js","sourceRoot":"","sources":["../../../../../../../src/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACI,MAAM,sCAAsC,GAAG,CAAC,CAAS,EAAE,CAAS,EAAkC,EAAE;IAC7G,WAAW;IACX,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAElB,iBAAiB;IACjB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAEhC,yBAAyB;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAElC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AACtC,CAAC,CAAA;AAXY,QAAA,sCAAsC,0CAWlD"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./calculateBinomialParamsFromOutcomes"), exports);
5
- tslib_1.__exportStar(require("./calculateBinomialParamsFromProbability"), exports);
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.ts"],"names":[],"mappings":";;;AAAA,gFAAqD;AACrD,mFAAwD"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./binomial"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/lib/collectionMetrics/lib/probabilityDistributions/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0B"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNftCollectionCount = void 0;
4
- const tslib_1 = require("tslib");
5
- const sdk_1 = require("@infura/sdk");
6
- const nonEvaluableContractAddresses_1 = require("./nonEvaluableContractAddresses");
7
- const getNftCollectionCount = (
8
- /**
9
- * The address of the NFT contract to search for
10
- */
11
- contractAddress,
12
- /**
13
- * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on
14
- */
15
- chainId,
16
- // /**
17
- // * The ethers provider to use to search for NFTs
18
- // */
19
- // provider: ExternalProvider | JsonRpcFetchFunc,
20
- /**
21
- * The private key of the wallet to use to search for NFTs
22
- */
23
- privateKey) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
24
- if (nonEvaluableContractAddresses_1.nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
25
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
26
- }
27
- 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
- const opts = { contractAddress };
29
- const { total } = yield sdk.api.getNFTsForCollection(opts);
30
- return total;
31
- });
32
- exports.getNftCollectionCount = getNftCollectionCount;
33
- //# sourceMappingURL=getNftCollectionCount.js.map
@@ -1 +0,0 @@
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,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNftCollectionMetadata = void 0;
4
- const tslib_1 = require("tslib");
5
- const sdk_1 = require("@infura/sdk");
6
- const crypto_nft_payload_plugin_1 = require("@xyo-network/crypto-nft-payload-plugin");
7
- const nonEvaluableContractAddresses_1 = require("./nonEvaluableContractAddresses");
8
- const getNftCollectionMetadata = (
9
- /**
10
- * The address of the NFT contract to search for
11
- */
12
- contractAddress,
13
- /**
14
- * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on
15
- */
16
- chainId,
17
- // /**
18
- // * The ethers provider to use to search for NFTs
19
- // */
20
- // provider: ExternalProvider | JsonRpcFetchFunc,
21
- /**
22
- * The private key of the wallet to use to search for NFTs
23
- */
24
- privateKey) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
25
- if (nonEvaluableContractAddresses_1.nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
26
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
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 }));
29
- const opts = { contractAddress };
30
- const { name, symbol, tokenType } = yield sdk.api.getContractMetadata(opts);
31
- const type = (0, crypto_nft_payload_plugin_1.toTokenType)(tokenType);
32
- return { address: contractAddress, chainId, name, symbol, type };
33
- });
34
- exports.getNftCollectionMetadata = getNftCollectionMetadata;
35
- //# sourceMappingURL=getNftCollectionMetadata.js.map
@@ -1 +0,0 @@
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"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNftCollectionNfts = void 0;
4
- const tslib_1 = require("tslib");
5
- const sdk_1 = require("@infura/sdk");
6
- const crypto_nft_payload_plugin_1 = require("@xyo-network/crypto-nft-payload-plugin");
7
- const nonEvaluableContractAddresses_1 = require("./nonEvaluableContractAddresses");
8
- const getNftCollectionNfts = (
9
- /**
10
- * The address of the NFT contract to search for
11
- */
12
- contractAddress,
13
- /**
14
- * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on
15
- */
16
- chainId,
17
- // /**
18
- // * The ethers provider to use to search for NFTs
19
- // */
20
- // provider: ExternalProvider | JsonRpcFetchFunc,
21
- /**
22
- * The private key of the wallet to use to search for NFTs
23
- */
24
- privateKey,
25
- /**
26
- * The maximum number of NFTs to return. Configurable to prevent
27
- * large wallets from exhausting Infura API credits. Ideally a
28
- * multiple of 100 as that appears to be the default page size.
29
- */
30
- maxNfts = 100) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
31
- if (nonEvaluableContractAddresses_1.nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
32
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
33
- }
34
- const sdk = new sdk_1.SDK(new sdk_1.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
35
- const nfts = [];
36
- let cursor = undefined;
37
- do {
38
- const opts = { contractAddress, cursor };
39
- const { cursor: nextCursor, pageSize, total, assets } = yield sdk.api.getNFTsForCollection(opts);
40
- const batch = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
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);
44
- });
45
- nfts.push(...batch);
46
- cursor = nextCursor;
47
- if (nfts.length >= total || !cursor)
48
- break;
49
- } while (nfts.length < maxNfts);
50
- return nfts.map((nft) => {
51
- return Object.assign(Object.assign({}, nft), { schema: crypto_nft_payload_plugin_1.NftSchema });
52
- });
53
- });
54
- exports.getNftCollectionNfts = getNftCollectionNfts;
55
- //# sourceMappingURL=getNftCollectionNfts.js.map
@@ -1 +0,0 @@
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"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./collectionMetrics"), exports);
5
- tslib_1.__exportStar(require("./getNftCollectionCount"), exports);
6
- tslib_1.__exportStar(require("./getNftCollectionMetadata"), exports);
7
- tslib_1.__exportStar(require("./getNftCollectionNfts"), exports);
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,8DAAmC;AACnC,kEAAuC;AACvC,qEAA0C;AAC1C,iEAAsC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nonEvaluableContractAddresses = void 0;
4
- /**
5
- * These contracts are not evaluable for some
6
- * reason (too large, nonsensical, etc.)
7
- */
8
- exports.nonEvaluableContractAddresses = [
9
- // ENS
10
- '0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72',
11
- ].map((address) => address.toUpperCase());
12
- //# sourceMappingURL=nonEvaluableContractAddresses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nonEvaluableContractAddresses.js","sourceRoot":"","sources":["../../../src/lib/nonEvaluableContractAddresses.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,6BAA6B,GAAG;IAC3C,MAAM;IACN,4CAA4C;CAC7C,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA"}
@@ -1,11 +0,0 @@
1
- import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin';
2
- import { PayloadSetSchema } from '@xyo-network/payload-model';
3
- import { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin';
4
- import { CryptoNftCollectionWitness } from './Witness';
5
- export const CryptoNftCollectionWitnessPlugin = () => createPayloadSetWitnessPlugin({ required: { [NftSchema]: 1 }, schema: PayloadSetSchema }, {
6
- witness: async (params) => {
7
- const result = await CryptoNftCollectionWitness.create(params);
8
- return result;
9
- },
10
- });
11
- //# sourceMappingURL=Plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAA;AAE9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAEtD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,EAAE,CACnD,6BAA6B,CAC3B,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC1D;IACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9D,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CACF,CAAA"}
@@ -1,41 +0,0 @@
1
- import { assertEx } from '@xylabs/assert';
2
- import { PayloadHasher } from '@xyo-network/core';
3
- import { isNftCollectionWitnessQuery, NftCollectionSchema, NftCollectionWitnessConfigSchema, } from '@xyo-network/crypto-nft-collection-payload-plugin';
4
- import { AbstractWitness } from '@xyo-network/witness';
5
- import { getNftCollectionCount, getNftCollectionMetadata, getNftCollectionMetrics, getNftCollectionNfts } from './lib';
6
- const defaultMaxNfts = 100;
7
- /**
8
- * A "no operation" Promise to be used
9
- * when no action is desired but a Promise
10
- * is required to be returned
11
- */
12
- const NoOp = Promise.resolve();
13
- export class CryptoNftCollectionWitness extends AbstractWitness {
14
- static configSchemas = [NftCollectionWitnessConfigSchema];
15
- async observeHandler(payloads) {
16
- await this.started('throw');
17
- const queries = payloads?.filter(isNftCollectionWitnessQuery) ?? [];
18
- const observations = await Promise.all(queries.map(async (query) => {
19
- const address = assertEx(query?.address || this.config.address, 'params.address is required');
20
- const chainId = assertEx(query?.chainId || this.config.chainId, 'params.chainId is required');
21
- const maxNfts = query?.maxNfts || defaultMaxNfts;
22
- const [info, total, nfts, archivist] = await Promise.all([
23
- getNftCollectionMetadata(address, chainId, this.account.private.hex),
24
- getNftCollectionCount(address, chainId, this.account.private.hex),
25
- getNftCollectionNfts(address, chainId, this.account.private.hex, maxNfts),
26
- this.writeArchivist(),
27
- ]);
28
- const metrics = getNftCollectionMetrics(nfts);
29
- const [sources] = await Promise.all([
30
- // Hash all the payloads
31
- Promise.all(nfts.map((nft) => PayloadHasher.hashAsync(nft))),
32
- // Insert them into the archivist if we have one
33
- archivist ? archivist.insert(nfts) : NoOp,
34
- ]);
35
- const payload = { ...info, metrics, schema: NftCollectionSchema, sources, total };
36
- return payload;
37
- }));
38
- return observations.flat();
39
- }
40
- }
41
- //# sourceMappingURL=Witness.js.map
@@ -1 +0,0 @@
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,2BAA2B,EAE3B,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,2BAA2B,CAAC,IAAI,EAAE,CAAA;QACnE,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"}
package/dist/esm/index.js DELETED
@@ -1,7 +0,0 @@
1
- import { CryptoNftCollectionWitnessPlugin } from './Plugin';
2
- export * from './lib';
3
- export * from './Witness';
4
- export { CryptoNftCollectionWitnessPlugin };
5
- // eslint-disable-next-line import/no-default-export
6
- export default CryptoNftCollectionWitnessPlugin;
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAA;AAE3D,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,gCAAgC,EAAE,CAAA;AAE3C,oDAAoD;AACpD,eAAe,gCAAgC,CAAA"}
@@ -1,25 +0,0 @@
1
- import { calculateAllPropertiesDistribution, calculateBinomialParamsFromProbability } from './lib';
2
- export const getNftCollectionMetrics = (nfts) => {
3
- const traits = nfts
4
- .map((nft) => nft?.metadata?.attributes)
5
- .filter((v) => v !== undefined)
6
- .map((attributes) => {
7
- return Object.fromEntries(attributes.map((attribute) => [attribute.trait_type, attribute.value]));
8
- });
9
- const distribution = calculateAllPropertiesDistribution(traits);
10
- const n = nfts.length;
11
- const attributes = Object.fromEntries(Object.entries(distribution)
12
- .filter((v) => v[1] !== undefined)
13
- .map(([trait, entries]) => {
14
- const traitCount = Object.values(entries).reduce((prev, curr) => prev + curr, 0);
15
- const { p } = calculateBinomialParamsFromProbability(nfts.length, traitCount / n);
16
- const values = Object.fromEntries(Object.entries(entries).map(([value, traitValueCount]) => {
17
- const { p } = calculateBinomialParamsFromProbability(n, traitValueCount / n);
18
- const metrics = { binomial: { p }, count: traitValueCount };
19
- return [value, metrics];
20
- }));
21
- return [trait, { metrics: { binomial: { p }, count: traitCount }, values }];
22
- }));
23
- return { metadata: { attributes } };
24
- };
25
- //# sourceMappingURL=getNftCollectionMetrics.js.map
@@ -1 +0,0 @@
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,2 +0,0 @@
1
- export * from './getNftCollectionMetrics';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/collectionMetrics/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
@@ -1,26 +0,0 @@
1
- export const calculateAllPropertiesDistribution = (array) => {
2
- const distribution = {};
3
- array.forEach((item) => {
4
- for (const property in item) {
5
- if (Object.prototype.hasOwnProperty.call(item, property)) {
6
- const value = item[property];
7
- if (value !== undefined && value !== null) {
8
- const valueString = value.toString();
9
- if (!distribution[property]) {
10
- distribution[property] = { [valueString]: 1 };
11
- }
12
- else if (!distribution[property][valueString]) {
13
- ;
14
- distribution[property][valueString] = 1;
15
- }
16
- else {
17
- ;
18
- distribution[property][valueString] += 1;
19
- }
20
- }
21
- }
22
- }
23
- });
24
- return distribution;
25
- };
26
- //# sourceMappingURL=calculateAllPropertiesDistribution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateAllPropertiesDistribution.js","sourceRoot":"","sources":["../../../../../src/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAI,KAAU,EAAmB,EAAE;IACnF,MAAM,YAAY,GAAoB,EAAE,CAAA;IAExC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE;YAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;gBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAmB,CAAC,CAAA;gBACvC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;oBACzC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;oBACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;wBAC3B,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAA;qBAC9C;yBAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAE,CAAC,WAAW,CAAC,EAAE;wBAChD,CAAC;wBAAC,YAAY,CAAC,QAAQ,CAA4B,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;qBACrE;yBAAM;wBACL,CAAC;wBAAC,YAAY,CAAC,QAAQ,CAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;qBACtE;iBACF;aACF;SACF;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}