@xyo-network/crypto-nft-collection-diviner-score-plugin 3.1.1 → 3.2.0-rc.1

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.
@@ -1,8 +1,8 @@
1
1
  import { NftCollectionScoreDiviner } from './Diviner.ts';
2
2
  export declare const NftCollectionScoreDivinerPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<NftCollectionScoreDiviner<import("@xylabs/object").BaseParamsFields & {
3
- account?: import(".store/@xyo-network-account-model-virtual-0c2e9849ce/package").AccountInstance | "random";
3
+ account?: import(".store/@xyo-network-account-model-virtual-3409e52736/package").AccountInstance | "random";
4
4
  addToResolvers?: boolean;
5
- additionalSigners?: import(".store/@xyo-network-account-model-virtual-0c2e9849ce/package").AccountInstance[];
5
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-3409e52736/package").AccountInstance[];
6
6
  allowNameResolution?: boolean;
7
7
  config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
8
8
  schema: "network.xyo.crypto.nft.collection.score.diviner.config";
@@ -1,4 +1,24 @@
1
1
  import type { NftCollectionAttributeMetrics } from '@xyo-network/crypto-nft-collection-payload-plugin';
2
2
  import type { Score } from '@xyo-network/crypto-nft-score-model';
3
+ /**
4
+ * We're working on some assumptions here:
5
+ *
6
+ * - If you have a 100% chance of getting a trait, everyone get's a trophy
7
+ * - If you have a 50% chance of getting a trait, it's not rare
8
+ * - If you have a 0% chance of getting a trait, it's not fun
9
+ *
10
+ * So we're looking for something Pareto-ish (somewhere between
11
+ * 80/20 or 90/10) as that's a good & sustainable model for the
12
+ * distribution of many traits in real life.
13
+ * However, we also don't want to maximally reward collections
14
+ * that have a lot of single attributes distributed uniformly
15
+ * (basically a 0% trait probably) as that's perfectly entropic
16
+ * but not very interesting (some overlap is desirable).
17
+ * So we're using a Gaussian distribution to model the
18
+ * probability density of the joint probability of all traits
19
+ * centered around 15%.
20
+ * @param info
21
+ * @returns
22
+ */
3
23
  export declare const scoreTotalAttributes: (info: NftCollectionAttributeMetrics) => Score;
4
24
  //# sourceMappingURL=scoreTotalAttributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoreTotalAttributes.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/scoreTotalAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACtG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAsDhE,eAAO,MAAM,oBAAoB,SAAU,6BAA6B,KAAG,KAU1E,CAAA"}
1
+ {"version":3,"file":"scoreTotalAttributes.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/scoreTotalAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACtG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAkChE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB,SAAU,6BAA6B,KAAG,KAU1E,CAAA"}
@@ -1,4 +1,16 @@
1
1
  import type { NftCollectionCount } from '@xyo-network/crypto-nft-collection-payload-plugin';
2
2
  import type { Score } from '@xyo-network/crypto-nft-score-model';
3
+ /**
4
+ * We're working on some assumptions here:
5
+ * - If there's < 1000 NFTs in your collection it starts becoming too niche
6
+ * - If there's > 20,000 NFTs in your collection it starts becoming too broad
7
+ * So there's a sweet spot somewhere between 2000 and 10,000
8
+ * where a collection has enough NFTs to be interesting, but
9
+ * not so many that it's teetering on a diluted money grab.
10
+ * To model that we're using a log-normal distribution optimized
11
+ * to maximally reward collections in the aforementioned range
12
+ * @param nft
13
+ * @returns
14
+ */
3
15
  export declare const scoreTotal: (nft: NftCollectionCount) => Score;
4
16
  //# sourceMappingURL=total.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"total.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/total.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AA4ChE,eAAO,MAAM,UAAU,QAAS,kBAAkB,KAAG,KAIpD,CAAA"}
1
+ {"version":3,"file":"total.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/total.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAgChE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,QAAS,kBAAkB,KAAG,KAIpD,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { NftCollectionScoreDiviner } from './Diviner.ts';
2
2
  export declare const NftCollectionScoreDivinerPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<NftCollectionScoreDiviner<import("@xylabs/object").BaseParamsFields & {
3
- account?: import(".store/@xyo-network-account-model-virtual-0c2e9849ce/package").AccountInstance | "random";
3
+ account?: import(".store/@xyo-network-account-model-virtual-3409e52736/package").AccountInstance | "random";
4
4
  addToResolvers?: boolean;
5
- additionalSigners?: import(".store/@xyo-network-account-model-virtual-0c2e9849ce/package").AccountInstance[];
5
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-3409e52736/package").AccountInstance[];
6
6
  allowNameResolution?: boolean;
7
7
  config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
8
8
  schema: "network.xyo.crypto.nft.collection.score.diviner.config";
@@ -1,4 +1,24 @@
1
1
  import type { NftCollectionAttributeMetrics } from '@xyo-network/crypto-nft-collection-payload-plugin';
2
2
  import type { Score } from '@xyo-network/crypto-nft-score-model';
3
+ /**
4
+ * We're working on some assumptions here:
5
+ *
6
+ * - If you have a 100% chance of getting a trait, everyone get's a trophy
7
+ * - If you have a 50% chance of getting a trait, it's not rare
8
+ * - If you have a 0% chance of getting a trait, it's not fun
9
+ *
10
+ * So we're looking for something Pareto-ish (somewhere between
11
+ * 80/20 or 90/10) as that's a good & sustainable model for the
12
+ * distribution of many traits in real life.
13
+ * However, we also don't want to maximally reward collections
14
+ * that have a lot of single attributes distributed uniformly
15
+ * (basically a 0% trait probably) as that's perfectly entropic
16
+ * but not very interesting (some overlap is desirable).
17
+ * So we're using a Gaussian distribution to model the
18
+ * probability density of the joint probability of all traits
19
+ * centered around 15%.
20
+ * @param info
21
+ * @returns
22
+ */
3
23
  export declare const scoreTotalAttributes: (info: NftCollectionAttributeMetrics) => Score;
4
24
  //# sourceMappingURL=scoreTotalAttributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoreTotalAttributes.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/scoreTotalAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACtG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAsDhE,eAAO,MAAM,oBAAoB,SAAU,6BAA6B,KAAG,KAU1E,CAAA"}
1
+ {"version":3,"file":"scoreTotalAttributes.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/scoreTotalAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACtG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAkChE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB,SAAU,6BAA6B,KAAG,KAU1E,CAAA"}
@@ -1,4 +1,16 @@
1
1
  import type { NftCollectionCount } from '@xyo-network/crypto-nft-collection-payload-plugin';
2
2
  import type { Score } from '@xyo-network/crypto-nft-score-model';
3
+ /**
4
+ * We're working on some assumptions here:
5
+ * - If there's < 1000 NFTs in your collection it starts becoming too niche
6
+ * - If there's > 20,000 NFTs in your collection it starts becoming too broad
7
+ * So there's a sweet spot somewhere between 2000 and 10,000
8
+ * where a collection has enough NFTs to be interesting, but
9
+ * not so many that it's teetering on a diluted money grab.
10
+ * To model that we're using a log-normal distribution optimized
11
+ * to maximally reward collections in the aforementioned range
12
+ * @param nft
13
+ * @returns
14
+ */
3
15
  export declare const scoreTotal: (nft: NftCollectionCount) => Score;
4
16
  //# sourceMappingURL=total.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"total.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/total.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AA4ChE,eAAO,MAAM,UAAU,QAAS,kBAAkB,KAAG,KAIpD,CAAA"}
1
+ {"version":3,"file":"total.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/total.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAgChE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,QAAS,kBAAkB,KAAG,KAIpD,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { NftCollectionScoreDiviner } from './Diviner.ts';
2
2
  export declare const NftCollectionScoreDivinerPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<NftCollectionScoreDiviner<import("@xylabs/object").BaseParamsFields & {
3
- account?: import(".store/@xyo-network-account-model-virtual-0c2e9849ce/package").AccountInstance | "random";
3
+ account?: import(".store/@xyo-network-account-model-virtual-3409e52736/package").AccountInstance | "random";
4
4
  addToResolvers?: boolean;
5
- additionalSigners?: import(".store/@xyo-network-account-model-virtual-0c2e9849ce/package").AccountInstance[];
5
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-3409e52736/package").AccountInstance[];
6
6
  allowNameResolution?: boolean;
7
7
  config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
8
8
  schema: "network.xyo.crypto.nft.collection.score.diviner.config";
@@ -1,4 +1,24 @@
1
1
  import type { NftCollectionAttributeMetrics } from '@xyo-network/crypto-nft-collection-payload-plugin';
2
2
  import type { Score } from '@xyo-network/crypto-nft-score-model';
3
+ /**
4
+ * We're working on some assumptions here:
5
+ *
6
+ * - If you have a 100% chance of getting a trait, everyone get's a trophy
7
+ * - If you have a 50% chance of getting a trait, it's not rare
8
+ * - If you have a 0% chance of getting a trait, it's not fun
9
+ *
10
+ * So we're looking for something Pareto-ish (somewhere between
11
+ * 80/20 or 90/10) as that's a good & sustainable model for the
12
+ * distribution of many traits in real life.
13
+ * However, we also don't want to maximally reward collections
14
+ * that have a lot of single attributes distributed uniformly
15
+ * (basically a 0% trait probably) as that's perfectly entropic
16
+ * but not very interesting (some overlap is desirable).
17
+ * So we're using a Gaussian distribution to model the
18
+ * probability density of the joint probability of all traits
19
+ * centered around 15%.
20
+ * @param info
21
+ * @returns
22
+ */
3
23
  export declare const scoreTotalAttributes: (info: NftCollectionAttributeMetrics) => Score;
4
24
  //# sourceMappingURL=scoreTotalAttributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoreTotalAttributes.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/scoreTotalAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACtG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAsDhE,eAAO,MAAM,oBAAoB,SAAU,6BAA6B,KAAG,KAU1E,CAAA"}
1
+ {"version":3,"file":"scoreTotalAttributes.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/scoreTotalAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACtG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAkChE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB,SAAU,6BAA6B,KAAG,KAU1E,CAAA"}
@@ -1,4 +1,16 @@
1
1
  import type { NftCollectionCount } from '@xyo-network/crypto-nft-collection-payload-plugin';
2
2
  import type { Score } from '@xyo-network/crypto-nft-score-model';
3
+ /**
4
+ * We're working on some assumptions here:
5
+ * - If there's < 1000 NFTs in your collection it starts becoming too niche
6
+ * - If there's > 20,000 NFTs in your collection it starts becoming too broad
7
+ * So there's a sweet spot somewhere between 2000 and 10,000
8
+ * where a collection has enough NFTs to be interesting, but
9
+ * not so many that it's teetering on a diluted money grab.
10
+ * To model that we're using a log-normal distribution optimized
11
+ * to maximally reward collections in the aforementioned range
12
+ * @param nft
13
+ * @returns
14
+ */
3
15
  export declare const scoreTotal: (nft: NftCollectionCount) => Score;
4
16
  //# sourceMappingURL=total.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"total.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/total.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AA4ChE,eAAO,MAAM,UAAU,QAAS,kBAAkB,KAAG,KAIpD,CAAA"}
1
+ {"version":3,"file":"total.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/total.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAgChE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,QAAS,kBAAkB,KAAG,KAIpD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/crypto-nft-collection-diviner-score-plugin",
3
- "version": "3.1.1",
3
+ "version": "3.2.0-rc.1",
4
4
  "description": "Typescript/Javascript Plugins for XYO Platform",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,27 +29,28 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "dependencies": {
32
- "@xyo-network/crypto-nft-collection-payload-plugin": "^3.1.1",
33
- "@xyo-network/crypto-nft-payload-plugin": "^3.1.1",
34
- "@xyo-network/crypto-nft-score-model": "^3.1.1",
35
- "@xyo-network/diviner-abstract": "^3.2.0",
36
- "@xyo-network/diviner-model": "^3.2.0",
37
- "@xyo-network/module-model": "^3.2.0",
38
- "@xyo-network/payload-builder": "^3.2.0",
39
- "@xyo-network/payload-model": "^3.2.0",
40
- "@xyo-network/payloadset-plugin": "^3.2.0"
32
+ "@xyo-network/crypto-nft-collection-payload-plugin": "^3.2.0-rc.1",
33
+ "@xyo-network/crypto-nft-payload-plugin": "^3.2.0-rc.1",
34
+ "@xyo-network/crypto-nft-score-model": "^3.2.0-rc.1",
35
+ "@xyo-network/diviner-abstract": "^3.6.0-rc.1",
36
+ "@xyo-network/diviner-model": "^3.6.0-rc.1",
37
+ "@xyo-network/module-model": "^3.6.0-rc.1",
38
+ "@xyo-network/payload-builder": "^3.6.0-rc.1",
39
+ "@xyo-network/payload-model": "^3.6.0-rc.1",
40
+ "@xyo-network/payloadset-plugin": "^3.6.0-rc.1"
41
41
  },
42
42
  "devDependencies": {
43
- "@xylabs/jest-helpers": "^4.1.0",
44
- "@xylabs/ts-scripts-yarn3": "^4.1.0",
45
- "@xylabs/tsconfig": "^4.1.0",
46
- "@xyo-network/account": "^3.2.0",
47
- "@xyo-network/payload-wrapper": "^3.2.0",
48
- "ethers": "^6.13.3",
49
- "jest": "^29.7.0",
50
- "typescript": "^5.6.3"
43
+ "@xylabs/ts-scripts-yarn3": "^4.2.4",
44
+ "@xylabs/tsconfig": "^4.2.4",
45
+ "@xylabs/vitest-extended": "^4.4.12",
46
+ "@xyo-network/account": "^3.6.0-rc.1",
47
+ "@xyo-network/payload-wrapper": "^3.6.0-rc.1",
48
+ "ethers": "^6.13.4",
49
+ "typescript": "^5.7.2",
50
+ "vitest": "^2.1.8"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
54
- }
54
+ },
55
+ "stableVersion": "3.1.2"
55
56
  }