@xyo-network/crypto-nft-collection-witness-plugin 2.75.15 → 2.75.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/docs.json +16 -16
  2. package/package.json +15 -15
  3. package/dist/browser/Plugin.cjs +0 -199
  4. package/dist/browser/Plugin.cjs.map +0 -1
  5. package/dist/browser/Plugin.js +0 -182
  6. package/dist/browser/Plugin.js.map +0 -1
  7. package/dist/browser/Witness.cjs +0 -183
  8. package/dist/browser/Witness.cjs.map +0 -1
  9. package/dist/browser/Witness.js +0 -166
  10. package/dist/browser/Witness.js.map +0 -1
  11. package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.cjs +0 -83
  12. package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.cjs.map +0 -1
  13. package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.js +0 -60
  14. package/dist/browser/lib/collectionMetrics/getNftCollectionMetrics.js.map +0 -1
  15. package/dist/browser/lib/collectionMetrics/index.cjs +0 -83
  16. package/dist/browser/lib/collectionMetrics/index.cjs.map +0 -1
  17. package/dist/browser/lib/collectionMetrics/index.js +0 -60
  18. package/dist/browser/lib/collectionMetrics/index.js.map +0 -1
  19. package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.cjs +0 -49
  20. package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.cjs.map +0 -1
  21. package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js +0 -28
  22. package/dist/browser/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js.map +0 -1
  23. package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.cjs +0 -45
  24. package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.cjs.map +0 -1
  25. package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.js +0 -24
  26. package/dist/browser/lib/collectionMetrics/lib/calculatePropertyDistribution.js.map +0 -1
  27. package/dist/browser/lib/collectionMetrics/lib/distribution.cjs +0 -19
  28. package/dist/browser/lib/collectionMetrics/lib/distribution.cjs.map +0 -1
  29. package/dist/browser/lib/collectionMetrics/lib/distribution.js +0 -1
  30. package/dist/browser/lib/collectionMetrics/lib/distribution.js.map +0 -1
  31. package/dist/browser/lib/collectionMetrics/lib/index.cjs +0 -72
  32. package/dist/browser/lib/collectionMetrics/lib/index.cjs.map +0 -1
  33. package/dist/browser/lib/collectionMetrics/lib/index.js +0 -49
  34. package/dist/browser/lib/collectionMetrics/lib/index.js.map +0 -1
  35. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.cjs +0 -35
  36. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.cjs.map +0 -1
  37. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js +0 -14
  38. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js.map +0 -1
  39. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.cjs +0 -32
  40. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.cjs.map +0 -1
  41. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js +0 -11
  42. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js.map +0 -1
  43. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.cjs +0 -46
  44. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.cjs.map +0 -1
  45. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js +0 -23
  46. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js.map +0 -1
  47. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.cjs +0 -46
  48. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.cjs.map +0 -1
  49. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.js +0 -23
  50. package/dist/browser/lib/collectionMetrics/lib/probabilityDistributions/index.js.map +0 -1
  51. package/dist/browser/lib/getNftCollectionCount.cjs +0 -44
  52. package/dist/browser/lib/getNftCollectionCount.cjs.map +0 -1
  53. package/dist/browser/lib/getNftCollectionCount.js +0 -23
  54. package/dist/browser/lib/getNftCollectionCount.js.map +0 -1
  55. package/dist/browser/lib/getNftCollectionMetadata.cjs +0 -46
  56. package/dist/browser/lib/getNftCollectionMetadata.cjs.map +0 -1
  57. package/dist/browser/lib/getNftCollectionMetadata.js +0 -25
  58. package/dist/browser/lib/getNftCollectionMetadata.js.map +0 -1
  59. package/dist/browser/lib/getNftCollectionNfts.cjs +0 -60
  60. package/dist/browser/lib/getNftCollectionNfts.cjs.map +0 -1
  61. package/dist/browser/lib/getNftCollectionNfts.js +0 -39
  62. package/dist/browser/lib/getNftCollectionNfts.js.map +0 -1
  63. package/dist/browser/lib/index.cjs +0 -148
  64. package/dist/browser/lib/index.cjs.map +0 -1
  65. package/dist/browser/lib/index.js +0 -125
  66. package/dist/browser/lib/index.js.map +0 -1
  67. package/dist/browser/lib/nonEvaluableContractAddresses.cjs +0 -30
  68. package/dist/browser/lib/nonEvaluableContractAddresses.cjs.map +0 -1
  69. package/dist/browser/lib/nonEvaluableContractAddresses.js +0 -9
  70. package/dist/browser/lib/nonEvaluableContractAddresses.js.map +0 -1
  71. package/dist/node/Plugin.js +0 -206
  72. package/dist/node/Plugin.js.map +0 -1
  73. package/dist/node/Plugin.mjs +0 -185
  74. package/dist/node/Plugin.mjs.map +0 -1
  75. package/dist/node/Witness.js +0 -190
  76. package/dist/node/Witness.js.map +0 -1
  77. package/dist/node/Witness.mjs +0 -169
  78. package/dist/node/Witness.mjs.map +0 -1
  79. package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.js +0 -90
  80. package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.js.map +0 -1
  81. package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.mjs +0 -63
  82. package/dist/node/lib/collectionMetrics/getNftCollectionMetrics.mjs.map +0 -1
  83. package/dist/node/lib/collectionMetrics/index.js +0 -90
  84. package/dist/node/lib/collectionMetrics/index.js.map +0 -1
  85. package/dist/node/lib/collectionMetrics/index.mjs +0 -63
  86. package/dist/node/lib/collectionMetrics/index.mjs.map +0 -1
  87. package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js +0 -53
  88. package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.js.map +0 -1
  89. package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.mjs +0 -28
  90. package/dist/node/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.mjs.map +0 -1
  91. package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.js +0 -49
  92. package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.js.map +0 -1
  93. package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.mjs +0 -24
  94. package/dist/node/lib/collectionMetrics/lib/calculatePropertyDistribution.mjs.map +0 -1
  95. package/dist/node/lib/collectionMetrics/lib/distribution.js +0 -19
  96. package/dist/node/lib/collectionMetrics/lib/distribution.js.map +0 -1
  97. package/dist/node/lib/collectionMetrics/lib/distribution.mjs +0 -1
  98. package/dist/node/lib/collectionMetrics/lib/distribution.mjs.map +0 -1
  99. package/dist/node/lib/collectionMetrics/lib/index.js +0 -78
  100. package/dist/node/lib/collectionMetrics/lib/index.js.map +0 -1
  101. package/dist/node/lib/collectionMetrics/lib/index.mjs +0 -49
  102. package/dist/node/lib/collectionMetrics/lib/index.mjs.map +0 -1
  103. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js +0 -39
  104. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.js.map +0 -1
  105. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.mjs +0 -14
  106. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromOutcomes.mjs.map +0 -1
  107. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js +0 -36
  108. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.js.map +0 -1
  109. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.mjs +0 -11
  110. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.mjs.map +0 -1
  111. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js +0 -51
  112. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.js.map +0 -1
  113. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.mjs +0 -23
  114. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/binomial/index.mjs.map +0 -1
  115. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.js +0 -51
  116. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.js.map +0 -1
  117. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.mjs +0 -23
  118. package/dist/node/lib/collectionMetrics/lib/probabilityDistributions/index.mjs.map +0 -1
  119. package/dist/node/lib/getNftCollectionCount.js +0 -48
  120. package/dist/node/lib/getNftCollectionCount.js.map +0 -1
  121. package/dist/node/lib/getNftCollectionCount.mjs +0 -23
  122. package/dist/node/lib/getNftCollectionCount.mjs.map +0 -1
  123. package/dist/node/lib/getNftCollectionMetadata.js +0 -50
  124. package/dist/node/lib/getNftCollectionMetadata.js.map +0 -1
  125. package/dist/node/lib/getNftCollectionMetadata.mjs +0 -25
  126. package/dist/node/lib/getNftCollectionMetadata.mjs.map +0 -1
  127. package/dist/node/lib/getNftCollectionNfts.js +0 -64
  128. package/dist/node/lib/getNftCollectionNfts.js.map +0 -1
  129. package/dist/node/lib/getNftCollectionNfts.mjs +0 -39
  130. package/dist/node/lib/getNftCollectionNfts.mjs.map +0 -1
  131. package/dist/node/lib/index.js +0 -158
  132. package/dist/node/lib/index.js.map +0 -1
  133. package/dist/node/lib/index.mjs +0 -128
  134. package/dist/node/lib/index.mjs.map +0 -1
  135. package/dist/node/lib/nonEvaluableContractAddresses.js +0 -34
  136. package/dist/node/lib/nonEvaluableContractAddresses.js.map +0 -1
  137. package/dist/node/lib/nonEvaluableContractAddresses.mjs +0 -9
  138. package/dist/node/lib/nonEvaluableContractAddresses.mjs.map +0 -1
