@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.
- package/dist/docs.json +66 -66
- package/dist/index.d.mts +82 -0
- package/dist/index.d.ts +82 -0
- package/dist/index.js +219 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +191 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +37 -24
- package/tsup.config.ts +16 -0
- package/dist/cjs/Plugin.js +0 -16
- package/dist/cjs/Plugin.js.map +0 -1
- package/dist/cjs/Witness.js +0 -49
- package/dist/cjs/Witness.js.map +0 -1
- package/dist/cjs/index.js +0 -11
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/getNftCollectionMetrics.js +0 -29
- package/dist/cjs/lib/collectionMetrics/getNftCollectionMetrics.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/index.js +0 -5
- package/dist/cjs/lib/collectionMetrics/index.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js +0 -30
- package/dist/cjs/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/lib/calculatePropertyDistribution.js +0 -26
- package/dist/cjs/lib/collectionMetrics/lib/calculatePropertyDistribution.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/lib/distribution.js +0 -3
- package/dist/cjs/lib/collectionMetrics/lib/distribution.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/lib/index.js +0 -7
- package/dist/cjs/lib/collectionMetrics/lib/index.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js +0 -23
- package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js +0 -20
- package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js +0 -6
- package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js.map +0 -1
- package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/index.js +0 -5
- package/dist/cjs/lib/collectionMetrics/lib/probabilityDistributions/index.js.map +0 -1
- package/dist/cjs/lib/getNftCollectionCount.js +0 -33
- package/dist/cjs/lib/getNftCollectionCount.js.map +0 -1
- package/dist/cjs/lib/getNftCollectionMetadata.js +0 -35
- package/dist/cjs/lib/getNftCollectionMetadata.js.map +0 -1
- package/dist/cjs/lib/getNftCollectionNfts.js +0 -55
- package/dist/cjs/lib/getNftCollectionNfts.js.map +0 -1
- package/dist/cjs/lib/index.js +0 -8
- package/dist/cjs/lib/index.js.map +0 -1
- package/dist/cjs/lib/nonEvaluableContractAddresses.js +0 -12
- package/dist/cjs/lib/nonEvaluableContractAddresses.js.map +0 -1
- package/dist/esm/Plugin.js +0 -11
- package/dist/esm/Plugin.js.map +0 -1
- package/dist/esm/Witness.js +0 -41
- package/dist/esm/Witness.js.map +0 -1
- package/dist/esm/index.js +0 -7
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/getNftCollectionMetrics.js +0 -25
- package/dist/esm/lib/collectionMetrics/getNftCollectionMetrics.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/index.js +0 -2
- package/dist/esm/lib/collectionMetrics/index.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js +0 -26
- package/dist/esm/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/lib/calculatePropertyDistribution.js +0 -22
- package/dist/esm/lib/collectionMetrics/lib/calculatePropertyDistribution.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/lib/distribution.js +0 -2
- package/dist/esm/lib/collectionMetrics/lib/distribution.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/lib/index.js +0 -4
- package/dist/esm/lib/collectionMetrics/lib/index.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js +0 -19
- package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js +0 -16
- package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js +0 -3
- package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js.map +0 -1
- package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/index.js +0 -2
- package/dist/esm/lib/collectionMetrics/lib/probabilityDistributions/index.js.map +0 -1
- package/dist/esm/lib/getNftCollectionCount.js +0 -28
- package/dist/esm/lib/getNftCollectionCount.js.map +0 -1
- package/dist/esm/lib/getNftCollectionMetadata.js +0 -30
- package/dist/esm/lib/getNftCollectionMetadata.js.map +0 -1
- package/dist/esm/lib/getNftCollectionNfts.js +0 -50
- package/dist/esm/lib/getNftCollectionNfts.js.map +0 -1
- package/dist/esm/lib/index.js +0 -5
- package/dist/esm/lib/index.js.map +0 -1
- package/dist/esm/lib/nonEvaluableContractAddresses.js +0 -9
- package/dist/esm/lib/nonEvaluableContractAddresses.js.map +0 -1
- package/dist/types/Plugin.d.ts +0 -56
- package/dist/types/Plugin.d.ts.map +0 -1
- package/dist/types/Witness.d.ts +0 -10
- package/dist/types/Witness.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -6
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/getNftCollectionMetrics.d.ts +0 -4
- package/dist/types/lib/collectionMetrics/getNftCollectionMetrics.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/index.d.ts +0 -2
- package/dist/types/lib/collectionMetrics/index.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts +0 -3
- package/dist/types/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts +0 -3
- package/dist/types/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/lib/distribution.d.ts +0 -6
- package/dist/types/lib/collectionMetrics/lib/distribution.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/lib/index.d.ts +0 -4
- package/dist/types/lib/collectionMetrics/lib/index.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts +0 -8
- package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts +0 -9
- package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts +0 -3
- package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts.map +0 -1
- package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/index.d.ts +0 -2
- package/dist/types/lib/collectionMetrics/lib/probabilityDistributions/index.d.ts.map +0 -1
- package/dist/types/lib/getNftCollectionCount.d.ts +0 -2
- package/dist/types/lib/getNftCollectionCount.d.ts.map +0 -1
- package/dist/types/lib/getNftCollectionMetadata.d.ts +0 -3
- package/dist/types/lib/getNftCollectionMetadata.d.ts.map +0 -1
- package/dist/types/lib/getNftCollectionNfts.d.ts +0 -3
- package/dist/types/lib/getNftCollectionNfts.d.ts.map +0 -1
- package/dist/types/lib/index.d.ts +0 -5
- package/dist/types/lib/index.d.ts.map +0 -1
- package/dist/types/lib/nonEvaluableContractAddresses.d.ts +0 -6
- package/dist/types/lib/nonEvaluableContractAddresses.d.ts.map +0 -1
package/dist/cjs/Witness.js
DELETED
|
@@ -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
|
package/dist/cjs/Witness.js.map
DELETED
|
@@ -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
|
package/dist/cjs/index.js.map
DELETED
|
@@ -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 +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 +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 +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"}
|
package/dist/cjs/lib/index.js
DELETED
|
@@ -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"}
|
package/dist/esm/Plugin.js
DELETED
|
@@ -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
|
package/dist/esm/Plugin.js.map
DELETED
|
@@ -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"}
|
package/dist/esm/Witness.js
DELETED
|
@@ -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
|
package/dist/esm/Witness.js.map
DELETED
|
@@ -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
|
package/dist/esm/index.js.map
DELETED
|
@@ -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 +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"}
|