@xyo-network/crypto-nft-diviner-score-plugin 2.73.2 → 2.73.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/docs.json +46 -46
  2. package/dist/index.d.mts +135 -0
  3. package/dist/index.d.ts +135 -0
  4. package/dist/index.js +438 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +412 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +39 -26
  9. package/tsup.config.ts +16 -0
  10. package/dist/cjs/Diviner.js +0 -36
  11. package/dist/cjs/Diviner.js.map +0 -1
  12. package/dist/cjs/Plugin.js +0 -16
  13. package/dist/cjs/Plugin.js.map +0 -1
  14. package/dist/cjs/index.js +0 -11
  15. package/dist/cjs/index.js.map +0 -1
  16. package/dist/cjs/lib/index.js +0 -5
  17. package/dist/cjs/lib/index.js.map +0 -1
  18. package/dist/cjs/lib/rating/analyzeNft.js +0 -19
  19. package/dist/cjs/lib/rating/analyzeNft.js.map +0 -1
  20. package/dist/cjs/lib/rating/criteria/index.js +0 -5
  21. package/dist/cjs/lib/rating/criteria/index.js.map +0 -1
  22. package/dist/cjs/lib/rating/criteria/scoring/contract.js +0 -16
  23. package/dist/cjs/lib/rating/criteria/scoring/contract.js.map +0 -1
  24. package/dist/cjs/lib/rating/criteria/scoring/index.js +0 -9
  25. package/dist/cjs/lib/rating/criteria/scoring/index.js.map +0 -1
  26. package/dist/cjs/lib/rating/criteria/scoring/lib/index.js +0 -6
  27. package/dist/cjs/lib/rating/criteria/scoring/lib/index.js.map +0 -1
  28. package/dist/cjs/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +0 -10
  29. package/dist/cjs/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +0 -1
  30. package/dist/cjs/lib/rating/criteria/scoring/lib/toBigNumber.js +0 -14
  31. package/dist/cjs/lib/rating/criteria/scoring/lib/toBigNumber.js.map +0 -1
  32. package/dist/cjs/lib/rating/criteria/scoring/metadata/animationUrl.js +0 -30
  33. package/dist/cjs/lib/rating/criteria/scoring/metadata/animationUrl.js.map +0 -1
  34. package/dist/cjs/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +0 -86
  35. package/dist/cjs/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +0 -1
  36. package/dist/cjs/lib/rating/criteria/scoring/metadata/attributes/index.js +0 -5
  37. package/dist/cjs/lib/rating/criteria/scoring/metadata/attributes/index.js.map +0 -1
  38. package/dist/cjs/lib/rating/criteria/scoring/metadata/backgroundColor.js +0 -24
  39. package/dist/cjs/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +0 -1
  40. package/dist/cjs/lib/rating/criteria/scoring/metadata/description.js +0 -17
  41. package/dist/cjs/lib/rating/criteria/scoring/metadata/description.js.map +0 -1
  42. package/dist/cjs/lib/rating/criteria/scoring/metadata/externalUrl.js +0 -21
  43. package/dist/cjs/lib/rating/criteria/scoring/metadata/externalUrl.js.map +0 -1
  44. package/dist/cjs/lib/rating/criteria/scoring/metadata/image.js +0 -33
  45. package/dist/cjs/lib/rating/criteria/scoring/metadata/image.js.map +0 -1
  46. package/dist/cjs/lib/rating/criteria/scoring/metadata/imageData.js +0 -40
  47. package/dist/cjs/lib/rating/criteria/scoring/metadata/imageData.js.map +0 -1
  48. package/dist/cjs/lib/rating/criteria/scoring/metadata/index.js +0 -13
  49. package/dist/cjs/lib/rating/criteria/scoring/metadata/index.js.map +0 -1
  50. package/dist/cjs/lib/rating/criteria/scoring/metadata/lib/index.js +0 -5
  51. package/dist/cjs/lib/rating/criteria/scoring/metadata/lib/index.js.map +0 -1
  52. package/dist/cjs/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +0 -25
  53. package/dist/cjs/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +0 -1
  54. package/dist/cjs/lib/rating/criteria/scoring/metadata/name.js +0 -17
  55. package/dist/cjs/lib/rating/criteria/scoring/metadata/name.js.map +0 -1
  56. package/dist/cjs/lib/rating/criteria/scoring/metadata/youtubeUrl.js +0 -23
  57. package/dist/cjs/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +0 -1
  58. package/dist/cjs/lib/rating/criteria/scoring/supply.js +0 -20
  59. package/dist/cjs/lib/rating/criteria/scoring/supply.js.map +0 -1
  60. package/dist/cjs/lib/rating/criteria/scoring/tokenId.js +0 -26
  61. package/dist/cjs/lib/rating/criteria/scoring/tokenId.js.map +0 -1
  62. package/dist/cjs/lib/rating/criteria/scoring/type.js +0 -16
  63. package/dist/cjs/lib/rating/criteria/scoring/type.js.map +0 -1
  64. package/dist/cjs/lib/rating/criteria/scoringCriteria.js +0 -10
  65. package/dist/cjs/lib/rating/criteria/scoringCriteria.js.map +0 -1
  66. package/dist/cjs/lib/rating/index.js +0 -5
  67. package/dist/cjs/lib/rating/index.js.map +0 -1
  68. package/dist/esm/Diviner.js +0 -26
  69. package/dist/esm/Diviner.js.map +0 -1
  70. package/dist/esm/Plugin.js +0 -11
  71. package/dist/esm/Plugin.js.map +0 -1
  72. package/dist/esm/index.js +0 -7
  73. package/dist/esm/index.js.map +0 -1
  74. package/dist/esm/lib/index.js +0 -2
  75. package/dist/esm/lib/index.js.map +0 -1
  76. package/dist/esm/lib/rating/analyzeNft.js +0 -14
  77. package/dist/esm/lib/rating/analyzeNft.js.map +0 -1
  78. package/dist/esm/lib/rating/criteria/index.js +0 -2
  79. package/dist/esm/lib/rating/criteria/index.js.map +0 -1
  80. package/dist/esm/lib/rating/criteria/scoring/contract.js +0 -12
  81. package/dist/esm/lib/rating/criteria/scoring/contract.js.map +0 -1
  82. package/dist/esm/lib/rating/criteria/scoring/index.js +0 -6
  83. package/dist/esm/lib/rating/criteria/scoring/index.js.map +0 -1
  84. package/dist/esm/lib/rating/criteria/scoring/lib/index.js +0 -3
  85. package/dist/esm/lib/rating/criteria/scoring/lib/index.js.map +0 -1
  86. package/dist/esm/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +0 -6
  87. package/dist/esm/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +0 -1
  88. package/dist/esm/lib/rating/criteria/scoring/lib/toBigNumber.js +0 -10
  89. package/dist/esm/lib/rating/criteria/scoring/lib/toBigNumber.js.map +0 -1
  90. package/dist/esm/lib/rating/criteria/scoring/metadata/animationUrl.js +0 -24
  91. package/dist/esm/lib/rating/criteria/scoring/metadata/animationUrl.js.map +0 -1
  92. package/dist/esm/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +0 -80
  93. package/dist/esm/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +0 -1
  94. package/dist/esm/lib/rating/criteria/scoring/metadata/attributes/index.js +0 -2
  95. package/dist/esm/lib/rating/criteria/scoring/metadata/attributes/index.js.map +0 -1
  96. package/dist/esm/lib/rating/criteria/scoring/metadata/backgroundColor.js +0 -18
  97. package/dist/esm/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +0 -1
  98. package/dist/esm/lib/rating/criteria/scoring/metadata/description.js +0 -11
  99. package/dist/esm/lib/rating/criteria/scoring/metadata/description.js.map +0 -1
  100. package/dist/esm/lib/rating/criteria/scoring/metadata/externalUrl.js +0 -15
  101. package/dist/esm/lib/rating/criteria/scoring/metadata/externalUrl.js.map +0 -1
  102. package/dist/esm/lib/rating/criteria/scoring/metadata/image.js +0 -27
  103. package/dist/esm/lib/rating/criteria/scoring/metadata/image.js.map +0 -1
  104. package/dist/esm/lib/rating/criteria/scoring/metadata/imageData.js +0 -34
  105. package/dist/esm/lib/rating/criteria/scoring/metadata/imageData.js.map +0 -1
  106. package/dist/esm/lib/rating/criteria/scoring/metadata/index.js +0 -10
  107. package/dist/esm/lib/rating/criteria/scoring/metadata/index.js.map +0 -1
  108. package/dist/esm/lib/rating/criteria/scoring/metadata/lib/index.js +0 -2
  109. package/dist/esm/lib/rating/criteria/scoring/metadata/lib/index.js.map +0 -1
  110. package/dist/esm/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +0 -17
  111. package/dist/esm/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +0 -1
  112. package/dist/esm/lib/rating/criteria/scoring/metadata/name.js +0 -11
  113. package/dist/esm/lib/rating/criteria/scoring/metadata/name.js.map +0 -1
  114. package/dist/esm/lib/rating/criteria/scoring/metadata/youtubeUrl.js +0 -17
  115. package/dist/esm/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +0 -1
  116. package/dist/esm/lib/rating/criteria/scoring/supply.js +0 -16
  117. package/dist/esm/lib/rating/criteria/scoring/supply.js.map +0 -1
  118. package/dist/esm/lib/rating/criteria/scoring/tokenId.js +0 -22
  119. package/dist/esm/lib/rating/criteria/scoring/tokenId.js.map +0 -1
  120. package/dist/esm/lib/rating/criteria/scoring/type.js +0 -12
  121. package/dist/esm/lib/rating/criteria/scoring/type.js.map +0 -1
  122. package/dist/esm/lib/rating/criteria/scoringCriteria.js +0 -23
  123. package/dist/esm/lib/rating/criteria/scoringCriteria.js.map +0 -1
  124. package/dist/esm/lib/rating/index.js +0 -2
  125. package/dist/esm/lib/rating/index.js.map +0 -1
  126. package/dist/types/Diviner.d.ts +0 -14
  127. package/dist/types/Diviner.d.ts.map +0 -1
  128. package/dist/types/Plugin.d.ts +0 -50
  129. package/dist/types/Plugin.d.ts.map +0 -1
  130. package/dist/types/index.d.ts +0 -6
  131. package/dist/types/index.d.ts.map +0 -1
  132. package/dist/types/lib/index.d.ts +0 -2
  133. package/dist/types/lib/index.d.ts.map +0 -1
  134. package/dist/types/lib/rating/analyzeNft.d.ts +0 -9
  135. package/dist/types/lib/rating/analyzeNft.d.ts.map +0 -1
  136. package/dist/types/lib/rating/criteria/index.d.ts +0 -2
  137. package/dist/types/lib/rating/criteria/index.d.ts.map +0 -1
  138. package/dist/types/lib/rating/criteria/scoring/contract.d.ts +0 -4
  139. package/dist/types/lib/rating/criteria/scoring/contract.d.ts.map +0 -1
  140. package/dist/types/lib/rating/criteria/scoring/index.d.ts +0 -6
  141. package/dist/types/lib/rating/criteria/scoring/index.d.ts.map +0 -1
  142. package/dist/types/lib/rating/criteria/scoring/lib/index.d.ts +0 -3
  143. package/dist/types/lib/rating/criteria/scoring/lib/index.d.ts.map +0 -1
  144. package/dist/types/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts +0 -2
  145. package/dist/types/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts.map +0 -1
  146. package/dist/types/lib/rating/criteria/scoring/lib/toBigNumber.d.ts +0 -3
  147. package/dist/types/lib/rating/criteria/scoring/lib/toBigNumber.d.ts.map +0 -1
  148. package/dist/types/lib/rating/criteria/scoring/metadata/animationUrl.d.ts +0 -5
  149. package/dist/types/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +0 -1
  150. package/dist/types/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts +0 -6
  151. package/dist/types/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +0 -1
  152. package/dist/types/lib/rating/criteria/scoring/metadata/attributes/index.d.ts +0 -2
  153. package/dist/types/lib/rating/criteria/scoring/metadata/attributes/index.d.ts.map +0 -1
  154. package/dist/types/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts +0 -5
  155. package/dist/types/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +0 -1
  156. package/dist/types/lib/rating/criteria/scoring/metadata/description.d.ts +0 -5
  157. package/dist/types/lib/rating/criteria/scoring/metadata/description.d.ts.map +0 -1
  158. package/dist/types/lib/rating/criteria/scoring/metadata/externalUrl.d.ts +0 -5
  159. package/dist/types/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +0 -1
  160. package/dist/types/lib/rating/criteria/scoring/metadata/image.d.ts +0 -5
  161. package/dist/types/lib/rating/criteria/scoring/metadata/image.d.ts.map +0 -1
  162. package/dist/types/lib/rating/criteria/scoring/metadata/imageData.d.ts +0 -5
  163. package/dist/types/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +0 -1
  164. package/dist/types/lib/rating/criteria/scoring/metadata/index.d.ts +0 -10
  165. package/dist/types/lib/rating/criteria/scoring/metadata/index.d.ts.map +0 -1
  166. package/dist/types/lib/rating/criteria/scoring/metadata/lib/index.d.ts +0 -2
  167. package/dist/types/lib/rating/criteria/scoring/metadata/lib/index.d.ts.map +0 -1
  168. package/dist/types/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts +0 -8
  169. package/dist/types/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts.map +0 -1
  170. package/dist/types/lib/rating/criteria/scoring/metadata/name.d.ts +0 -5
  171. package/dist/types/lib/rating/criteria/scoring/metadata/name.d.ts.map +0 -1
  172. package/dist/types/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts +0 -5
  173. package/dist/types/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +0 -1
  174. package/dist/types/lib/rating/criteria/scoring/supply.d.ts +0 -4
  175. package/dist/types/lib/rating/criteria/scoring/supply.d.ts.map +0 -1
  176. package/dist/types/lib/rating/criteria/scoring/tokenId.d.ts +0 -10
  177. package/dist/types/lib/rating/criteria/scoring/tokenId.d.ts.map +0 -1
  178. package/dist/types/lib/rating/criteria/scoring/type.d.ts +0 -4
  179. package/dist/types/lib/rating/criteria/scoring/type.d.ts.map +0 -1
  180. package/dist/types/lib/rating/criteria/scoringCriteria.d.ts +0 -55
  181. package/dist/types/lib/rating/criteria/scoringCriteria.d.ts.map +0 -1
  182. package/dist/types/lib/rating/index.d.ts +0 -2
  183. package/dist/types/lib/rating/index.d.ts.map +0 -1
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreType = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const scoreType = (nft) => {
6
- if (!nft.type)
7
- return crypto_nft_score_model_1.FAIL;
8
- if (typeof nft.type !== 'string')
9
- return crypto_nft_score_model_1.FAIL;
10
- const type = nft.type.toUpperCase();
11
- if (type !== 'ERC721' && type !== 'ERC1155')
12
- return crypto_nft_score_model_1.FAIL;
13
- return crypto_nft_score_model_1.PASS;
14
- };
15
- exports.scoreType = scoreType;
16
- //# sourceMappingURL=type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/type.ts"],"names":[],"mappings":";;;AACA,gFAAyF;AAElF,MAAM,SAAS,GAA2C,CAAC,GAAkB,EAAE,EAAE;IACtF,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,6BAAI,CAAA;IAC1B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,6BAAI,CAAA;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IACnC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,6BAAI,CAAA;IACxD,OAAO,6BAAI,CAAA;AACb,CAAC,CAAA;AANY,QAAA,SAAS,aAMrB"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoringCriteria = void 0;
4
- const scoring_1 = require("./scoring");
5
- const attributesScoringCriteria = {
6
- Attributes: { score: scoring_1.evaluateNftAttributes, weight: 1 },
7
- };
8
- const metadataScoringCriteria = Object.assign({ 'Animation URL': { score: scoring_1.scoreNftAnimationUrl, weight: 1 }, 'Background Color': { score: scoring_1.scoreNftBackgroundColor, weight: 1 }, Description: { score: scoring_1.scoreNftDescription, weight: 1 }, 'External Url': { score: scoring_1.scoreNftExternalUrl, weight: 1 }, Image: { score: scoring_1.scoreNftImage, weight: 1 }, 'Image Data': { score: scoring_1.scoreNftImageData, weight: 1 }, Name: { score: scoring_1.scoreNftName, weight: 1 }, 'YouTube URL': { score: scoring_1.scoreNftYoutubeUrl, weight: 1 } }, attributesScoringCriteria);
9
- exports.scoringCriteria = Object.assign({ 'Contract Address': { score: scoring_1.scoreContractAddress, weight: 1 }, Supply: { score: scoring_1.scoreSupply, weight: 1 }, 'Token Id': { score: scoring_1.scoreTokenId, weight: 1 }, Type: { score: scoring_1.scoreType, weight: 1 } }, metadataScoringCriteria);
10
- //# sourceMappingURL=scoringCriteria.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scoringCriteria.js","sourceRoot":"","sources":["../../../../../src/lib/rating/criteria/scoringCriteria.ts"],"names":[],"mappings":";;;AAAA,uCAckB;AAElB,MAAM,yBAAyB,GAAG;IAChC,UAAU,EAAE,EAAE,KAAK,EAAE,+BAAqB,EAAE,MAAM,EAAE,CAAC,EAAE;CACxD,CAAA;AAED,MAAM,uBAAuB,mBAC3B,eAAe,EAAE,EAAE,KAAK,EAAE,8BAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,EAC3D,kBAAkB,EAAE,EAAE,KAAK,EAAE,iCAAuB,EAAE,MAAM,EAAE,CAAC,EAAE,EACjE,WAAW,EAAE,EAAE,KAAK,EAAE,6BAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,EACtD,cAAc,EAAE,EAAE,KAAK,EAAE,6BAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,EACzD,KAAK,EAAE,EAAE,KAAK,EAAE,uBAAa,EAAE,MAAM,EAAE,CAAC,EAAE,EAC1C,YAAY,EAAE,EAAE,KAAK,EAAE,2BAAiB,EAAE,MAAM,EAAE,CAAC,EAAE,EACrD,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAY,EAAE,MAAM,EAAE,CAAC,EAAE,EACxC,aAAa,EAAE,EAAE,KAAK,EAAE,4BAAkB,EAAE,MAAM,EAAE,CAAC,EAAE,IACpD,yBAAyB,CAC7B,CAAA;AAEY,QAAA,eAAe,mBAC1B,kBAAkB,EAAE,EAAE,KAAK,EAAE,8BAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,EAC9D,MAAM,EAAE,EAAE,KAAK,EAAE,qBAAW,EAAE,MAAM,EAAE,CAAC,EAAE,EACzC,UAAU,EAAE,EAAE,KAAK,EAAE,sBAAY,EAAE,MAAM,EAAE,CAAC,EAAE,EAC9C,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAS,EAAE,MAAM,EAAE,CAAC,EAAE,IAClC,uBAAuB,EAC3B"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./analyzeNft"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/rating/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B"}
@@ -1,26 +0,0 @@
1
- import { AbstractDiviner } from '@xyo-network/abstract-diviner';
2
- import { PayloadHasher } from '@xyo-network/core';
3
- import { isNftInfo, NftScoreDivinerConfigSchema, NftScoreSchema, } from '@xyo-network/crypto-nft-payload-plugin';
4
- import { analyzeNft } from './lib';
5
- const toNftScorePayload = (nftInfo, scores) => {
6
- const { address, chainId, type } = nftInfo;
7
- return { address, chainId, schema: NftScoreSchema, scores, type };
8
- };
9
- export const isNftScore = (payload) => payload.schema === NftScoreSchema;
10
- export class NftScoreDiviner extends AbstractDiviner {
11
- static configSchemas = [NftScoreDivinerConfigSchema];
12
- divineHandler = async (payloads) => {
13
- const nftInfos = payloads?.filter(isNftInfo) ?? [];
14
- const results = await Promise.all(nftInfos.map(async (nftInfo) => {
15
- const [score, sourceHash] = await Promise.all([
16
- // Analyze the NFT
17
- toNftScorePayload(nftInfo, await analyzeNft(nftInfo)),
18
- // Hash the source payload
19
- PayloadHasher.hashAsync(nftInfo),
20
- ]);
21
- return { ...score, sources: [sourceHash] };
22
- }));
23
- return results;
24
- };
25
- }
26
- //# sourceMappingURL=Diviner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EACL,SAAS,EAIT,2BAA2B,EAC3B,cAAc,GACf,MAAM,wCAAwC,CAAA;AAK/C,OAAO,EAAE,UAAU,EAAe,MAAM,OAAO,CAAA;AAI/C,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAE,MAAmB,EAAY,EAAE;IAC5E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACnE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAuB,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,cAAc,CAAA;AAEtG,MAAM,OAAO,eAA+E,SAAQ,eAAwB;IAC1H,MAAM,CAAU,aAAa,GAAG,CAAC,2BAA2B,CAAC,CAAA;IAE1C,aAAa,GAAG,KAAK,EAAE,QAAoB,EAAsB,EAAE;QACpF,MAAM,QAAQ,GAAG,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QAClD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAoB,KAAK,EAAE,OAAO,EAAE,EAAE;YAChD,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC5C,kBAAkB;gBAClB,iBAAiB,CAAC,OAAO,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;gBACrD,0BAA0B;gBAC1B,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC;aACjC,CAAC,CAAA;YACF,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAA;QAC5C,CAAC,CAAC,CACH,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA"}
@@ -1,11 +0,0 @@
1
- import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin';
2
- import { PayloadSetSchema } from '@xyo-network/payload-model';
3
- import { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin';
4
- import { NftScoreDiviner } from './Diviner';
5
- export const NftScoreDivinerPlugin = () => createPayloadSetDivinerPlugin({ required: { [NftSchema]: 1 }, schema: PayloadSetSchema }, {
6
- diviner: async (params) => {
7
- const result = await NftScoreDiviner.create(params);
8
- return result;
9
- },
10
- });
11
- //# sourceMappingURL=Plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CACxC,6BAA6B,CAC3B,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC1D;IACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CACF,CAAA"}
package/dist/esm/index.js DELETED
@@ -1,7 +0,0 @@
1
- import { NftScoreDivinerPlugin } from './Plugin';
2
- export * from './Diviner';
3
- export * from './lib';
4
- export { NftScoreDivinerPlugin };
5
- // eslint-disable-next-line import/no-default-export
6
- export default NftScoreDivinerPlugin;
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEhD,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AAErB,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC,oDAAoD;AACpD,eAAe,qBAAqB,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './rating';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -1,14 +0,0 @@
1
- import { scoringCriteria } from './criteria';
2
- export const analyzeNft = async (
3
- /**
4
- * The NFT to evaluate
5
- */
6
- nft) => {
7
- const result = Object.fromEntries(await Promise.all(Object.entries(scoringCriteria).map(async ([key, { score, weight }]) => {
8
- const rawScore = await score(nft);
9
- const weighted = rawScore.map((v) => v * weight);
10
- return [key, weighted];
11
- })));
12
- return result;
13
- };
14
- //# sourceMappingURL=analyzeNft.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzeNft.js","sourceRoot":"","sources":["../../../../src/lib/rating/analyzeNft.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ5C,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK;AAC7B;;GAEG;AACH,GAAkB,EACI,EAAE;IACxB,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACrE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAU,CAAA;QACzD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAU,CAAA;IACjC,CAAC,CAAC,CACH,CACa,CAAA;IAChB,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './scoringCriteria';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/rating/criteria/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -1,12 +0,0 @@
1
- import { isAddress } from '@ethersproject/address';
2
- import { FAIL, PASS } from '@xyo-network/crypto-nft-score-model';
3
- export const scoreContractAddress = (nft) => {
4
- if (!nft.address)
5
- return FAIL;
6
- if (typeof nft.address !== 'string')
7
- return FAIL;
8
- if (!isAddress(nft.address))
9
- return FAIL;
10
- return PASS;
11
- };
12
- //# sourceMappingURL=contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EAAE,IAAI,EAAE,IAAI,EAA2B,MAAM,qCAAqC,CAAA;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAA2C,CAAC,GAAkB,EAAE,EAAE;IACjG,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- export * from './contract';
2
- export * from './metadata';
3
- export * from './supply';
4
- export * from './tokenId';
5
- export * from './type';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './isValidPositiveBigNumber';
2
- export * from './toBigNumber';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,eAAe,CAAA"}
@@ -1,6 +0,0 @@
1
- import { toBigNumber } from './toBigNumber';
2
- export const isValidPositiveBigNumber = (value) => {
3
- const num = toBigNumber(value);
4
- return !num || num.isNeg() ? false : true;
5
- };
6
- //# sourceMappingURL=isValidPositiveBigNumber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isValidPositiveBigNumber.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAW,EAAE;IACjE,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3C,CAAC,CAAA"}
@@ -1,10 +0,0 @@
1
- import { BigNumber } from '@xylabs/bignumber';
2
- export const toBigNumber = (value) => {
3
- try {
4
- return new BigNumber(value);
5
- }
6
- catch (error) {
7
- return undefined;
8
- }
9
- };
10
- //# sourceMappingURL=toBigNumber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toBigNumber.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/lib/toBigNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAyB,EAAE;IAClE,IAAI;QACF,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAA;KAC5B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA"}
@@ -1,24 +0,0 @@
1
- import { incrementPossible, incrementTotal, incrementTotalAndPossible, PASS } from '@xyo-network/crypto-nft-score-model';
2
- import { isSecure, isValidUrl, isWeb3 } from './lib';
3
- export const scoreNftAnimationUrl = (nft) => {
4
- return scoreAnimationUrl(nft.metadata?.animation_url);
5
- };
6
- export const scoreAnimationUrl = (animation_url) => {
7
- const score = [0, 0];
8
- if (animation_url === undefined || animation_url === null)
9
- return PASS;
10
- incrementPossible(score);
11
- if (typeof animation_url !== 'string')
12
- return score;
13
- incrementTotalAndPossible(score);
14
- if (!isValidUrl(animation_url))
15
- return score;
16
- incrementTotalAndPossible(score);
17
- if (!isSecure(animation_url))
18
- return score;
19
- incrementTotalAndPossible(score);
20
- if (!isWeb3(animation_url))
21
- return score;
22
- return incrementTotal(score);
23
- };
24
- //# sourceMappingURL=animationUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"animationUrl.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/animationUrl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,yBAAyB,EAAE,IAAI,EAAe,MAAM,qCAAqC,CAAA;AAErI,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAyC,EAAe,EAAE;IAC7F,OAAO,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAe,EAAE;IACvE,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACtE,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACxB,IAAI,OAAO,aAAa,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACnD,yBAAyB,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5C,yBAAyB,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1C,yBAAyB,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -1,80 +0,0 @@
1
- import { incrementPossible, incrementTotal, incrementTotalAndPossible } from '@xyo-network/crypto-nft-score-model';
2
- const isDate = (value) => {
3
- if (isNumber(value)) {
4
- try {
5
- new Date(value);
6
- return true;
7
- }
8
- catch (error) {
9
- return false;
10
- }
11
- }
12
- return false;
13
- };
14
- const isNumber = (value) => typeof value === 'number';
15
- const isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
16
- const isNonEmptyString = (value) => typeof value === 'string' && value.length > 0;
17
- const isNonEmptyStringOrNumber = (value) => value === 'number' || isNonEmptyString(value);
18
- export const evaluateNftAttributes = (nft) => !nft?.metadata?.attributes ? [0, 1] : evaluateAttributes(nft?.metadata?.attributes);
19
- export const evaluateAttributes = (attributes) => {
20
- if (!attributes || !Array.isArray(attributes) || attributes.length === 0)
21
- return [0, 1];
22
- const score = [0, 0];
23
- for (const attribute of attributes) {
24
- const [attributeTotal, attributePossible] = evaluateAttribute(attribute);
25
- incrementTotalAndPossible(score, attributeTotal, attributePossible);
26
- }
27
- return [1, 1];
28
- };
29
- export const evaluateAttribute = (attribute) => {
30
- const score = [0, 1];
31
- const max_value = attribute?.max_value;
32
- const trait_type = attribute?.trait_type;
33
- const value = attribute?.value;
34
- // Validate trait_type & value
35
- if (!attribute || typeof attribute !== 'object' || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value))
36
- return score;
37
- incrementTotal(score);
38
- // Validate display_type
39
- incrementPossible(score);
40
- if (validDisplayType(attribute))
41
- incrementTotal(score);
42
- // Validate max_value
43
- if (max_value !== undefined) {
44
- incrementPossible(score);
45
- if (isNumber(max_value) && isNumber(value) && value <= max_value)
46
- incrementTotal(score);
47
- }
48
- return score;
49
- };
50
- const validDisplayType = (attribute) => {
51
- switch (attribute?.display_type) {
52
- case 'number':
53
- case 'boost_number': {
54
- if (isNumber(attribute?.value))
55
- return true;
56
- break;
57
- }
58
- case 'boost_percentage': {
59
- if (isPercentage(attribute?.value))
60
- return true;
61
- break;
62
- }
63
- case 'date': {
64
- if (isDate(attribute?.value))
65
- return true;
66
- break;
67
- }
68
- case 'string':
69
- case undefined: {
70
- if (isNonEmptyString(attribute?.value))
71
- return true;
72
- break;
73
- }
74
- default: {
75
- break;
76
- }
77
- }
78
- return false;
79
- };
80
- //# sourceMappingURL=evaluateAttributes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluateAttributes.js","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './evaluateAttributes';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -1,18 +0,0 @@
1
- import { incrementPossible, incrementTotal, incrementTotalAndPossible, PASS } from '@xyo-network/crypto-nft-score-model';
2
- const isHexColor = /^[0-9A-F]{6}$/i;
3
- export const scoreNftBackgroundColor = (nft) => {
4
- return scoreBackgroundColor(nft.metadata?.background_color);
5
- };
6
- export const scoreBackgroundColor = (background_color) => {
7
- const score = [0, 0];
8
- if (background_color === undefined || background_color === null)
9
- return PASS;
10
- incrementPossible(score);
11
- if (typeof background_color !== 'string')
12
- return score;
13
- incrementTotalAndPossible(score);
14
- if (!background_color.toUpperCase().match(isHexColor))
15
- return score;
16
- return incrementTotal(score);
17
- };
18
- //# sourceMappingURL=backgroundColor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backgroundColor.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/backgroundColor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,yBAAyB,EAAE,IAAI,EAAe,MAAM,qCAAqC,CAAA;AAErI,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAyC,EAAe,EAAE;IAChG,OAAO,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAAyB,EAAe,EAAE;IAC7E,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC5E,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACxB,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACtD,yBAAyB,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IACnE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -1,11 +0,0 @@
1
- import { incrementTotal } from '@xyo-network/crypto-nft-score-model';
2
- export const scoreNftDescription = (nft) => {
3
- return scoreDescription(nft.metadata?.description);
4
- };
5
- export const scoreDescription = (description) => {
6
- const score = [0, 1];
7
- if (!description || typeof description !== 'string')
8
- return score;
9
- return incrementTotal(score);
10
- };
11
- //# sourceMappingURL=description.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"description.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/description.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAe,MAAM,qCAAqC,CAAA;AAEjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAyC,EAAe,EAAE;IAC5F,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAoB,EAAe,EAAE;IACpE,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACjE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -1,15 +0,0 @@
1
- import { incrementTotal } from '@xyo-network/crypto-nft-score-model';
2
- import { isSecure, isValidUrl } from './lib';
3
- export const scoreNftExternalUrl = (nft) => {
4
- return scoreExternalUrl(nft?.metadata?.external_url);
5
- };
6
- export const scoreExternalUrl = (external_url) => {
7
- const score = [0, 2];
8
- if (external_url === undefined || external_url === null || typeof external_url !== 'string' || !isValidUrl(external_url))
9
- return score;
10
- incrementTotal(score);
11
- if (!isSecure(external_url))
12
- return score;
13
- return incrementTotal(score);
14
- };
15
- //# sourceMappingURL=externalUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"externalUrl.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/externalUrl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAe,MAAM,qCAAqC,CAAA;AAEjF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAyC,EAAe,EAAE;IAC5F,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;AACtD,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAAqB,EAAe,EAAE;IACrE,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAA;IACtI,cAAc,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -1,27 +0,0 @@
1
- import { incrementTotal, PASS } from '@xyo-network/crypto-nft-score-model';
2
- import { isSecure, isValidUrl, isWeb3 } from './lib';
3
- const MaxPossibleImageScore = 3;
4
- export const scoreNftImage = (nft) => {
5
- // If there's no image data
6
- if (!nft?.metadata?.image) {
7
- // but there is image data, skip this scoring criteria, otherwise fail it completely
8
- return nft.metadata?.image_data ? PASS : [0, MaxPossibleImageScore];
9
- }
10
- else {
11
- return scoreImage(nft.metadata?.image);
12
- }
13
- };
14
- export const scoreImage = (image) => {
15
- const score = [0, MaxPossibleImageScore];
16
- if (!image || typeof image !== 'string' || !isValidUrl(image))
17
- return score;
18
- incrementTotal(score);
19
- if (!isSecure(image))
20
- return score;
21
- incrementTotal(score);
22
- if (!isWeb3(image))
23
- return score;
24
- incrementTotal(score);
25
- return score;
26
- };
27
- //# sourceMappingURL=image.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/image.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAe,MAAM,qCAAqC,CAAA;AAEvF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEpD,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAE/B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAyC,EAAe,EAAE;IACtF,2BAA2B;IAC3B,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;QACzB,oFAAoF;QACpF,OAAO,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;KACpE;SAAM;QACL,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;KACvC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAe,EAAE;IACxD,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACrD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3E,cAAc,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAClC,cAAc,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAChC,cAAc,CAAC,KAAK,CAAC,CAAA;IACrB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -1,34 +0,0 @@
1
- import { PASS } from '@xyo-network/crypto-nft-score-model';
2
- import { parse } from 'svg-parser';
3
- const MaxPossibleImageDataScore = 1;
4
- // NOTE: There is probably a deeper check we can do
5
- // here, but this is a good start
6
- const isValidImageData = (image_data) => {
7
- // If it doesn't start with an svg tag, it's not an svg
8
- if (!image_data.startsWith('<svg'))
9
- return false;
10
- try {
11
- // If it can't be parsed, it's not an svg
12
- parse(image_data);
13
- return true;
14
- }
15
- catch (error) {
16
- return false;
17
- }
18
- };
19
- export const scoreNftImageData = (nft) => {
20
- // If there's no image data
21
- if (!nft?.metadata?.image_data) {
22
- // but there is an image, skip this scoring criteria, otherwise fail it completely
23
- return nft.metadata?.image ? PASS : [0, MaxPossibleImageDataScore];
24
- }
25
- else {
26
- return scoreImageData(nft.metadata?.image_data);
27
- }
28
- };
29
- export const scoreImageData = (image_data) => {
30
- return !image_data || typeof image_data !== 'string' || !isValidImageData(image_data)
31
- ? [0, MaxPossibleImageDataScore]
32
- : [MaxPossibleImageDataScore, MaxPossibleImageDataScore];
33
- };
34
- //# sourceMappingURL=imageData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imageData.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/imageData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAe,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,yBAAyB,GAAG,CAAC,CAAA;AAEnC,mDAAmD;AACnD,iCAAiC;AACjC,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAW,EAAE;IACvD,uDAAuD;IACvD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAChD,IAAI;QACF,yCAAyC;QACzC,KAAK,CAAC,UAAU,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAyC,EAAe,EAAE;IAC1F,2BAA2B;IAC3B,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE;QAC9B,kFAAkF;QAClF,OAAO,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAA;KACnE;SAAM;QACL,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;KAChD;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAmB,EAAe,EAAE;IACjE,OAAO,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACnF,CAAC,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC;QAChC,CAAC,CAAC,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAA;AAC5D,CAAC,CAAA"}
@@ -1,10 +0,0 @@
1
- export * from './animationUrl';
2
- export * from './attributes';
3
- export * from './backgroundColor';
4
- export * from './description';
5
- export * from './externalUrl';
6
- export * from './image';
7
- export * from './imageData';
8
- export * from './name';
9
- export * from './youtubeUrl';
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './urlHelpers';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -1,17 +0,0 @@
1
- import { URL } from '@xylabs/url';
2
- export const web3Protocols = ['ipfs:', 'ar:'];
3
- export const toUrl = (url) => {
4
- if (!url)
5
- return undefined;
6
- try {
7
- return new URL(url);
8
- }
9
- catch (e) {
10
- return undefined;
11
- }
12
- };
13
- export const isValidUrl = (url) => toUrl(url) !== undefined;
14
- export const isWeb3 = (url) => web3Protocols.some((protocol) => protocol === toUrl(url)?.protocol);
15
- export const isWeb2 = (url) => !isWeb3(url);
16
- export const isSecure = (url) => isWeb3(url) || toUrl(url)?.protocol === 'https:';
17
- //# sourceMappingURL=urlHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"urlHelpers.js","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAE7C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAmB,EAAmB,EAAE;IAC5D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,IAAI;QACF,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;KACpB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAA;AACpF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAA;AAC3H,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAA"}
@@ -1,11 +0,0 @@
1
- import { incrementTotal } from '@xyo-network/crypto-nft-score-model';
2
- export const scoreNftName = (nft) => {
3
- return scoreName(nft.metadata?.name);
4
- };
5
- export const scoreName = (name) => {
6
- const score = [0, 1];
7
- if (!name || typeof name !== 'string')
8
- return score;
9
- return incrementTotal(score);
10
- };
11
- //# sourceMappingURL=name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"name.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/name.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAe,MAAM,qCAAqC,CAAA;AAEjF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAyC,EAAe,EAAE;IACrF,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAe,EAAE;IACtD,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACnD,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -1,17 +0,0 @@
1
- import { incrementTotal, PASS } from '@xyo-network/crypto-nft-score-model';
2
- import { isSecure, isValidUrl } from './lib';
3
- export const scoreNftYoutubeUrl = (nft) => {
4
- return scoreYoutubeUrl(nft?.metadata?.youtube_url);
5
- };
6
- export const scoreYoutubeUrl = (youtube_url) => {
7
- if (youtube_url === undefined || youtube_url === null)
8
- return PASS;
9
- const score = [0, 2];
10
- if (typeof youtube_url !== 'string' || !isValidUrl(youtube_url))
11
- return score;
12
- incrementTotal(score);
13
- if (!isSecure(youtube_url))
14
- return score;
15
- return incrementTotal(score);
16
- };
17
- //# sourceMappingURL=youtubeUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"youtubeUrl.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/youtubeUrl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAe,MAAM,qCAAqC,CAAA;AAEvF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAyC,EAAe,EAAE;IAC3F,OAAO,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;AACpD,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAAoB,EAAe,EAAE;IACnE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAClE,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7E,cAAc,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA"}
@@ -1,16 +0,0 @@
1
- import { FAIL, PASS } from '@xyo-network/crypto-nft-score-model';
2
- import { isValidPositiveBigNumber } from './lib';
3
- export const scoreSupply = (nft) => {
4
- if (!nft.supply)
5
- return FAIL;
6
- if (typeof nft.supply !== 'string')
7
- return FAIL;
8
- try {
9
- // Check for positive BigNumber since data type is uint256
10
- return isValidPositiveBigNumber(nft.supply) ? PASS : FAIL;
11
- }
12
- catch (_error) {
13
- return FAIL;
14
- }
15
- };
16
- //# sourceMappingURL=supply.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supply.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/supply.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAA2B,MAAM,qCAAqC,CAAA;AAEzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAA;AAEhD,MAAM,CAAC,MAAM,WAAW,GAA2C,CAAC,GAAkB,EAAE,EAAE;IACxF,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAC5B,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC/C,IAAI;QACF,0DAA0D;QAC1D,OAAO,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;KAC1D;IAAC,OAAO,MAAM,EAAE;QACf,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA"}
@@ -1,22 +0,0 @@
1
- import { FAIL, PASS } from '@xyo-network/crypto-nft-score-model';
2
- import { isValidPositiveBigNumber } from './lib';
3
- /**
4
- * Callers SHALL NOT assume that ID numbers have any specific pattern to them, and
5
- * MUST treat the ID as a "black box"
6
- * @param nft
7
- * @returns
8
- */
9
- export const scoreTokenId = (nft) => {
10
- if (!nft.tokenId)
11
- return FAIL;
12
- if (typeof nft.tokenId !== 'string')
13
- return FAIL;
14
- try {
15
- // Check for positive BigNumber since data type is uint256
16
- return isValidPositiveBigNumber(nft.tokenId) ? PASS : FAIL;
17
- }
18
- catch (_error) {
19
- return FAIL;
20
- }
21
- };
22
- //# sourceMappingURL=tokenId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenId.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/tokenId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAA2B,MAAM,qCAAqC,CAAA;AAEzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAA2C,CAAC,GAAkB,EAAE,EAAE;IACzF,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI;QACF,0DAA0D;QAC1D,OAAO,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;KAC3D;IAAC,OAAO,MAAM,EAAE;QACf,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA"}