package/dist/docs.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/index.ts",
17
17
  "line": 9,
18
18
  "character": 0,
19
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/index.ts#L9"
19
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/index.ts#L9"
20
20
  }
21
21
  ],
22
22
  "target": 1
@@ -4552,7 +4552,7 @@
4552
4552
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts",
4553
4553
  "line": 31,
4554
4554
  "character": 18,
4555
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L31"
4555
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L31"
4556
4556
  }
4557
4557
  ],
4558
4558
  "type": {
@@ -9626,7 +9626,7 @@
9626
9626
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts",
9627
9627
  "line": 33,
9628
9628
  "character": 27,
9629
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L33"
9629
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L33"
9630
9630
  }
9631
9631
  ],
9632
9632
  "signatures": [
@@ -9641,7 +9641,7 @@
9641
9641
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts",
9642
9642
  "line": 33,
9643
9643
  "character": 27,
9644
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L33"
9644
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L33"
9645
9645
  }
9646
9646
  ],
9647
9647
  "parameters": [
@@ -18134,7 +18134,7 @@
18134
18134
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts",
18135
18135
  "line": 28,
18136
18136
  "character": 13,
18137
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L28"
18137
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L28"
18138
18138
  }
18139
18139
  ],
18140
18140
  "typeParameters": [
@@ -18189,7 +18189,7 @@
18189
18189
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts",
18190
18190
  "line": 17,
18191
18191
  "character": 12,
18192
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L17"
18192
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Witness.ts#L17"
18193
18193
  }
