@xyo-network/crypto-nft-collection-witness-plugin 2.74.5 → 2.75.2
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/browser/Plugin.cjs +199 -0
- package/dist/browser/Plugin.cjs.map +1 -0
- package/dist/browser/Plugin.d.cts.map +1 -0
- package/dist/browser/Plugin.d.mts.map +1 -0
- package/dist/browser/Plugin.d.ts +56 -0
- package/dist/browser/Plugin.d.ts.map +1 -0
- package/dist/browser/Plugin.js +17 -0
- package/dist/browser/Plugin.js.map +1 -0
- package/dist/browser/Witness.cjs +183 -0
- package/dist/browser/Witness.cjs.map +1 -0
- package/dist/browser/Witness.d.cts.map +1 -0
- package/dist/browser/Witness.d.mts.map +1 -0
- package/dist/browser/Witness.d.ts +10 -0
- package/dist/browser/Witness.d.ts.map +1 -0
- package/dist/browser/Witness.js +45 -0
- package/dist/browser/Witness.js.map +1 -0
- package/dist/{index.js → browser/index.cjs} +1 -10
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts +6 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +9 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.cjs +83 -0
- package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.d.ts +4 -0
- package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.js +27 -0
- package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/index.cjs +83 -0
- package/dist/browser/lib/collectionMetrics/index.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/index.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/index.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/index.d.ts +2 -0
- package/dist/browser/lib/collectionMetrics/index.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/index.js +2 -0
- package/dist/browser/lib/collectionMetrics/index.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.cjs +49 -0
- package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts +3 -0
- package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js +27 -0
- package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.cjs +45 -0
- package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts +3 -0
- package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.js +23 -0
- package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/distribution.cjs +19 -0
- package/dist/browser/lib/collectionMetrics/lib/distribution.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/distribution.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/distribution.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/distribution.d.ts +6 -0
- package/dist/browser/lib/collectionMetrics/lib/distribution.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/distribution.js +1 -0
- package/dist/browser/lib/collectionMetrics/lib/distribution.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/index.cjs +72 -0
- package/dist/browser/lib/collectionMetrics/lib/index.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/index.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/index.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/index.d.ts +4 -0
- package/dist/browser/lib/collectionMetrics/lib/index.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/index.js +4 -0
- package/dist/browser/lib/collectionMetrics/lib/index.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.cjs +35 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts +8 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js +13 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.cjs +32 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts +9 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js +10 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.cjs +46 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.cts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.mts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts +3 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js +3 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.cjs +46 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.cjs.map +1 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.d.cts.map +1 -0
- package/dist/{lib/collectionMetrics/lib/probabilityDistributions/binomial → browser/lib/collectionMetrics/lib/probabilityDistributions}/index.d.mts.map +1 -1
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.d.ts +2 -0
- package/dist/{lib/collectionMetrics/lib/probabilityDistributions/binomial → browser/lib/collectionMetrics/lib/probabilityDistributions}/index.d.ts.map +1 -1
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.js +2 -0
- package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.js.map +1 -0
- package/dist/browser/lib/getNftCollectionCount.cjs +44 -0
- package/dist/browser/lib/getNftCollectionCount.cjs.map +1 -0
- package/dist/browser/lib/getNftCollectionCount.d.cts.map +1 -0
- package/dist/browser/lib/getNftCollectionCount.d.mts.map +1 -0
- package/dist/browser/lib/getNftCollectionCount.d.ts +2 -0
- package/dist/browser/lib/getNftCollectionCount.d.ts.map +1 -0
- package/dist/browser/lib/getNftCollectionCount.js +15 -0
- package/dist/browser/lib/getNftCollectionCount.js.map +1 -0
- package/dist/browser/lib/getNftCollectionMetadata.cjs +46 -0
- package/dist/browser/lib/getNftCollectionMetadata.cjs.map +1 -0
- package/dist/browser/lib/getNftCollectionMetadata.d.cts.map +1 -0
- package/dist/browser/lib/getNftCollectionMetadata.d.mts.map +1 -0
- package/dist/browser/lib/getNftCollectionMetadata.d.ts +3 -0
- package/dist/browser/lib/getNftCollectionMetadata.d.ts.map +1 -0
- package/dist/browser/lib/getNftCollectionMetadata.js +17 -0
- package/dist/browser/lib/getNftCollectionMetadata.js.map +1 -0
- package/dist/browser/lib/getNftCollectionNfts.cjs +60 -0
- package/dist/browser/lib/getNftCollectionNfts.cjs.map +1 -0
- package/dist/browser/lib/getNftCollectionNfts.d.cts.map +1 -0
- package/dist/browser/lib/getNftCollectionNfts.d.mts.map +1 -0
- package/dist/browser/lib/getNftCollectionNfts.d.ts +3 -0
- package/dist/browser/lib/getNftCollectionNfts.d.ts.map +1 -0
- package/dist/browser/lib/getNftCollectionNfts.js +31 -0
- package/dist/browser/lib/getNftCollectionNfts.js.map +1 -0
- package/dist/browser/lib/index.cjs +148 -0
- package/dist/browser/lib/index.cjs.map +1 -0
- package/dist/browser/lib/index.d.cts.map +1 -0
- package/dist/browser/lib/index.d.mts.map +1 -0
- package/dist/browser/lib/index.d.ts +5 -0
- package/dist/browser/lib/index.d.ts.map +1 -0
- package/dist/browser/lib/index.js +5 -0
- package/dist/browser/lib/index.js.map +1 -0
- package/dist/browser/lib/nonEvaluableContractAddresses.cjs +30 -0
- package/dist/browser/lib/nonEvaluableContractAddresses.cjs.map +1 -0
- package/dist/browser/lib/nonEvaluableContractAddresses.d.cts.map +1 -0
- package/dist/browser/lib/nonEvaluableContractAddresses.d.mts.map +1 -0
- package/dist/browser/lib/nonEvaluableContractAddresses.d.ts +6 -0
- package/dist/browser/lib/nonEvaluableContractAddresses.d.ts.map +1 -0
- package/dist/browser/lib/nonEvaluableContractAddresses.js +8 -0
- package/dist/browser/lib/nonEvaluableContractAddresses.js.map +1 -0
- package/dist/docs.json +558 -558
- package/dist/node/Plugin.d.cts +56 -0
- package/dist/node/Plugin.d.cts.map +1 -0
- package/dist/node/Plugin.d.mts +56 -0
- package/dist/node/Plugin.d.mts.map +1 -0
- package/dist/node/Plugin.d.ts +56 -0
- package/dist/node/Plugin.d.ts.map +1 -0
- package/dist/node/Plugin.js +206 -0
- package/dist/node/Plugin.js.map +1 -0
- package/dist/node/Plugin.mjs +185 -0
- package/dist/node/Plugin.mjs.map +1 -0
- package/dist/node/Witness.d.cts +10 -0
- package/dist/node/Witness.d.cts.map +1 -0
- package/dist/node/Witness.d.mts +10 -0
- package/dist/node/Witness.d.mts.map +1 -0
- package/dist/node/Witness.d.ts +10 -0
- package/dist/node/Witness.d.ts.map +1 -0
- package/dist/node/Witness.js +190 -0
- package/dist/node/Witness.js.map +1 -0
- package/dist/node/Witness.mjs +169 -0
- package/dist/node/Witness.mjs.map +1 -0
- package/dist/node/index.d.cts +6 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.mts +6 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +6 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +222 -0
- package/dist/node/index.js.map +1 -0
- package/dist/{index.mjs → node/index.mjs} +8 -5
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.d.cts +4 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.d.mts +4 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.d.ts +4 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.js +90 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.js.map +1 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.mjs +63 -0
- package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/index.d.cts +2 -0
- package/dist/node/lib/collectionMetrics/index.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/index.d.mts +2 -0
- package/dist/node/lib/collectionMetrics/index.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/index.d.ts +2 -0
- package/dist/node/lib/collectionMetrics/index.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/index.js +90 -0
- package/dist/node/lib/collectionMetrics/index.js.map +1 -0
- package/dist/node/lib/collectionMetrics/index.mjs +63 -0
- package/dist/node/lib/collectionMetrics/index.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.cts +3 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.mts +3 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts +3 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js +53 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.mjs +28 -0
- package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.d.cts +3 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.d.mts +3 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts +3 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.js +49 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.js.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.mjs +24 -0
- package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.d.cts +6 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.d.mts +6 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.d.ts +6 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.js +19 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.js.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.mjs +1 -0
- package/dist/node/lib/collectionMetrics/lib/distribution.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/index.d.cts +4 -0
- package/dist/node/lib/collectionMetrics/lib/index.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/index.d.mts +4 -0
- package/dist/node/lib/collectionMetrics/lib/index.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/index.d.ts +4 -0
- package/dist/node/lib/collectionMetrics/lib/index.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/index.js +78 -0
- package/dist/node/lib/collectionMetrics/lib/index.js.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/index.mjs +49 -0
- package/dist/node/lib/collectionMetrics/lib/index.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.cts +8 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.mts +8 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts +8 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js +39 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.mjs +14 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.cts +9 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.mts +9 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts +9 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js +36 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.mjs +11 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.cts +3 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.mts +3 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts +3 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js +51 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.mjs +23 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.mjs.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.d.cts +2 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.d.cts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.d.mts +2 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.d.mts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.d.ts +2 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.d.ts.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.js +51 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.js.map +1 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.mjs +23 -0
- package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.mjs.map +1 -0
- package/dist/node/lib/getNftCollectionCount.d.cts +2 -0
- package/dist/node/lib/getNftCollectionCount.d.cts.map +1 -0
- package/dist/node/lib/getNftCollectionCount.d.mts +2 -0
- package/dist/node/lib/getNftCollectionCount.d.mts.map +1 -0
- package/dist/node/lib/getNftCollectionCount.d.ts +2 -0
- package/dist/node/lib/getNftCollectionCount.d.ts.map +1 -0
- package/dist/node/lib/getNftCollectionCount.js +48 -0
- package/dist/node/lib/getNftCollectionCount.js.map +1 -0
- package/dist/node/lib/getNftCollectionCount.mjs +23 -0
- package/dist/node/lib/getNftCollectionCount.mjs.map +1 -0
- package/dist/node/lib/getNftCollectionMetadata.d.cts +3 -0
- package/dist/node/lib/getNftCollectionMetadata.d.cts.map +1 -0
- package/dist/node/lib/getNftCollectionMetadata.d.mts +3 -0
- package/dist/node/lib/getNftCollectionMetadata.d.mts.map +1 -0
- package/dist/node/lib/getNftCollectionMetadata.d.ts +3 -0
- package/dist/node/lib/getNftCollectionMetadata.d.ts.map +1 -0
- package/dist/node/lib/getNftCollectionMetadata.js +50 -0
- package/dist/node/lib/getNftCollectionMetadata.js.map +1 -0
- package/dist/node/lib/getNftCollectionMetadata.mjs +25 -0
- package/dist/node/lib/getNftCollectionMetadata.mjs.map +1 -0
- package/dist/node/lib/getNftCollectionNfts.d.cts +3 -0
- package/dist/node/lib/getNftCollectionNfts.d.cts.map +1 -0
- package/dist/node/lib/getNftCollectionNfts.d.mts +3 -0
- package/dist/node/lib/getNftCollectionNfts.d.mts.map +1 -0
- package/dist/node/lib/getNftCollectionNfts.d.ts +3 -0
- package/dist/node/lib/getNftCollectionNfts.d.ts.map +1 -0
- package/dist/node/lib/getNftCollectionNfts.js +64 -0
- package/dist/node/lib/getNftCollectionNfts.js.map +1 -0
- package/dist/node/lib/getNftCollectionNfts.mjs +39 -0
- package/dist/node/lib/getNftCollectionNfts.mjs.map +1 -0
- package/dist/node/lib/index.d.cts +5 -0
- package/dist/node/lib/index.d.cts.map +1 -0
- package/dist/node/lib/index.d.mts +5 -0
- package/dist/node/lib/index.d.mts.map +1 -0
- package/dist/node/lib/index.d.ts +5 -0
- package/dist/node/lib/index.d.ts.map +1 -0
- package/dist/node/lib/index.js +158 -0
- package/dist/node/lib/index.js.map +1 -0
- package/dist/node/lib/index.mjs +128 -0
- package/dist/node/lib/index.mjs.map +1 -0
- package/dist/node/lib/nonEvaluableContractAddresses.d.cts +6 -0
- package/dist/node/lib/nonEvaluableContractAddresses.d.cts.map +1 -0
- package/dist/node/lib/nonEvaluableContractAddresses.d.mts +6 -0
- package/dist/node/lib/nonEvaluableContractAddresses.d.mts.map +1 -0
- package/dist/node/lib/nonEvaluableContractAddresses.d.ts +6 -0
- package/dist/node/lib/nonEvaluableContractAddresses.d.ts.map +1 -0
- package/dist/node/lib/nonEvaluableContractAddresses.js +34 -0
- package/dist/node/lib/nonEvaluableContractAddresses.js.map +1 -0
- package/dist/node/lib/nonEvaluableContractAddresses.mjs +9 -0
- package/dist/node/lib/nonEvaluableContractAddresses.mjs.map +1 -0
- package/package.json +33 -30
- package/dist/Plugin.d.mts.map +0 -1
- package/dist/Plugin.d.ts.map +0 -1
- package/dist/Witness.d.mts.map +0 -1
- package/dist/Witness.d.ts.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/lib/collectionMetrics/getNftCollectionMetrics.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/getNftCollectionMetrics.d.ts.map +0 -1
- package/dist/lib/collectionMetrics/index.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/index.d.ts.map +0 -1
- package/dist/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts.map +0 -1
- package/dist/lib/collectionMetrics/lib/calculatePropertyDistribution.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts.map +0 -1
- package/dist/lib/collectionMetrics/lib/distribution.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/lib/distribution.d.ts.map +0 -1
- package/dist/lib/collectionMetrics/lib/index.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/lib/index.d.ts.map +0 -1
- package/dist/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts.map +0 -1
- package/dist/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts.map +0 -1
- package/dist/lib/collectionMetrics/lib/probabilityDistributions/index.d.mts.map +0 -1
- package/dist/lib/collectionMetrics/lib/probabilityDistributions/index.d.ts.map +0 -1
- package/dist/lib/getNftCollectionCount.d.mts.map +0 -1
- package/dist/lib/getNftCollectionCount.d.ts.map +0 -1
- package/dist/lib/getNftCollectionMetadata.d.mts.map +0 -1
- package/dist/lib/getNftCollectionMetadata.d.ts.map +0 -1
- package/dist/lib/getNftCollectionNfts.d.mts.map +0 -1
- package/dist/lib/getNftCollectionNfts.d.ts.map +0 -1
- package/dist/lib/index.d.mts.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/nonEvaluableContractAddresses.d.mts.map +0 -1
- package/dist/lib/nonEvaluableContractAddresses.d.ts.map +0 -1
- /package/dist/{Plugin.d.mts → browser/Plugin.d.cts} +0 -0
- /package/dist/{Plugin.d.ts → browser/Plugin.d.mts} +0 -0
- /package/dist/{Witness.d.mts → browser/Witness.d.cts} +0 -0
- /package/dist/{Witness.d.ts → browser/Witness.d.mts} +0 -0
- /package/dist/{index.d.mts → browser/index.d.cts} +0 -0
- /package/dist/{index.d.ts → browser/index.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/getNftCollectionMetrics.d.mts → browser/lib/collectionMetrics/getNftCollectionMetrics.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/getNftCollectionMetrics.d.ts → browser/lib/collectionMetrics/getNftCollectionMetrics.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/index.d.mts → browser/lib/collectionMetrics/index.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/index.d.ts → browser/lib/collectionMetrics/index.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.mts → browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.ts → browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/calculatePropertyDistribution.d.mts → browser/lib/collectionMetrics/lib/calculatePropertyDistribution.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/calculatePropertyDistribution.d.ts → browser/lib/collectionMetrics/lib/calculatePropertyDistribution.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/distribution.d.mts → browser/lib/collectionMetrics/lib/distribution.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/distribution.d.ts → browser/lib/collectionMetrics/lib/distribution.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/index.d.mts → browser/lib/collectionMetrics/lib/index.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/index.d.ts → browser/lib/collectionMetrics/lib/index.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.mts → browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.ts → browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.mts → browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.ts → browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.mts → browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.ts → browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.d.mts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/probabilityDistributions/index.d.mts → browser/lib/collectionMetrics/lib/probabilityDistributions/index.d.cts} +0 -0
- /package/dist/{lib/collectionMetrics/lib/probabilityDistributions/index.d.ts → browser/lib/collectionMetrics/lib/probabilityDistributions/index.d.mts} +0 -0
- /package/dist/{lib/getNftCollectionCount.d.mts → browser/lib/getNftCollectionCount.d.cts} +0 -0
- /package/dist/{lib/getNftCollectionCount.d.ts → browser/lib/getNftCollectionCount.d.mts} +0 -0
- /package/dist/{lib/getNftCollectionMetadata.d.mts → browser/lib/getNftCollectionMetadata.d.cts} +0 -0
- /package/dist/{lib/getNftCollectionMetadata.d.ts → browser/lib/getNftCollectionMetadata.d.mts} +0 -0
- /package/dist/{lib/getNftCollectionNfts.d.mts → browser/lib/getNftCollectionNfts.d.cts} +0 -0
- /package/dist/{lib/getNftCollectionNfts.d.ts → browser/lib/getNftCollectionNfts.d.mts} +0 -0
- /package/dist/{lib/index.d.mts → browser/lib/index.d.cts} +0 -0
- /package/dist/{lib/index.d.ts → browser/lib/index.d.mts} +0 -0
- /package/dist/{lib/nonEvaluableContractAddresses.d.mts → browser/lib/nonEvaluableContractAddresses.d.cts} +0 -0
- /package/dist/{lib/nonEvaluableContractAddresses.d.ts → browser/lib/nonEvaluableContractAddresses.d.mts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/getNftCollectionMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AAUzF,eAAO,MAAM,wBAAwB,oBAIlB,MAAM,WAId,MAAM,cAQH,MAAM,KACjB,QAAQ,KAAK,qBAAqB,EAAE,OAAO,CAAC,CAS9C,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Auth, SDK } from "@infura/sdk";
|
|
2
|
+
import { toTokenType } from "@xyo-network/crypto-nft-payload-plugin";
|
|
3
|
+
import { nonEvaluableContractAddresses } from "./nonEvaluableContractAddresses";
|
|
4
|
+
const getNftCollectionMetadata = async (contractAddress, chainId, privateKey) => {
|
|
5
|
+
if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
|
|
6
|
+
throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
|
|
7
|
+
}
|
|
8
|
+
const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
|
|
9
|
+
const opts = { contractAddress };
|
|
10
|
+
const { name, symbol, tokenType } = await sdk.api.getContractMetadata(opts);
|
|
11
|
+
const type = toTokenType(tokenType);
|
|
12
|
+
return { address: contractAddress, chainId, name, symbol, type };
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
getNftCollectionMetadata
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=getNftCollectionMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/getNftCollectionMetadata.ts"],"sourcesContent":["import { Auth, SDK } from '@infura/sdk'\nimport { NftCollectionMetadata } from '@xyo-network/crypto-nft-collection-payload-plugin'\nimport { toTokenType } from '@xyo-network/crypto-nft-payload-plugin'\n\nimport { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses'\n\ntype ContractAddressOptions = {\n contractAddress: string\n cursor?: string\n}\n\nexport const getNftCollectionMetadata = async (\n /**\n * The address of the NFT contract to search for\n */\n contractAddress: string,\n /**\n * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on\n */\n chainId: number,\n // /**\n // * The ethers provider to use to search for NFTs\n // */\n // provider: ExternalProvider | JsonRpcFetchFunc,\n /**\n * The private key of the wallet to use to search for NFTs\n */\n privateKey: string,\n): Promise<Omit<NftCollectionMetadata, 'total'>> => {\n if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {\n throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`)\n }\n const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }))\n const opts: ContractAddressOptions = { contractAddress }\n const { name, symbol, tokenType } = await sdk.api.getContractMetadata(opts)\n const type = toTokenType(tokenType)\n return { address: contractAddress, chainId, name, symbol, type }\n}\n"],"mappings":"AAAA,SAAS,MAAM,WAAW;AAE1B,SAAS,mBAAmB;AAE5B,SAAS,qCAAqC;AAOvC,MAAM,2BAA2B,OAItC,iBAIA,SAQA,eACkD;AAClD,MAAI,8BAA8B,SAAS,gBAAgB,YAAY,CAAC,GAAG;AACzE,UAAM,IAAI,MAAM,uDAAuD,eAAe,EAAE;AAAA,EAC1F;AACA,QAAM,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE,SAAS,YAAY,WAAW,QAAQ,IAAI,mBAAmB,UAAU,QAAQ,IAAI,sBAAsB,CAAC,CAAC;AAC5I,QAAM,OAA+B,EAAE,gBAAgB;AACvD,QAAM,EAAE,MAAM,QAAQ,UAAU,IAAI,MAAM,IAAI,IAAI,oBAAoB,IAAI;AAC1E,QAAM,OAAO,YAAY,SAAS;AAClC,SAAO,EAAE,SAAS,iBAAiB,SAAS,MAAM,QAAQ,KAAK;AACjE;","names":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/lib/getNftCollectionNfts.ts
|
|
21
|
+
var getNftCollectionNfts_exports = {};
|
|
22
|
+
__export(getNftCollectionNfts_exports, {
|
|
23
|
+
getNftCollectionNfts: () => getNftCollectionNfts
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(getNftCollectionNfts_exports);
|
|
26
|
+
var import_sdk = require("@infura/sdk");
|
|
27
|
+
var import_crypto_nft_payload_plugin = require("@xyo-network/crypto-nft-payload-plugin");
|
|
28
|
+
|
|
29
|
+
// src/lib/nonEvaluableContractAddresses.ts
|
|
30
|
+
var nonEvaluableContractAddresses = [
|
|
31
|
+
// ENS
|
|
32
|
+
"0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72"
|
|
33
|
+
].map((address) => address.toUpperCase());
|
|
34
|
+
|
|
35
|
+
// src/lib/getNftCollectionNfts.ts
|
|
36
|
+
var getNftCollectionNfts = async (contractAddress, chainId, privateKey, maxNfts = 100) => {
|
|
37
|
+
if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
|
|
38
|
+
throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
|
|
39
|
+
}
|
|
40
|
+
const sdk = new import_sdk.SDK(new import_sdk.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
|
|
41
|
+
const nfts = [];
|
|
42
|
+
let cursor = void 0;
|
|
43
|
+
do {
|
|
44
|
+
const opts = { contractAddress, cursor };
|
|
45
|
+
const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts);
|
|
46
|
+
const batch = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
|
|
47
|
+
const { contract: address, type: tokenType, ...rest } = asset;
|
|
48
|
+
const type = (0, import_crypto_nft_payload_plugin.toTokenType)(tokenType);
|
|
49
|
+
return { address, chainId, type, ...rest };
|
|
50
|
+
});
|
|
51
|
+
nfts.push(...batch);
|
|
52
|
+
cursor = nextCursor;
|
|
53
|
+
if (nfts.length >= total || !cursor)
|
|
54
|
+
break;
|
|
55
|
+
} while (nfts.length < maxNfts);
|
|
56
|
+
return nfts.map((nft) => {
|
|
57
|
+
return { ...nft, schema: import_crypto_nft_payload_plugin.NftSchema };
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=getNftCollectionNfts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/getNftCollectionNfts.ts","../../../src/lib/nonEvaluableContractAddresses.ts"],"sourcesContent":["import { Auth, SDK } from '@infura/sdk'\nimport { NftInfo, NftInfoFields, NftSchema, toTokenType } from '@xyo-network/crypto-nft-payload-plugin'\n\nimport { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses'\n\ntype ContractAddressOptions = {\n contractAddress: string\n cursor?: string\n}\n\nexport const getNftCollectionNfts = async (\n /**\n * The address of the NFT contract to search for\n */\n contractAddress: string,\n /**\n * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on\n */\n chainId: number,\n // /**\n // * The ethers provider to use to search for NFTs\n // */\n // provider: ExternalProvider | JsonRpcFetchFunc,\n /**\n * The private key of the wallet to use to search for NFTs\n */\n privateKey: string,\n /**\n * The maximum number of NFTs to return. Configurable to prevent\n * large wallets from exhausting Infura API credits. Ideally a\n * multiple of 100 as that appears to be the default page size.\n */\n maxNfts = 100,\n): Promise<NftInfo[]> => {\n if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {\n throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`)\n }\n const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }))\n const nfts: NftInfoFields[] = []\n let cursor: string | undefined = undefined\n do {\n const opts: ContractAddressOptions = { contractAddress, cursor }\n const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts)\n const batch: NftInfoFields[] = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {\n const { contract: address, type: tokenType, ...rest } = asset\n const type = toTokenType(tokenType)\n return { address, chainId, type, ...rest }\n })\n nfts.push(...batch)\n cursor = nextCursor\n if (nfts.length >= total || !cursor) break\n } while (nfts.length < maxNfts)\n return nfts.map((nft) => {\n return { ...nft, schema: NftSchema }\n })\n}\n","/**\n * These contracts are not evaluable for some\n * reason (too large, nonsensical, etc.)\n */\nexport const nonEvaluableContractAddresses = [\n // ENS\n '0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72',\n].map((address) => address.toUpperCase())\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA0B;AAC1B,uCAA+D;;;ACGxD,IAAM,gCAAgC;AAAA;AAAA,EAE3C;AACF,EAAE,IAAI,CAAC,YAAY,QAAQ,YAAY,CAAC;;;ADGjC,IAAM,uBAAuB,OAIlC,iBAIA,SAQA,YAMA,UAAU,QACa;AACvB,MAAI,8BAA8B,SAAS,gBAAgB,YAAY,CAAC,GAAG;AACzE,UAAM,IAAI,MAAM,uDAAuD,eAAe,EAAE;AAAA,EAC1F;AACA,QAAM,MAAM,IAAI,eAAI,IAAI,gBAAK,EAAE,SAAS,YAAY,WAAW,QAAQ,IAAI,mBAAmB,UAAU,QAAQ,IAAI,sBAAsB,CAAC,CAAC;AAC5I,QAAM,OAAwB,CAAC;AAC/B,MAAI,SAA6B;AACjC,KAAG;AACD,UAAM,OAA+B,EAAE,iBAAiB,OAAO;AAC/D,UAAM,EAAE,QAAQ,YAAY,UAAU,OAAO,OAAO,IAAI,MAAM,IAAI,IAAI,qBAAqB,IAAI;AAC/F,UAAM,QAAyB,OAAO,MAAM,GAAG,KAAK,IAAI,UAAU,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU;AACrG,YAAM,EAAE,UAAU,SAAS,MAAM,WAAW,GAAG,KAAK,IAAI;AACxD,YAAM,WAAO,8CAAY,SAAS;AAClC,aAAO,EAAE,SAAS,SAAS,MAAM,GAAG,KAAK;AAAA,IAC3C,CAAC;AACD,SAAK,KAAK,GAAG,KAAK;AAClB,aAAS;AACT,QAAI,KAAK,UAAU,SAAS,CAAC;AAAQ;AAAA,EACvC,SAAS,KAAK,SAAS;AACvB,SAAO,KAAK,IAAI,CAAC,QAAQ;AACvB,WAAO,EAAE,GAAG,KAAK,QAAQ,2CAAU;AAAA,EACrC,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionNfts.d.ts","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAyC,MAAM,wCAAwC,CAAA;AASvG,eAAO,MAAM,oBAAoB,oBAId,MAAM,WAId,MAAM,cAQH,MAAM,uBAOjB,QAAQ,OAAO,EAAE,CAsBnB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionNfts.d.ts","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAyC,MAAM,wCAAwC,CAAA;AASvG,eAAO,MAAM,oBAAoB,oBAId,MAAM,WAId,MAAM,cAQH,MAAM,uBAOjB,QAAQ,OAAO,EAAE,CAsBnB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getNftCollectionNfts.d.ts","sourceRoot":"","sources":["../../../src/lib/getNftCollectionNfts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAyC,MAAM,wCAAwC,CAAA;AASvG,eAAO,MAAM,oBAAoB,oBAId,MAAM,WAId,MAAM,cAQH,MAAM,uBAOjB,QAAQ,OAAO,EAAE,CAsBnB,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Auth, SDK } from "@infura/sdk";
|
|
2
|
+
import { NftSchema, toTokenType } from "@xyo-network/crypto-nft-payload-plugin";
|
|
3
|
+
import { nonEvaluableContractAddresses } from "./nonEvaluableContractAddresses";
|
|
4
|
+
const getNftCollectionNfts = async (contractAddress, chainId, privateKey, maxNfts = 100) => {
|
|
5
|
+
if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
|
|
6
|
+
throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
|
|
7
|
+
}
|
|
8
|
+
const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
|
|
9
|
+
const nfts = [];
|
|
10
|
+
let cursor = void 0;
|
|
11
|
+
do {
|
|
12
|
+
const opts = { contractAddress, cursor };
|
|
13
|
+
const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts);
|
|
14
|
+
const batch = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
|
|
15
|
+
const { contract: address, type: tokenType, ...rest } = asset;
|
|
16
|
+
const type = toTokenType(tokenType);
|
|
17
|
+
return { address, chainId, type, ...rest };
|
|
18
|
+
});
|
|
19
|
+
nfts.push(...batch);
|
|
20
|
+
cursor = nextCursor;
|
|
21
|
+
if (nfts.length >= total || !cursor)
|
|
22
|
+
break;
|
|
23
|
+
} while (nfts.length < maxNfts);
|
|
24
|
+
return nfts.map((nft) => {
|
|
25
|
+
return { ...nft, schema: NftSchema };
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
export {
|
|
29
|
+
getNftCollectionNfts
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=getNftCollectionNfts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/getNftCollectionNfts.ts"],"sourcesContent":["import { Auth, SDK } from '@infura/sdk'\nimport { NftInfo, NftInfoFields, NftSchema, toTokenType } from '@xyo-network/crypto-nft-payload-plugin'\n\nimport { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses'\n\ntype ContractAddressOptions = {\n contractAddress: string\n cursor?: string\n}\n\nexport const getNftCollectionNfts = async (\n /**\n * The address of the NFT contract to search for\n */\n contractAddress: string,\n /**\n * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on\n */\n chainId: number,\n // /**\n // * The ethers provider to use to search for NFTs\n // */\n // provider: ExternalProvider | JsonRpcFetchFunc,\n /**\n * The private key of the wallet to use to search for NFTs\n */\n privateKey: string,\n /**\n * The maximum number of NFTs to return. Configurable to prevent\n * large wallets from exhausting Infura API credits. Ideally a\n * multiple of 100 as that appears to be the default page size.\n */\n maxNfts = 100,\n): Promise<NftInfo[]> => {\n if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {\n throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`)\n }\n const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }))\n const nfts: NftInfoFields[] = []\n let cursor: string | undefined = undefined\n do {\n const opts: ContractAddressOptions = { contractAddress, cursor }\n const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts)\n const batch: NftInfoFields[] = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {\n const { contract: address, type: tokenType, ...rest } = asset\n const type = toTokenType(tokenType)\n return { address, chainId, type, ...rest }\n })\n nfts.push(...batch)\n cursor = nextCursor\n if (nfts.length >= total || !cursor) break\n } while (nfts.length < maxNfts)\n return nfts.map((nft) => {\n return { ...nft, schema: NftSchema }\n })\n}\n"],"mappings":"AAAA,SAAS,MAAM,WAAW;AAC1B,SAAiC,WAAW,mBAAmB;AAE/D,SAAS,qCAAqC;AAOvC,MAAM,uBAAuB,OAIlC,iBAIA,SAQA,YAMA,UAAU,QACa;AACvB,MAAI,8BAA8B,SAAS,gBAAgB,YAAY,CAAC,GAAG;AACzE,UAAM,IAAI,MAAM,uDAAuD,eAAe,EAAE;AAAA,EAC1F;AACA,QAAM,MAAM,IAAI,IAAI,IAAI,KAAK,EAAE,SAAS,YAAY,WAAW,QAAQ,IAAI,mBAAmB,UAAU,QAAQ,IAAI,sBAAsB,CAAC,CAAC;AAC5I,QAAM,OAAwB,CAAC;AAC/B,MAAI,SAA6B;AACjC,KAAG;AACD,UAAM,OAA+B,EAAE,iBAAiB,OAAO;AAC/D,UAAM,EAAE,QAAQ,YAAY,UAAU,OAAO,OAAO,IAAI,MAAM,IAAI,IAAI,qBAAqB,IAAI;AAC/F,UAAM,QAAyB,OAAO,MAAM,GAAG,KAAK,IAAI,UAAU,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU;AACrG,YAAM,EAAE,UAAU,SAAS,MAAM,WAAW,GAAG,KAAK,IAAI;AACxD,YAAM,OAAO,YAAY,SAAS;AAClC,aAAO,EAAE,SAAS,SAAS,MAAM,GAAG,KAAK;AAAA,IAC3C,CAAC;AACD,SAAK,KAAK,GAAG,KAAK;AAClB,aAAS;AACT,QAAI,KAAK,UAAU,SAAS,CAAC;AAAQ;AAAA,EACvC,SAAS,KAAK,SAAS;AACvB,SAAO,KAAK,IAAI,CAAC,QAAQ;AACvB,WAAO,EAAE,GAAG,KAAK,QAAQ,UAAU;AAAA,EACrC,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/lib/index.ts
|
|
21
|
+
var lib_exports = {};
|
|
22
|
+
__export(lib_exports, {
|
|
23
|
+
getNftCollectionCount: () => getNftCollectionCount,
|
|
24
|
+
getNftCollectionMetadata: () => getNftCollectionMetadata,
|
|
25
|
+
getNftCollectionMetrics: () => getNftCollectionMetrics,
|
|
26
|
+
getNftCollectionNfts: () => getNftCollectionNfts
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(lib_exports);
|
|
29
|
+
|
|
30
|
+
// src/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.ts
|
|
31
|
+
var calculateAllPropertiesDistribution = (array) => {
|
|
32
|
+
const distribution = {};
|
|
33
|
+
array.forEach((item) => {
|
|
34
|
+
for (const property in item) {
|
|
35
|
+
if (Object.prototype.hasOwnProperty.call(item, property)) {
|
|
36
|
+
const value = item[property];
|
|
37
|
+
if (value !== void 0 && value !== null) {
|
|
38
|
+
const valueString = value.toString();
|
|
39
|
+
if (!distribution[property]) {
|
|
40
|
+
distribution[property] = { [valueString]: 1 };
|
|
41
|
+
} else if (!distribution[property][valueString]) {
|
|
42
|
+
;
|
|
43
|
+
distribution[property][valueString] = 1;
|
|
44
|
+
} else {
|
|
45
|
+
;
|
|
46
|
+
distribution[property][valueString] += 1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return distribution;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// src/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.ts
|
|
56
|
+
var calculateBinomialParamsFromProbability = (n, p) => {
|
|
57
|
+
const mean = n * p;
|
|
58
|
+
const variance = n * p * (1 - p);
|
|
59
|
+
const stdDev = Math.sqrt(variance);
|
|
60
|
+
return { mean, p, stdDev, variance };
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// src/lib/collectionMetrics/getNftCollectionMetrics.ts
|
|
64
|
+
var getNftCollectionMetrics = (nfts) => {
|
|
65
|
+
const traits = nfts.map((nft) => nft?.metadata?.attributes).filter((v) => v !== void 0).map((attributes2) => {
|
|
66
|
+
return Object.fromEntries(attributes2.map((attribute) => [attribute.trait_type, attribute.value]));
|
|
67
|
+
});
|
|
68
|
+
const distribution = calculateAllPropertiesDistribution(traits);
|
|
69
|
+
const n = nfts.length;
|
|
70
|
+
const attributes = Object.fromEntries(
|
|
71
|
+
Object.entries(distribution).filter((v) => v[1] !== void 0).map(([trait, entries]) => {
|
|
72
|
+
const traitCount = Object.values(entries).reduce((prev, curr) => prev + curr, 0);
|
|
73
|
+
const { p } = calculateBinomialParamsFromProbability(nfts.length, traitCount / n);
|
|
74
|
+
const values = Object.fromEntries(
|
|
75
|
+
Object.entries(entries).map(([value, traitValueCount]) => {
|
|
76
|
+
const { p: p2 } = calculateBinomialParamsFromProbability(n, traitValueCount / n);
|
|
77
|
+
const metrics = { binomial: { p: p2 }, count: traitValueCount };
|
|
78
|
+
return [value, metrics];
|
|
79
|
+
})
|
|
80
|
+
);
|
|
81
|
+
return [trait, { metrics: { binomial: { p }, count: traitCount }, values }];
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
return { metadata: { attributes } };
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// src/lib/getNftCollectionCount.ts
|
|
88
|
+
var import_sdk = require("@infura/sdk");
|
|
89
|
+
|
|
90
|
+
// src/lib/nonEvaluableContractAddresses.ts
|
|
91
|
+
var nonEvaluableContractAddresses = [
|
|
92
|
+
// ENS
|
|
93
|
+
"0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72"
|
|
94
|
+
].map((address) => address.toUpperCase());
|
|
95
|
+
|
|
96
|
+
// src/lib/getNftCollectionCount.ts
|
|
97
|
+
var getNftCollectionCount = async (contractAddress, chainId, privateKey) => {
|
|
98
|
+
if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
|
|
99
|
+
throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
|
|
100
|
+
}
|
|
101
|
+
const sdk = new import_sdk.SDK(new import_sdk.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
|
|
102
|
+
const opts = { contractAddress };
|
|
103
|
+
const { total } = await sdk.api.getNFTsForCollection(opts);
|
|
104
|
+
return total;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// src/lib/getNftCollectionMetadata.ts
|
|
108
|
+
var import_sdk2 = require("@infura/sdk");
|
|
109
|
+
var import_crypto_nft_payload_plugin = require("@xyo-network/crypto-nft-payload-plugin");
|
|
110
|
+
var getNftCollectionMetadata = async (contractAddress, chainId, privateKey) => {
|
|
111
|
+
if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
|
|
112
|
+
throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
|
|
113
|
+
}
|
|
114
|
+
const sdk = new import_sdk2.SDK(new import_sdk2.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
|
|
115
|
+
const opts = { contractAddress };
|
|
116
|
+
const { name, symbol, tokenType } = await sdk.api.getContractMetadata(opts);
|
|
117
|
+
const type = (0, import_crypto_nft_payload_plugin.toTokenType)(tokenType);
|
|
118
|
+
return { address: contractAddress, chainId, name, symbol, type };
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
// src/lib/getNftCollectionNfts.ts
|
|
122
|
+
var import_sdk3 = require("@infura/sdk");
|
|
123
|
+
var import_crypto_nft_payload_plugin2 = require("@xyo-network/crypto-nft-payload-plugin");
|
|
124
|
+
var getNftCollectionNfts = async (contractAddress, chainId, privateKey, maxNfts = 100) => {
|
|
125
|
+
if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
|
|
126
|
+
throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
|
|
127
|
+
}
|
|
128
|
+
const sdk = new import_sdk3.SDK(new import_sdk3.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
|
|
129
|
+
const nfts = [];
|
|
130
|
+
let cursor = void 0;
|
|
131
|
+
do {
|
|
132
|
+
const opts = { contractAddress, cursor };
|
|
133
|
+
const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts);
|
|
134
|
+
const batch = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
|
|
135
|
+
const { contract: address, type: tokenType, ...rest } = asset;
|
|
136
|
+
const type = (0, import_crypto_nft_payload_plugin2.toTokenType)(tokenType);
|
|
137
|
+
return { address, chainId, type, ...rest };
|
|
138
|
+
});
|
|
139
|
+
nfts.push(...batch);
|
|
140
|
+
cursor = nextCursor;
|
|
141
|
+
if (nfts.length >= total || !cursor)
|
|
142
|
+
break;
|
|
143
|
+
} while (nfts.length < maxNfts);
|
|
144
|
+
return nfts.map((nft) => {
|
|
145
|
+
return { ...nft, schema: import_crypto_nft_payload_plugin2.NftSchema };
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/index.ts","../../../src/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.ts","../../../src/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.ts","../../../src/lib/collectionMetrics/getNftCollectionMetrics.ts","../../../src/lib/getNftCollectionCount.ts","../../../src/lib/nonEvaluableContractAddresses.ts","../../../src/lib/getNftCollectionMetadata.ts","../../../src/lib/getNftCollectionNfts.ts"],"sourcesContent":["export * from './collectionMetrics'\nexport * from './getNftCollectionCount'\nexport * from './getNftCollectionMetadata'\nexport * from './getNftCollectionNfts'\n","import { Distribution } from './distribution'\n\nexport const calculateAllPropertiesDistribution = <T>(array: T[]): Distribution<T> => {\n const distribution: Distribution<T> = {}\n\n array.forEach((item) => {\n for (const property in item) {\n if (Object.prototype.hasOwnProperty.call(item, property)) {\n const value = item[property as keyof T]\n if (value !== undefined && value !== null) {\n const valueString = value.toString()\n if (!distribution[property]) {\n distribution[property] = { [valueString]: 1 }\n } else if (!distribution[property]![valueString]) {\n ;(distribution[property] as Record<string, number>)[valueString] = 1\n } else {\n ;(distribution[property] as Record<string, number>)[valueString] += 1\n }\n }\n }\n }\n })\n\n return distribution\n}\n","import { BinomialDistributionParameters } from '@xyo-network/crypto-nft-collection-payload-plugin'\n\n/**\n * Calculates the parameters of a binomial distribution given the number of trials and success probability\n * @param n Number of trials\n * @param p Success probability\n * @returns The binomial distribution parameters\n */\nexport const calculateBinomialParamsFromProbability = (n: number, p: number): BinomialDistributionParameters => {\n // Mean (µ)\n const mean = n * p\n\n // Variance (σ^2)\n const variance = n * p * (1 - p)\n\n // Standard Deviation (σ)\n const stdDev = Math.sqrt(variance)\n\n return { mean, p, stdDev, variance }\n}\n","import { NftCollectionMetrics, NftTraitMetrics } from '@xyo-network/crypto-nft-collection-payload-plugin'\nimport { NftInfoFields, OpenSeaNftAttribute } from '@xyo-network/crypto-nft-payload-plugin'\n\nimport { calculateAllPropertiesDistribution, calculateBinomialParamsFromProbability } from './lib'\n\ntype TraitDistributionEntry = [string, { [key: string]: number }]\n\nexport const getNftCollectionMetrics = (nfts: NftInfoFields[]): NftCollectionMetrics => {\n const traits = nfts\n .map((nft) => nft?.metadata?.attributes as OpenSeaNftAttribute[] | undefined)\n .filter((v): v is OpenSeaNftAttribute[] => v !== undefined)\n .map((attributes) => {\n return Object.fromEntries(attributes.map((attribute) => [attribute.trait_type, attribute.value]))\n })\n const distribution = calculateAllPropertiesDistribution(traits)\n const n = nfts.length\n const attributes = Object.fromEntries(\n Object.entries(distribution)\n .filter((v): v is TraitDistributionEntry => v[1] !== undefined)\n .map(([trait, entries]) => {\n const traitCount = Object.values(entries).reduce((prev, curr) => prev + curr, 0)\n const { p } = calculateBinomialParamsFromProbability(nfts.length, traitCount / n)\n const values = Object.fromEntries(\n Object.entries(entries).map(([value, traitValueCount]) => {\n const { p } = calculateBinomialParamsFromProbability(n, traitValueCount / n)\n const metrics: NftTraitMetrics = { binomial: { p }, count: traitValueCount }\n return [value, metrics]\n }),\n )\n return [trait, { metrics: { binomial: { p }, count: traitCount }, values }]\n }),\n )\n return { metadata: { attributes } }\n}\n","import { Auth, SDK } from '@infura/sdk'\n\nimport { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses'\n\ntype ContractAddressOptions = {\n contractAddress: string\n cursor?: string\n}\n\nexport const getNftCollectionCount = async (\n /**\n * The address of the NFT contract to search for\n */\n contractAddress: string,\n /**\n * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on\n */\n chainId: number,\n // /**\n // * The ethers provider to use to search for NFTs\n // */\n // provider: ExternalProvider | JsonRpcFetchFunc,\n /**\n * The private key of the wallet to use to search for NFTs\n */\n privateKey: string,\n): Promise<number> => {\n if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {\n throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`)\n }\n const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }))\n const opts: ContractAddressOptions = { contractAddress }\n const { total } = await sdk.api.getNFTsForCollection(opts)\n return total\n}\n","/**\n * These contracts are not evaluable for some\n * reason (too large, nonsensical, etc.)\n */\nexport const nonEvaluableContractAddresses = [\n // ENS\n '0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72',\n].map((address) => address.toUpperCase())\n","import { Auth, SDK } from '@infura/sdk'\nimport { NftCollectionMetadata } from '@xyo-network/crypto-nft-collection-payload-plugin'\nimport { toTokenType } from '@xyo-network/crypto-nft-payload-plugin'\n\nimport { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses'\n\ntype ContractAddressOptions = {\n contractAddress: string\n cursor?: string\n}\n\nexport const getNftCollectionMetadata = async (\n /**\n * The address of the NFT contract to search for\n */\n contractAddress: string,\n /**\n * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on\n */\n chainId: number,\n // /**\n // * The ethers provider to use to search for NFTs\n // */\n // provider: ExternalProvider | JsonRpcFetchFunc,\n /**\n * The private key of the wallet to use to search for NFTs\n */\n privateKey: string,\n): Promise<Omit<NftCollectionMetadata, 'total'>> => {\n if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {\n throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`)\n }\n const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }))\n const opts: ContractAddressOptions = { contractAddress }\n const { name, symbol, tokenType } = await sdk.api.getContractMetadata(opts)\n const type = toTokenType(tokenType)\n return { address: contractAddress, chainId, name, symbol, type }\n}\n","import { Auth, SDK } from '@infura/sdk'\nimport { NftInfo, NftInfoFields, NftSchema, toTokenType } from '@xyo-network/crypto-nft-payload-plugin'\n\nimport { nonEvaluableContractAddresses } from './nonEvaluableContractAddresses'\n\ntype ContractAddressOptions = {\n contractAddress: string\n cursor?: string\n}\n\nexport const getNftCollectionNfts = async (\n /**\n * The address of the NFT contract to search for\n */\n contractAddress: string,\n /**\n * The chain ID (1 = Ethereum Mainnet, 4 = Rinkeby, etc.) of the chain to search for NFTs on\n */\n chainId: number,\n // /**\n // * The ethers provider to use to search for NFTs\n // */\n // provider: ExternalProvider | JsonRpcFetchFunc,\n /**\n * The private key of the wallet to use to search for NFTs\n */\n privateKey: string,\n /**\n * The maximum number of NFTs to return. Configurable to prevent\n * large wallets from exhausting Infura API credits. Ideally a\n * multiple of 100 as that appears to be the default page size.\n */\n maxNfts = 100,\n): Promise<NftInfo[]> => {\n if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {\n throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`)\n }\n const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }))\n const nfts: NftInfoFields[] = []\n let cursor: string | undefined = undefined\n do {\n const opts: ContractAddressOptions = { contractAddress, cursor }\n const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts)\n const batch: NftInfoFields[] = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {\n const { contract: address, type: tokenType, ...rest } = asset\n const type = toTokenType(tokenType)\n return { address, chainId, type, ...rest }\n })\n nfts.push(...batch)\n cursor = nextCursor\n if (nfts.length >= total || !cursor) break\n } while (nfts.length < maxNfts)\n return nfts.map((nft) => {\n return { ...nft, schema: NftSchema }\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,qCAAqC,CAAI,UAAgC;AACpF,QAAM,eAAgC,CAAC;AAEvC,QAAM,QAAQ,CAAC,SAAS;AACtB,eAAW,YAAY,MAAM;AAC3B,UAAI,OAAO,UAAU,eAAe,KAAK,MAAM,QAAQ,GAAG;AACxD,cAAM,QAAQ,KAAK,QAAmB;AACtC,YAAI,UAAU,UAAa,UAAU,MAAM;AACzC,gBAAM,cAAc,MAAM,SAAS;AACnC,cAAI,CAAC,aAAa,QAAQ,GAAG;AAC3B,yBAAa,QAAQ,IAAI,EAAE,CAAC,WAAW,GAAG,EAAE;AAAA,UAC9C,WAAW,CAAC,aAAa,QAAQ,EAAG,WAAW,GAAG;AAChD;AAAC,YAAC,aAAa,QAAQ,EAA6B,WAAW,IAAI;AAAA,UACrE,OAAO;AACL;AAAC,YAAC,aAAa,QAAQ,EAA6B,WAAW,KAAK;AAAA,UACtE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;;;AChBO,IAAM,yCAAyC,CAAC,GAAW,MAA8C;AAE9G,QAAM,OAAO,IAAI;AAGjB,QAAM,WAAW,IAAI,KAAK,IAAI;AAG9B,QAAM,SAAS,KAAK,KAAK,QAAQ;AAEjC,SAAO,EAAE,MAAM,GAAG,QAAQ,SAAS;AACrC;;;ACZO,IAAM,0BAA0B,CAAC,SAAgD;AACtF,QAAM,SAAS,KACZ,IAAI,CAAC,QAAQ,KAAK,UAAU,UAA+C,EAC3E,OAAO,CAAC,MAAkC,MAAM,MAAS,EACzD,IAAI,CAACA,gBAAe;AACnB,WAAO,OAAO,YAAYA,YAAW,IAAI,CAAC,cAAc,CAAC,UAAU,YAAY,UAAU,KAAK,CAAC,CAAC;AAAA,EAClG,CAAC;AACH,QAAM,eAAe,mCAAmC,MAAM;AAC9D,QAAM,IAAI,KAAK;AACf,QAAM,aAAa,OAAO;AAAA,IACxB,OAAO,QAAQ,YAAY,EACxB,OAAO,CAAC,MAAmC,EAAE,CAAC,MAAM,MAAS,EAC7D,IAAI,CAAC,CAAC,OAAO,OAAO,MAAM;AACzB,YAAM,aAAa,OAAO,OAAO,OAAO,EAAE,OAAO,CAAC,MAAM,SAAS,OAAO,MAAM,CAAC;AAC/E,YAAM,EAAE,EAAE,IAAI,uCAAuC,KAAK,QAAQ,aAAa,CAAC;AAChF,YAAM,SAAS,OAAO;AAAA,QACpB,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,eAAe,MAAM;AACxD,gBAAM,EAAE,GAAAC,GAAE,IAAI,uCAAuC,GAAG,kBAAkB,CAAC;AAC3E,gBAAM,UAA2B,EAAE,UAAU,EAAE,GAAAA,GAAE,GAAG,OAAO,gBAAgB;AAC3E,iBAAO,CAAC,OAAO,OAAO;AAAA,QACxB,CAAC;AAAA,MACH;AACA,aAAO,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,GAAG,OAAO,WAAW,GAAG,OAAO,CAAC;AAAA,IAC5E,CAAC;AAAA,EACL;AACA,SAAO,EAAE,UAAU,EAAE,WAAW,EAAE;AACpC;;;ACjCA,iBAA0B;;;ACInB,IAAM,gCAAgC;AAAA;AAAA,EAE3C;AACF,EAAE,IAAI,CAAC,YAAY,QAAQ,YAAY,CAAC;;;ADEjC,IAAM,wBAAwB,OAInC,iBAIA,SAQA,eACoB;AACpB,MAAI,8BAA8B,SAAS,gBAAgB,YAAY,CAAC,GAAG;AACzE,UAAM,IAAI,MAAM,uDAAuD,eAAe,EAAE;AAAA,EAC1F;AACA,QAAM,MAAM,IAAI,eAAI,IAAI,gBAAK,EAAE,SAAS,YAAY,WAAW,QAAQ,IAAI,mBAAmB,UAAU,QAAQ,IAAI,sBAAsB,CAAC,CAAC;AAC5I,QAAM,OAA+B,EAAE,gBAAgB;AACvD,QAAM,EAAE,MAAM,IAAI,MAAM,IAAI,IAAI,qBAAqB,IAAI;AACzD,SAAO;AACT;;;AElCA,IAAAC,cAA0B;AAE1B,uCAA4B;AASrB,IAAM,2BAA2B,OAItC,iBAIA,SAQA,eACkD;AAClD,MAAI,8BAA8B,SAAS,gBAAgB,YAAY,CAAC,GAAG;AACzE,UAAM,IAAI,MAAM,uDAAuD,eAAe,EAAE;AAAA,EAC1F;AACA,QAAM,MAAM,IAAI,gBAAI,IAAI,iBAAK,EAAE,SAAS,YAAY,WAAW,QAAQ,IAAI,mBAAmB,UAAU,QAAQ,IAAI,sBAAsB,CAAC,CAAC;AAC5I,QAAM,OAA+B,EAAE,gBAAgB;AACvD,QAAM,EAAE,MAAM,QAAQ,UAAU,IAAI,MAAM,IAAI,IAAI,oBAAoB,IAAI;AAC1E,QAAM,WAAO,8CAAY,SAAS;AAClC,SAAO,EAAE,SAAS,iBAAiB,SAAS,MAAM,QAAQ,KAAK;AACjE;;;ACrCA,IAAAC,cAA0B;AAC1B,IAAAC,oCAA+D;AASxD,IAAM,uBAAuB,OAIlC,iBAIA,SAQA,YAMA,UAAU,QACa;AACvB,MAAI,8BAA8B,SAAS,gBAAgB,YAAY,CAAC,GAAG;AACzE,UAAM,IAAI,MAAM,uDAAuD,eAAe,EAAE;AAAA,EAC1F;AACA,QAAM,MAAM,IAAI,gBAAI,IAAI,iBAAK,EAAE,SAAS,YAAY,WAAW,QAAQ,IAAI,mBAAmB,UAAU,QAAQ,IAAI,sBAAsB,CAAC,CAAC;AAC5I,QAAM,OAAwB,CAAC;AAC/B,MAAI,SAA6B;AACjC,KAAG;AACD,UAAM,OAA+B,EAAE,iBAAiB,OAAO;AAC/D,UAAM,EAAE,QAAQ,YAAY,UAAU,OAAO,OAAO,IAAI,MAAM,IAAI,IAAI,qBAAqB,IAAI;AAC/F,UAAM,QAAyB,OAAO,MAAM,GAAG,KAAK,IAAI,UAAU,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU;AACrG,YAAM,EAAE,UAAU,SAAS,MAAM,WAAW,GAAG,KAAK,IAAI;AACxD,YAAM,WAAO,+CAAY,SAAS;AAClC,aAAO,EAAE,SAAS,SAAS,MAAM,GAAG,KAAK;AAAA,IAC3C,CAAC;AACD,SAAK,KAAK,GAAG,KAAK;AAClB,aAAS;AACT,QAAI,KAAK,UAAU,SAAS,CAAC;AAAQ;AAAA,EACvC,SAAS,KAAK,SAAS;AACvB,SAAO,KAAK,IAAI,CAAC,QAAQ;AACvB,WAAO,EAAE,GAAG,KAAK,QAAQ,4CAAU;AAAA,EACrC,CAAC;AACH;","names":["attributes","p","import_sdk","import_sdk","import_crypto_nft_payload_plugin"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/index.ts"],"sourcesContent":["export * from './collectionMetrics'\nexport * from './getNftCollectionCount'\nexport * from './getNftCollectionMetadata'\nexport * from './getNftCollectionNfts'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/lib/nonEvaluableContractAddresses.ts
|
|
21
|
+
var nonEvaluableContractAddresses_exports = {};
|
|
22
|
+
__export(nonEvaluableContractAddresses_exports, {
|
|
23
|
+
nonEvaluableContractAddresses: () => nonEvaluableContractAddresses
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(nonEvaluableContractAddresses_exports);
|
|
26
|
+
var nonEvaluableContractAddresses = [
|
|
27
|
+
// ENS
|
|
28
|
+
"0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72"
|
|
29
|
+
].map((address) => address.toUpperCase());
|
|
30
|
+
//# sourceMappingURL=nonEvaluableContractAddresses.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/nonEvaluableContractAddresses.ts"],"sourcesContent":["/**\n * These contracts are not evaluable for some\n * reason (too large, nonsensical, etc.)\n */\nexport const nonEvaluableContractAddresses = [\n // ENS\n '0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72',\n].map((address) => address.toUpperCase())\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,IAAM,gCAAgC;AAAA;AAAA,EAE3C;AACF,EAAE,IAAI,CAAC,YAAY,QAAQ,YAAY,CAAC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonEvaluableContractAddresses.d.ts","sourceRoot":"","sources":["../../../src/lib/nonEvaluableContractAddresses.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,6BAA6B,UAGD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonEvaluableContractAddresses.d.ts","sourceRoot":"","sources":["../../../src/lib/nonEvaluableContractAddresses.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,6BAA6B,UAGD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonEvaluableContractAddresses.d.ts","sourceRoot":"","sources":["../../../src/lib/nonEvaluableContractAddresses.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,6BAA6B,UAGD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/nonEvaluableContractAddresses.ts"],"sourcesContent":["/**\n * These contracts are not evaluable for some\n * reason (too large, nonsensical, etc.)\n */\nexport const nonEvaluableContractAddresses = [\n // ENS\n '0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72',\n].map((address) => address.toUpperCase())\n"],"mappings":"AAIO,MAAM,gCAAgC;AAAA;AAAA,EAE3C;AACF,EAAE,IAAI,CAAC,YAAY,QAAQ,YAAY,CAAC;","names":[]}
|