18194
18194
  ],
18195
18195
  "type": {
@@ -18235,7 +18235,7 @@
18235
18235
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Plugin.ts",
18236
18236
  "line": 7,
18237
18237
  "character": 13,
18238
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Plugin.ts#L7"
18238
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Plugin.ts#L7"
18239
18239
  }
18240
18240
  ],
18241
18241
  "signatures": [
@@ -18250,7 +18250,7 @@
18250
18250
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Plugin.ts",
18251
18251
  "line": 7,
18252
18252
  "character": 48,
18253
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Plugin.ts#L7"
18253
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/Plugin.ts#L7"
18254
18254
  }
18255
18255
  ],
18256
18256
  "type": {
@@ -20118,7 +20118,7 @@
20118
20118
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionCount.ts",
20119
20119
  "line": 10,
20120
20120
  "character": 13,
20121
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionCount.ts#L10"
20121
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionCount.ts#L10"
20122
20122
  }
20123
20123
  ],
20124
20124
  "signatures": [
@@ -20133,7 +20133,7 @@
20133
20133
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionCount.ts",
20134
20134
  "line": 10,
20135
20135
  "character": 37,
20136
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionCount.ts#L10"
20136
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionCount.ts#L10"
20137
20137
  }
20138
20138
  ],
20139
20139
  "parameters": [
@@ -20224,7 +20224,7 @@
20224
20224
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionMetadata.ts",
20225
20225
  "line": 12,
20226
20226
  "character": 13,
20227
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionMetadata.ts#L12"
20227
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionMetadata.ts#L12"
20228
20228
  }
20229
20229
  ],
20230
20230
  "signatures": [
@@ -20239,7 +20239,7 @@
20239
20239
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionMetadata.ts",
20240
20240
  "line": 12,
20241
20241
  "character": 40,
20242
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionMetadata.ts#L12"
20242
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionMetadata.ts#L12"
20243
20243
  }
20244
20244
  ],
20245
20245
  "parameters": [
@@ -20350,7 +20350,7 @@
20350
20350
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/collectionMetrics/getNftCollectionMetrics.ts",
20351
20351
  "line": 8,
20352
20352
  "character": 13,
20353
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/collectionMetrics/getNftCollectionMetrics.ts#L8"
20353
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/collectionMetrics/getNftCollectionMetrics.ts#L8"
20354
20354
  }
20355
20355
  ],
20356
20356
  "signatures": [
@@ -20365,7 +20365,7 @@
20365
20365
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/collectionMetrics/getNftCollectionMetrics.ts",
20366
20366
  "line": 8,
20367
20367
  "character": 39,
20368
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/collectionMetrics/getNftCollectionMetrics.ts#L8"
20368
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/collectionMetrics/getNftCollectionMetrics.ts#L8"
20369
20369
  }
20370
20370
  ],
20371
20371
  "parameters": [
@@ -20412,7 +20412,7 @@
20412
20412
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionNfts.ts",
20413
20413
  "line": 11,
20414
20414
  "character": 13,
20415
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionNfts.ts#L11"
20415
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionNfts.ts#L11"
20416
20416
  }
20417
20417
  ],
20418
20418
  "signatures": [
@@ -20427,7 +20427,7 @@
20427
20427
  "fileName": "plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionNfts.ts",
20428
20428
  "line": 11,
20429
20429
  "character": 36,
20430
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/329e1cefafe53/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionNfts.ts#L11"
20430
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/nft/packages/collection/witness/src/lib/getNftCollectionNfts.ts#L11"
20431
20431
  }
20432
20432
  ],
20433
20433
  "parameters": [
package/package.json CHANGED
@@ -11,22 +11,22 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@infura/sdk": "^2.4.3",
14
- "@xylabs/assert": "^2.12.22",
15
- "@xyo-network/abstract-witness": "~2.75.15",
16
- "@xyo-network/core": "~2.75.15",
17
- "@xyo-network/crypto-nft-collection-payload-plugin": "~2.75.15",
18
- "@xyo-network/crypto-nft-payload-plugin": "~2.75.15",
19
- "@xyo-network/module-model": "~2.75.15",
20
- "@xyo-network/payload-model": "~2.75.15",
21
- "@xyo-network/payloadset-plugin": "~2.75.15",
22
- "@xyo-network/witness-model": "~2.75.15"
14
+ "@xylabs/assert": "^2.12.23",
15
+ "@xyo-network/abstract-witness": "~2.75.16",
16
+ "@xyo-network/core": "~2.75.16",
17
+ "@xyo-network/crypto-nft-collection-payload-plugin": "~2.75.16",
18
+ "@xyo-network/crypto-nft-payload-plugin": "~2.75.16",
19
+ "@xyo-network/module-model": "~2.75.16",
20
+ "@xyo-network/payload-model": "~2.75.16",
21
+ "@xyo-network/payloadset-plugin": "~2.75.16",
22
+ "@xyo-network/witness-model": "~2.75.16"
23
23
  },
24
24
  "devDependencies": {
25
- "@xylabs/jest-helpers": "^2.12.22",
26
- "@xylabs/ts-scripts-yarn3": "^3.0.88",
27
- "@xylabs/tsconfig": "^3.0.88",
28
- "@xyo-network/account": "~2.75.15",
29
- "@xyo-network/account-model": "~2.75.15",
25
+ "@xylabs/jest-helpers": "^2.12.23",
26
+ "@xylabs/ts-scripts-yarn3": "^3.1.3",
27
+ "@xylabs/tsconfig": "^3.1.3",
28
+ "@xyo-network/account": "~2.75.16",
29
+ "@xyo-network/account-model": "~2.75.16",
30
30
  "ethers": "^5.7.2",
31
31
  "jest": "^29.7.0",
32
32
  "typescript": "^5.2.2"
@@ -74,5 +74,5 @@
74
74
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
75
75
  },
76
76
  "sideEffects": false,
77
- "version": "2.75.15"
77
+ "version": "2.75.16"
78
78
  }
@@ -1,199 +0,0 @@
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/Plugin.ts
21
- var Plugin_exports = {};
22
- __export(Plugin_exports, {
23
- CryptoNftCollectionWitnessPlugin: () => CryptoNftCollectionWitnessPlugin
24
- });
25
- module.exports = __toCommonJS(Plugin_exports);
26
- var import_crypto_nft_payload_plugin3 = require("@xyo-network/crypto-nft-payload-plugin");
27
- var import_payload_model = require("@xyo-network/payload-model");
28
- var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
29
-
30
- // src/Witness.ts
31
- var import_assert = require("@xylabs/assert");
32
- var import_abstract_witness = require("@xyo-network/abstract-witness");
33
- var import_core = require("@xyo-network/core");
34
- var import_crypto_nft_collection_payload_plugin = require("@xyo-network/crypto-nft-collection-payload-plugin");
35
-
36
- // src/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.ts
37
- var calculateAllPropertiesDistribution = (array) => {
38
- const distribution = {};
39
- array.forEach((item) => {
40
- for (const property in item) {
41
- if (Object.prototype.hasOwnProperty.call(item, property)) {
42
- const value = item[property];
43
- if (value !== void 0 && value !== null) {
44
- const valueString = value.toString();
45
- if (!distribution[property]) {
46
- distribution[property] = { [valueString]: 1 };
47
- } else if (!distribution[property][valueString]) {
48
- ;
49
- distribution[property][valueString] = 1;
50
- } else {
51
- ;
52
- distribution[property][valueString] += 1;
53
- }
54
- }
55
- }
56
- }
57
- });
58
- return distribution;
59
- };
60
-
61
- // src/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.ts
62
- var calculateBinomialParamsFromProbability = (n, p) => {
63
- const mean = n * p;
64
- const variance = n * p * (1 - p);
65
- const stdDev = Math.sqrt(variance);
66
- return { mean, p, stdDev, variance };
67
- };
68
-
69
- // src/lib/collectionMetrics/getNftCollectionMetrics.ts
70
- var getNftCollectionMetrics = (nfts) => {
71
- const traits = nfts.map((nft) => nft?.metadata?.attributes).filter((v) => v !== void 0).map((attributes2) => {
72
- return Object.fromEntries(attributes2.map((attribute) => [attribute.trait_type, attribute.value]));
73
- });
74
- const distribution = calculateAllPropertiesDistribution(traits);
75
- const n = nfts.length;
76
- const attributes = Object.fromEntries(
77
- Object.entries(distribution).filter((v) => v[1] !== void 0).map(([trait, entries]) => {
78
- const traitCount = Object.values(entries).reduce((prev, curr) => prev + curr, 0);
79
- const { p } = calculateBinomialParamsFromProbability(nfts.length, traitCount / n);
80
- const values = Object.fromEntries(
81
- Object.entries(entries).map(([value, traitValueCount]) => {
82
- const { p: p2 } = calculateBinomialParamsFromProbability(n, traitValueCount / n);
83
- const metrics = { binomial: { p: p2 }, count: traitValueCount };
84
- return [value, metrics];
85
- })
86
- );
87
- return [trait, { metrics: { binomial: { p }, count: traitCount }, values }];
88
- })
89
- );
90
- return { metadata: { attributes } };
91
- };
92
-
93
- // src/lib/getNftCollectionCount.ts
94
- var import_sdk = require("@infura/sdk");
95
-
96
- // src/lib/nonEvaluableContractAddresses.ts
97
- var nonEvaluableContractAddresses = [
98
- // ENS
99
- "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72"
100
- ].map((address) => address.toUpperCase());
101
-
102
- // src/lib/getNftCollectionCount.ts
103
- var getNftCollectionCount = async (contractAddress, chainId, privateKey) => {
104
- if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
105
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
106
- }
107
- const sdk = new import_sdk.SDK(new import_sdk.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
108
- const opts = { contractAddress };
109
- const { total } = await sdk.api.getNFTsForCollection(opts);
110
- return total;
111
- };
112
-
113
- // src/lib/getNftCollectionMetadata.ts
114
- var import_sdk2 = require("@infura/sdk");
115
- var import_crypto_nft_payload_plugin = require("@xyo-network/crypto-nft-payload-plugin");
116
- var getNftCollectionMetadata = async (contractAddress, chainId, privateKey) => {
117
- if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
118
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
119
- }
120
- const sdk = new import_sdk2.SDK(new import_sdk2.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
121
- const opts = { contractAddress };
122
- const { name, symbol, tokenType } = await sdk.api.getContractMetadata(opts);
123
- const type = (0, import_crypto_nft_payload_plugin.toTokenType)(tokenType);
124
- return { address: contractAddress, chainId, name, symbol, type };
125
- };
126
-
127
- // src/lib/getNftCollectionNfts.ts
128
- var import_sdk3 = require("@infura/sdk");
129
- var import_crypto_nft_payload_plugin2 = require("@xyo-network/crypto-nft-payload-plugin");
130
- var getNftCollectionNfts = async (contractAddress, chainId, privateKey, maxNfts = 100) => {
131
- if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
132
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
133
- }
134
- const sdk = new import_sdk3.SDK(new import_sdk3.Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
135
- const nfts = [];
136
- let cursor = void 0;
137
- do {
138
- const opts = { contractAddress, cursor };
139
- const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts);
140
- const batch = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
141
- const { contract: address, type: tokenType, ...rest } = asset;
142
- const type = (0, import_crypto_nft_payload_plugin2.toTokenType)(tokenType);
143
- return { address, chainId, type, ...rest };
144
- });
145
- nfts.push(...batch);
146
- cursor = nextCursor;
147
- if (nfts.length >= total || !cursor)
148
- break;
149
- } while (nfts.length < maxNfts);
150
- return nfts.map((nft) => {
151
- return { ...nft, schema: import_crypto_nft_payload_plugin2.NftSchema };
152
- });
153
- };
154
-
155
- // src/Witness.ts
156
- var defaultMaxNfts = 100;
157
- var NoOp = Promise.resolve();
158
- var CryptoNftCollectionWitness = class extends import_abstract_witness.AbstractWitness {
159
- static configSchemas = [import_crypto_nft_collection_payload_plugin.NftCollectionWitnessConfigSchema];
160
- async observeHandler(payloads) {
161
- await this.started("throw");
162
- const queries = payloads?.filter(import_crypto_nft_collection_payload_plugin.isNftCollectionWitnessQuery) ?? [];
163
- const observations = await Promise.all(
164
- queries.map(async (query) => {
165
- const address = (0, import_assert.assertEx)(query?.address || this.config.address, "params.address is required");
166
- const chainId = (0, import_assert.assertEx)(query?.chainId || this.config.chainId, "params.chainId is required");
167
- const maxNfts = query?.maxNfts || defaultMaxNfts;
168
- const [info, total, nfts, archivist] = await Promise.all([
169
- getNftCollectionMetadata(address, chainId, this.account.private.hex),
170
- getNftCollectionCount(address, chainId, this.account.private.hex),
171
- getNftCollectionNfts(address, chainId, this.account.private.hex, maxNfts),
172
- this.writeArchivist()
173
- ]);
174
- const metrics = getNftCollectionMetrics(nfts);
175
- const [sources] = await Promise.all([
176
- // Hash all the payloads
177
- Promise.all(nfts.map((nft) => import_core.PayloadHasher.hashAsync(nft))),
178
- // Insert them into the archivist if we have one
179
- archivist ? archivist.insert(nfts) : NoOp
180
- ]);
181
- const payload = { ...info, metrics, schema: import_crypto_nft_collection_payload_plugin.NftCollectionSchema, sources, total };
182
- return payload;
183
- })
184
- );
185
- return observations.flat();
186
- }
187
- };
188
-
189
- // src/Plugin.ts
190
- var CryptoNftCollectionWitnessPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
191
- { required: { [import_crypto_nft_payload_plugin3.NftSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
192
- {
193
- witness: async (params) => {
194
- const result = await CryptoNftCollectionWitness.create(params);
195
- return result;
196
- }
197
- }
198
- );
199
- //# sourceMappingURL=Plugin.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Plugin.ts","../../src/Witness.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":["import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CryptoNftCollectionWitness } from './Witness'\n\nexport const CryptoNftCollectionWitnessPlugin = () =>\n createPayloadSetWitnessPlugin<CryptoNftCollectionWitness>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CryptoNftCollectionWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { PayloadHasher } from '@xyo-network/core'\nimport {\n isNftCollectionWitnessQuery,\n NftCollectionInfo,\n NftCollectionSchema,\n NftCollectionWitnessConfig,\n NftCollectionWitnessConfigSchema,\n} from '@xyo-network/crypto-nft-collection-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\n\nimport { getNftCollectionCount, getNftCollectionMetadata, getNftCollectionMetrics, getNftCollectionNfts } from './lib'\n\nexport type CryptoNftCollectionWitnessParams = WitnessParams<AnyConfigSchema<NftCollectionWitnessConfig>>\n\nconst defaultMaxNfts = 100\n\n/**\n * A \"no operation\" Promise to be used\n * when no action is desired but a Promise\n * is required to be returned\n */\nconst NoOp = Promise.resolve()\n\nexport class CryptoNftCollectionWitness<\n TParams extends CryptoNftCollectionWitnessParams = CryptoNftCollectionWitnessParams,\n> extends AbstractWitness<TParams> {\n static override configSchemas = [NftCollectionWitnessConfigSchema]\n\n protected override async observeHandler(payloads?: Payload[]): Promise<Payload[]> {\n await this.started('throw')\n const queries = payloads?.filter(isNftCollectionWitnessQuery) ?? []\n const observations = await Promise.all(\n queries.map<Promise<NftCollectionInfo>>(async (query) => {\n const address = assertEx(query?.address || this.config.address, 'params.address is required')\n const chainId = assertEx(query?.chainId || this.config.chainId, 'params.chainId is required')\n const maxNfts = query?.maxNfts || defaultMaxNfts\n const [info, total, nfts, archivist] = await Promise.all([\n getNftCollectionMetadata(address, chainId, this.account.private.hex),\n getNftCollectionCount(address, chainId, this.account.private.hex),\n getNftCollectionNfts(address, chainId, this.account.private.hex, maxNfts),\n this.writeArchivist(),\n ])\n const metrics = getNftCollectionMetrics(nfts)\n const [sources] = await Promise.all([\n // Hash all the payloads\n Promise.all(nfts.map((nft) => PayloadHasher.hashAsync(nft))),\n // Insert them into the archivist if we have one\n archivist ? archivist.insert(nfts) : NoOp,\n ])\n const payload: NftCollectionInfo = { ...info, metrics, schema: NftCollectionSchema, sources, total }\n return payload\n }),\n )\n return observations.flat()\n }\n}\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":"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","names":["import_crypto_nft_payload_plugin","attributes","p","import_sdk","import_sdk","import_crypto_nft_payload_plugin"]}
@@ -1,182 +0,0 @@
1
- // src/Plugin.ts
2
- import { NftSchema as NftSchema2 } from "@xyo-network/crypto-nft-payload-plugin";
3
- import { PayloadSetSchema } from "@xyo-network/payload-model";
4
- import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
5
-
6
- // src/Witness.ts
7
- import { assertEx } from "@xylabs/assert";
8
- import { AbstractWitness } from "@xyo-network/abstract-witness";
9
- import { PayloadHasher } from "@xyo-network/core";
10
- import {
11
- isNftCollectionWitnessQuery,
12
- NftCollectionSchema,
13
- NftCollectionWitnessConfigSchema
14
- } from "@xyo-network/crypto-nft-collection-payload-plugin";
15
-
16
- // src/lib/collectionMetrics/lib/calculateAllPropertiesDistribution.ts
17
- var calculateAllPropertiesDistribution = (array) => {
18
- const distribution = {};
19
- array.forEach((item) => {
20
- for (const property in item) {
21
- if (Object.prototype.hasOwnProperty.call(item, property)) {
22
- const value = item[property];
23
- if (value !== void 0 && value !== null) {
24
- const valueString = value.toString();
25
- if (!distribution[property]) {
26
- distribution[property] = { [valueString]: 1 };
27
- } else if (!distribution[property][valueString]) {
28
- ;
29
- distribution[property][valueString] = 1;
30
- } else {
31
- ;
32
- distribution[property][valueString] += 1;
33
- }
34
- }
35
- }
36
- }
37
- });
38
- return distribution;
39
- };
40
-
41
- // src/lib/collectionMetrics/lib/probabilityDistributions/binomial/calculateBinomialParamsFromProbability.ts
42
- var calculateBinomialParamsFromProbability = (n, p) => {
43
- const mean = n * p;
44
- const variance = n * p * (1 - p);
45
- const stdDev = Math.sqrt(variance);
46
- return { mean, p, stdDev, variance };
47
- };
48
-
49
- // src/lib/collectionMetrics/getNftCollectionMetrics.ts
50
- var getNftCollectionMetrics = (nfts) => {
51
- const traits = nfts.map((nft) => nft?.metadata?.attributes).filter((v) => v !== void 0).map((attributes2) => {
52
- return Object.fromEntries(attributes2.map((attribute) => [attribute.trait_type, attribute.value]));
53
- });
54
- const distribution = calculateAllPropertiesDistribution(traits);
55
- const n = nfts.length;
56
- const attributes = Object.fromEntries(
57
- Object.entries(distribution).filter((v) => v[1] !== void 0).map(([trait, entries]) => {
58
- const traitCount = Object.values(entries).reduce((prev, curr) => prev + curr, 0);
59
- const { p } = calculateBinomialParamsFromProbability(nfts.length, traitCount / n);
60
- const values = Object.fromEntries(
61
- Object.entries(entries).map(([value, traitValueCount]) => {
62
- const { p: p2 } = calculateBinomialParamsFromProbability(n, traitValueCount / n);
63
- const metrics = { binomial: { p: p2 }, count: traitValueCount };
64
- return [value, metrics];
65
- })
66
- );
67
- return [trait, { metrics: { binomial: { p }, count: traitCount }, values }];
68
- })
69
- );
70
- return { metadata: { attributes } };
71
- };
72
-
73
- // src/lib/getNftCollectionCount.ts
74
- import { Auth, SDK } from "@infura/sdk";
75
-
76
- // src/lib/nonEvaluableContractAddresses.ts
77
- var nonEvaluableContractAddresses = [
78
- // ENS
79
- "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72"
80
- ].map((address) => address.toUpperCase());
81
-
82
- // src/lib/getNftCollectionCount.ts
83
- var getNftCollectionCount = async (contractAddress, chainId, privateKey) => {
84
- if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
85
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
86
- }
87
- const sdk = new SDK(new Auth({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
88
- const opts = { contractAddress };
89
- const { total } = await sdk.api.getNFTsForCollection(opts);
90
- return total;
91
- };
92
-
93
- // src/lib/getNftCollectionMetadata.ts
94
- import { Auth as Auth2, SDK as SDK2 } from "@infura/sdk";
95
- import { toTokenType } from "@xyo-network/crypto-nft-payload-plugin";
96
- var getNftCollectionMetadata = async (contractAddress, chainId, privateKey) => {
97
- if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
98
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
99
- }
100
- const sdk = new SDK2(new Auth2({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
101
- const opts = { contractAddress };
102
- const { name, symbol, tokenType } = await sdk.api.getContractMetadata(opts);
103
- const type = toTokenType(tokenType);
104
- return { address: contractAddress, chainId, name, symbol, type };
105
- };
106
-
107
- // src/lib/getNftCollectionNfts.ts
108
- import { Auth as Auth3, SDK as SDK3 } from "@infura/sdk";
109
- import { NftSchema, toTokenType as toTokenType2 } from "@xyo-network/crypto-nft-payload-plugin";
110
- var getNftCollectionNfts = async (contractAddress, chainId, privateKey, maxNfts = 100) => {
111
- if (nonEvaluableContractAddresses.includes(contractAddress.toUpperCase())) {
112
- throw new Error(`Unable to evaluate collection with contractAddress: ${contractAddress}`);
113
- }
114
- const sdk = new SDK3(new Auth3({ chainId, privateKey, projectId: process.env.INFURA_PROJECT_ID, secretId: process.env.INFURA_PROJECT_SECRET }));
115
- const nfts = [];
116
- let cursor = void 0;
117
- do {
118
- const opts = { contractAddress, cursor };
119
- const { cursor: nextCursor, pageSize, total, assets } = await sdk.api.getNFTsForCollection(opts);
120
- const batch = assets.slice(0, Math.min(pageSize, total - nfts.length)).map((asset) => {
121
- const { contract: address, type: tokenType, ...rest } = asset;
122
- const type = toTokenType2(tokenType);
123
- return { address, chainId, type, ...rest };
124
- });
125
- nfts.push(...batch);
126
- cursor = nextCursor;
127
- if (nfts.length >= total || !cursor)
128
- break;
129
- } while (nfts.length < maxNfts);
130
- return nfts.map((nft) => {
131
- return { ...nft, schema: NftSchema };
132
- });
133
- };
134
-
135
- // src/Witness.ts
136
- var defaultMaxNfts = 100;
137
- var NoOp = Promise.resolve();
138
- var CryptoNftCollectionWitness = class extends AbstractWitness {
139
- static configSchemas = [NftCollectionWitnessConfigSchema];
140
- async observeHandler(payloads) {
141
- await this.started("throw");
142
- const queries = payloads?.filter(isNftCollectionWitnessQuery) ?? [];
143
- const observations = await Promise.all(
144
- queries.map(async (query) => {
145
- const address = assertEx(query?.address || this.config.address, "params.address is required");
146
- const chainId = assertEx(query?.chainId || this.config.chainId, "params.chainId is required");
147
- const maxNfts = query?.maxNfts || defaultMaxNfts;
148
- const [info, total, nfts, archivist] = await Promise.all([
149
- getNftCollectionMetadata(address, chainId, this.account.private.hex),
150
- getNftCollectionCount(address, chainId, this.account.private.hex),
151
- getNftCollectionNfts(address, chainId, this.account.private.hex, maxNfts),
152
- this.writeArchivist()
153
- ]);
154
- const metrics = getNftCollectionMetrics(nfts);
155
- const [sources] = await Promise.all([
156
- // Hash all the payloads
157
- Promise.all(nfts.map((nft) => PayloadHasher.hashAsync(nft))),
158
- // Insert them into the archivist if we have one
159
- archivist ? archivist.insert(nfts) : NoOp
160
- ]);
161
- const payload = { ...info, metrics, schema: NftCollectionSchema, sources, total };
162
- return payload;
163
- })
164
- );
165
- return observations.flat();
166
- }
167
- };
168
-
169
- // src/Plugin.ts
170
- var CryptoNftCollectionWitnessPlugin = () => createPayloadSetWitnessPlugin(
171
- { required: { [NftSchema2]: 1 }, schema: PayloadSetSchema },
172
- {
173
- witness: async (params) => {
174
- const result = await CryptoNftCollectionWitness.create(params);
175
- return result;
176
- }
177
- }
178
- );
179
- export {
180
- CryptoNftCollectionWitnessPlugin
181
- };
182
- //# sourceMappingURL=Plugin.js.map