@silvana-one/nft 0.1.1 → 0.1.3

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 (87) hide show
  1. package/dist/node/contracts/collection.d.ts +6 -1
  2. package/dist/node/contracts/collection.js +6 -4
  3. package/dist/node/contracts/collection.js.map +1 -1
  4. package/dist/node/index.cjs +834 -590
  5. package/dist/node/index.d.ts +1 -0
  6. package/dist/node/index.js +1 -0
  7. package/dist/node/index.js.map +1 -1
  8. package/dist/node/interfaces/owner.d.ts +1 -1
  9. package/dist/node/interfaces/types.d.ts +2 -2
  10. package/dist/node/interfaces/types.js +2 -2
  11. package/dist/node/interfaces/types.js.map +1 -1
  12. package/dist/node/marketplace/auction.js +11 -2
  13. package/dist/node/marketplace/auction.js.map +1 -1
  14. package/dist/node/marketplace/nft-shares.js +6 -5
  15. package/dist/node/marketplace/nft-shares.js.map +1 -1
  16. package/dist/node/metadata/address.d.ts +38 -0
  17. package/dist/node/metadata/address.js +39 -0
  18. package/dist/node/metadata/address.js.map +1 -0
  19. package/dist/node/metadata/index.d.ts +1 -0
  20. package/dist/node/metadata/index.js +1 -0
  21. package/dist/node/metadata/index.js.map +1 -1
  22. package/dist/node/metadata/metadata.d.ts +37 -6
  23. package/dist/node/metadata/metadata.js +147 -4
  24. package/dist/node/metadata/metadata.js.map +1 -1
  25. package/dist/node/metadata/pin.d.ts +10 -0
  26. package/dist/node/metadata/pin.js +18 -0
  27. package/dist/node/metadata/pin.js.map +1 -0
  28. package/dist/node/metadata/tree.d.ts +1 -1
  29. package/dist/node/metadata/tree.js +2 -2
  30. package/dist/node/metadata/tree.js.map +1 -1
  31. package/dist/node/util/div.d.ts +62 -0
  32. package/dist/node/util/div.js +39 -0
  33. package/dist/node/util/div.js.map +1 -0
  34. package/dist/node/util/index.d.ts +1 -0
  35. package/dist/node/util/index.js +2 -0
  36. package/dist/node/util/index.js.map +1 -0
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/dist/tsconfig.web.tsbuildinfo +1 -1
  39. package/dist/web/contracts/collection.d.ts +6 -1
  40. package/dist/web/contracts/collection.js +6 -4
  41. package/dist/web/contracts/collection.js.map +1 -1
  42. package/dist/web/index.d.ts +1 -0
  43. package/dist/web/index.js +1 -0
  44. package/dist/web/index.js.map +1 -1
  45. package/dist/web/interfaces/owner.d.ts +1 -1
  46. package/dist/web/interfaces/types.d.ts +2 -2
  47. package/dist/web/interfaces/types.js +2 -2
  48. package/dist/web/interfaces/types.js.map +1 -1
  49. package/dist/web/marketplace/auction.js +11 -2
  50. package/dist/web/marketplace/auction.js.map +1 -1
  51. package/dist/web/marketplace/nft-shares.js +6 -5
  52. package/dist/web/marketplace/nft-shares.js.map +1 -1
  53. package/dist/web/metadata/address.d.ts +38 -0
  54. package/dist/web/metadata/address.js +39 -0
  55. package/dist/web/metadata/address.js.map +1 -0
  56. package/dist/web/metadata/index.d.ts +1 -0
  57. package/dist/web/metadata/index.js +1 -0
  58. package/dist/web/metadata/index.js.map +1 -1
  59. package/dist/web/metadata/metadata.d.ts +37 -6
  60. package/dist/web/metadata/metadata.js +147 -4
  61. package/dist/web/metadata/metadata.js.map +1 -1
  62. package/dist/web/metadata/pin.d.ts +10 -0
  63. package/dist/web/metadata/pin.js +18 -0
  64. package/dist/web/metadata/pin.js.map +1 -0
  65. package/dist/web/metadata/tree.d.ts +1 -1
  66. package/dist/web/metadata/tree.js +2 -2
  67. package/dist/web/metadata/tree.js.map +1 -1
  68. package/dist/web/util/div.d.ts +62 -0
  69. package/dist/web/util/div.js +39 -0
  70. package/dist/web/util/div.js.map +1 -0
  71. package/dist/web/util/index.d.ts +1 -0
  72. package/dist/web/util/index.js +2 -0
  73. package/dist/web/util/index.js.map +1 -0
  74. package/package.json +8 -8
  75. package/src/contracts/collection.ts +6 -4
  76. package/src/index.ts +1 -0
  77. package/src/interfaces/owner.ts +1 -1
  78. package/src/interfaces/types.ts +4 -4
  79. package/src/marketplace/auction.ts +13 -2
  80. package/src/marketplace/nft-shares.ts +7 -8
  81. package/src/metadata/address.ts +50 -0
  82. package/src/metadata/index.ts +1 -0
  83. package/src/metadata/metadata.ts +236 -11
  84. package/src/metadata/pin.ts +30 -0
  85. package/src/metadata/tree.ts +4 -3
  86. package/src/util/div.ts +44 -0
  87. package/src/util/index.ts +1 -0
@@ -1,5 +1,6 @@
1
- import { Field } from "o1js";
1
+ import { Field, PublicKey, UInt64 } from "o1js";
2
2
  import { Text } from "./text.js";
3
+ import { MinaAddress } from "./address.js";
3
4
  import { MetadataTree } from "./tree.js";
4
5
  export { Metadata, MetadataMap, MetadataFieldType, MetadataFieldTypeValues, MetadataValue, ColorPlugin, };
5
6
  declare const MetadataMap_base: typeof import("node_modules/o1js/dist/node/lib/provable/merkle-tree-indexed.js").IndexedMerkleMapBase;
@@ -11,7 +12,7 @@ declare class MetadataMap extends MetadataMap_base {
11
12
  /**
12
13
  * The possible types for metadata fields.
13
14
  */
14
- type MetadataFieldType = "string" | "text" | "image" | "url" | "field" | "map" | "tree";
15
+ type MetadataFieldType = "string" | "text" | "image" | "url" | "field" | "number" | "address" | "map" | "tree";
15
16
  declare const MetadataValue_base: (new (value: {
16
17
  value: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
17
18
  type: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
@@ -101,7 +102,7 @@ declare class MetadataValue extends MetadataValue_base {
101
102
  * @returns A new MetadataValue.
102
103
  */
103
104
  static new(params: {
104
- value: Field | Text | Metadata | MetadataTree;
105
+ value: Field | Text | Metadata | MetadataTree | PublicKey | UInt64;
105
106
  type: MetadataFieldType;
106
107
  }): MetadataValue;
107
108
  /**
@@ -225,7 +226,7 @@ declare class Metadata {
225
226
  traits: {
226
227
  [key: string]: {
227
228
  type: string;
228
- value: string | Field | Metadata | MetadataTree | unknown;
229
+ value: string | Field | Metadata | MetadataTree | UInt64 | PublicKey | unknown;
229
230
  isPrivate: boolean;
230
231
  };
231
232
  };
@@ -248,7 +249,7 @@ declare class Metadata {
248
249
  addTrait(params: {
249
250
  key: string;
250
251
  type: string;
251
- value: string | Field | Metadata | MetadataTree | unknown;
252
+ value: string | Field | Metadata | MetadataTree | UInt64 | PublicKey | bigint | number | unknown;
252
253
  isPrivate?: boolean;
253
254
  }): {
254
255
  key: Field;
@@ -284,7 +285,7 @@ declare class Metadata {
284
285
  description?: string;
285
286
  banner?: string;
286
287
  metadataRoot: string;
287
- traits: {
288
+ traits?: {
288
289
  key: string;
289
290
  type: string;
290
291
  value: string | object;
@@ -294,6 +295,26 @@ declare class Metadata {
294
295
  checkRoot?: boolean;
295
296
  plugins?: MetadataPlugin[];
296
297
  }): Metadata;
298
+ /**
299
+ * Constructs a Metadata instance from OpenAPI JSON data (without calculated root).
300
+ * @param params - The parameters including json data, checkRoot flag, and plugins.
301
+ * @returns A new Metadata instance.
302
+ */
303
+ static fromOpenApiJSON(params: {
304
+ json: {
305
+ name: string;
306
+ image: string;
307
+ description?: string;
308
+ banner?: string;
309
+ traits?: {
310
+ key: string;
311
+ type: string;
312
+ value: string | object;
313
+ isPrivate?: boolean;
314
+ }[];
315
+ };
316
+ plugins?: MetadataPlugin[];
317
+ }): Metadata;
297
318
  }
298
319
  /**
299
320
  * Mapping of metadata field types to their code values and associated types.
@@ -334,4 +355,14 @@ declare const MetadataFieldTypeValues: {
334
355
  readonly inputType: typeof MetadataTree;
335
356
  readonly storedType: typeof MetadataTree;
336
357
  };
358
+ readonly number: {
359
+ readonly code: 8n;
360
+ readonly inputType: typeof UInt64;
361
+ readonly storedType: typeof UInt64;
362
+ };
363
+ readonly address: {
364
+ readonly code: 9n;
365
+ readonly inputType: typeof PublicKey;
366
+ readonly storedType: typeof MinaAddress;
367
+ };
337
368
  };
@@ -1,6 +1,7 @@
1
- import { Field, Poseidon, Struct, Experimental } from "o1js";
1
+ import { Field, Poseidon, Struct, Experimental, PublicKey, UInt64 } from "o1js";
2
2
  import { fieldFromString } from "../interfaces/index.js";
3
3
  import { Text } from "./text.js";
4
+ import { MinaAddress } from "./address.js";
4
5
  import { MetadataTree } from "./tree.js";
5
6
  export { Metadata, MetadataMap, MetadataFieldTypeValues, MetadataValue, ColorPlugin, };
6
7
  /**
@@ -52,6 +53,19 @@ class MetadataValue extends Struct({
52
53
  throw new Error(`Invalid value type`);
53
54
  valueField = value;
54
55
  break;
56
+ case "number":
57
+ if (!(value instanceof UInt64))
58
+ throw new Error(`Invalid value type`);
59
+ valueField = value.value;
60
+ break;
61
+ case "address":
62
+ if (!(value instanceof PublicKey))
63
+ throw new Error(`Invalid value type`);
64
+ const address = new MinaAddress(value);
65
+ valueField = address.hash;
66
+ length = Field(2);
67
+ height = Field(0);
68
+ break;
55
69
  case "map":
56
70
  if (!(value instanceof Metadata))
57
71
  throw new Error(`Invalid value type`);
@@ -242,9 +256,26 @@ class Metadata {
242
256
  valueObject = new Text(value);
243
257
  break;
244
258
  case "field":
245
- if (!(value instanceof Field))
259
+ if (!(value instanceof Field ||
260
+ typeof value === "bigint" ||
261
+ typeof value === "number" ||
262
+ typeof value === "string"))
246
263
  throw new Error(`Invalid trait value type`);
247
- valueObject = value;
264
+ valueObject = Field(value);
265
+ break;
266
+ case "number":
267
+ if (!(value instanceof UInt64 ||
268
+ typeof value === "bigint" ||
269
+ typeof value === "number" ||
270
+ typeof value === "string"))
271
+ throw new Error(`Invalid trait value type`);
272
+ valueObject = UInt64.from(value);
273
+ break;
274
+ case "address":
275
+ if (!(value instanceof PublicKey || typeof value === "string"))
276
+ throw new Error(`Invalid trait value type`);
277
+ valueObject =
278
+ typeof value === "string" ? PublicKey.fromBase58(value) : value;
248
279
  break;
249
280
  case "map":
250
281
  if (!(value instanceof Metadata))
@@ -307,6 +338,16 @@ class Metadata {
307
338
  throw new Error(`Invalid trait value type`);
308
339
  jsonValue = value.toJSON();
309
340
  break;
341
+ case "number":
342
+ if (!(value instanceof UInt64))
343
+ throw new Error(`Invalid trait value type`);
344
+ jsonValue = value.toJSON();
345
+ break;
346
+ case "address":
347
+ if (!(value instanceof PublicKey))
348
+ throw new Error(`Invalid trait value type`);
349
+ jsonValue = value.toBase58();
350
+ break;
310
351
  case "map":
311
352
  if (!(value instanceof Metadata))
312
353
  throw new Error(`Invalid trait value type`);
@@ -339,7 +380,7 @@ class Metadata {
339
380
  */
340
381
  static fromJSON(params) {
341
382
  const { json, checkRoot = false, plugins } = params;
342
- const { name, description, image, banner, metadataRoot, traits } = json;
383
+ const { name, description, image, banner, metadataRoot, traits = [], } = json;
343
384
  if (!name)
344
385
  throw new Error(`Metadata name is required`);
345
386
  if (typeof name !== "string")
@@ -387,6 +428,16 @@ class Metadata {
387
428
  throw new Error(`Invalid trait value type`);
388
429
  valueField = Field.fromJSON(value);
389
430
  break;
431
+ case "number":
432
+ if (typeof value !== "string")
433
+ throw new Error(`Invalid trait value type`);
434
+ valueField = UInt64.fromJSON(value);
435
+ break;
436
+ case "address":
437
+ if (typeof value !== "string")
438
+ throw new Error(`Invalid trait value type`);
439
+ valueField = PublicKey.fromBase58(value);
440
+ break;
390
441
  case "map":
391
442
  if (typeof value !== "object")
392
443
  throw new Error(`Invalid trait value type`);
@@ -423,6 +474,96 @@ class Metadata {
423
474
  }
424
475
  return metadata;
425
476
  }
477
+ /**
478
+ * Constructs a Metadata instance from OpenAPI JSON data (without calculated root).
479
+ * @param params - The parameters including json data, checkRoot flag, and plugins.
480
+ * @returns A new Metadata instance.
481
+ */
482
+ static fromOpenApiJSON(params) {
483
+ const { json, plugins } = params;
484
+ const { name, description, image, banner, traits = [] } = json;
485
+ if (!name)
486
+ throw new Error(`Metadata name is required`);
487
+ if (typeof name !== "string")
488
+ throw new Error(`Invalid metadata name`);
489
+ if (!image || typeof image !== "string")
490
+ throw new Error(`Invalid metadata image`);
491
+ if (description && typeof description !== "string")
492
+ throw new Error(`Invalid metadata description`);
493
+ if (banner && typeof banner !== "string")
494
+ throw new Error(`Invalid metadata banner`);
495
+ if (!traits || !Array.isArray(traits))
496
+ throw new Error(`Metadata traits are required`);
497
+ for (const { key, type, value, isPrivate } of traits) {
498
+ if (!key || typeof key !== "string")
499
+ throw new Error(`Invalid trait key`);
500
+ if (!type || typeof type !== "string")
501
+ throw new Error(`Invalid trait type`);
502
+ if (!value || (typeof value !== "string" && typeof value !== "object"))
503
+ throw new Error(`Invalid trait value`);
504
+ if (isPrivate && typeof isPrivate !== "boolean")
505
+ throw new Error(`Invalid trait isPrivate`);
506
+ }
507
+ const metadata = new Metadata({
508
+ name,
509
+ description,
510
+ image,
511
+ banner,
512
+ plugins,
513
+ });
514
+ for (const { key, type, value, isPrivate } of traits) {
515
+ let valueField;
516
+ switch (type) {
517
+ case "string":
518
+ case "text":
519
+ case "image":
520
+ case "url":
521
+ if (typeof value !== "string")
522
+ throw new Error(`Invalid trait value type`);
523
+ valueField = value;
524
+ break;
525
+ case "field":
526
+ if (typeof value !== "string")
527
+ throw new Error(`Invalid trait value type`);
528
+ valueField = Field.fromJSON(value);
529
+ break;
530
+ case "number":
531
+ if (typeof value !== "string")
532
+ throw new Error(`Invalid trait value type`);
533
+ valueField = UInt64.fromJSON(value);
534
+ break;
535
+ case "address":
536
+ if (typeof value !== "string")
537
+ throw new Error(`Invalid trait value type`);
538
+ valueField = PublicKey.fromBase58(value);
539
+ break;
540
+ case "map":
541
+ if (typeof value !== "object")
542
+ throw new Error(`Invalid trait value type`);
543
+ valueField = Metadata.fromOpenApiJSON({
544
+ json: value,
545
+ });
546
+ break;
547
+ case "tree":
548
+ if (typeof value !== "object")
549
+ throw new Error(`Invalid trait value type`);
550
+ valueField = MetadataTree.fromJSON(value);
551
+ break;
552
+ default:
553
+ const plugin = metadata.plugins.find((plugin) => plugin.name === type);
554
+ if (!plugin)
555
+ throw new Error(`Unknown trait type`);
556
+ valueField = plugin.fromJSON(value);
557
+ }
558
+ metadata.addTrait({
559
+ key,
560
+ type,
561
+ value: valueField,
562
+ isPrivate: isPrivate ?? false,
563
+ });
564
+ }
565
+ return metadata;
566
+ }
426
567
  }
427
568
  /**
428
569
  * Mapping of metadata field types to their code values and associated types.
@@ -435,5 +576,7 @@ const MetadataFieldTypeValues = {
435
576
  field: { code: 5n, inputType: Field, storedType: Field }, // Field
436
577
  map: { code: 6n, inputType: Metadata, storedType: Metadata }, // Metadata
437
578
  tree: { code: 7n, inputType: MetadataTree, storedType: MetadataTree }, // MetadataTree
579
+ number: { code: 8n, inputType: UInt64, storedType: UInt64 }, // UInt64
580
+ address: { code: 9n, inputType: PublicKey, storedType: MinaAddress }, // MinaAddress
438
581
  };
439
582
  //# sourceMappingURL=metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/metadata/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/metadata/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Metadata } from "./metadata.js";
2
+ import { IndexedMapSerialized } from "@silvana-one/storage";
3
+ import { Field } from "o1js";
4
+ export declare function pinMetadata(metadata: Metadata): Promise<{
5
+ name: string;
6
+ ipfsHash: string;
7
+ metadataRoot: Field;
8
+ privateMetadata: string;
9
+ serializedMap: IndexedMapSerialized;
10
+ }>;
@@ -0,0 +1,18 @@
1
+ import { pinJSON, serializeIndexedMap, } from "@silvana-one/storage";
2
+ export async function pinMetadata(metadata) {
3
+ const privateMetadata = JSON.stringify(metadata.toJSON(true), null, 2);
4
+ const ipfsHash = await pinJSON({
5
+ data: metadata.toJSON(false),
6
+ name: "nft-metadata",
7
+ });
8
+ if (!ipfsHash)
9
+ throw new Error("Failed to pin metadata");
10
+ return {
11
+ name: metadata.name,
12
+ ipfsHash,
13
+ metadataRoot: metadata.map.root,
14
+ privateMetadata,
15
+ serializedMap: serializeIndexedMap(metadata.map),
16
+ };
17
+ }
18
+ //# sourceMappingURL=pin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin.js","sourceRoot":"","sources":["../../../src/metadata/pin.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAkB;IAOlD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAuB,MAAM,OAAO,CAAC;QACjD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5B,IAAI,EAAE,cAAc;KACrB,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ;QACR,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI;QAC/B,eAAe;QACf,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC;KACjD,CAAC;AACJ,CAAC"}
@@ -66,7 +66,7 @@ export declare class MetadataTree {
66
66
  */
67
67
  static fromJSON(json: {
68
68
  height: number;
69
- root: string;
69
+ root?: string;
70
70
  values: {
71
71
  key: string;
72
72
  value: string;
@@ -63,7 +63,7 @@ export class MetadataTree {
63
63
  const { height, values, root } = json;
64
64
  if (typeof height !== "number" || height < 1 || height > 254)
65
65
  throw new Error(`Invalid tree height`);
66
- if (!root || typeof root !== "string")
66
+ if (root && typeof root !== "string")
67
67
  throw new Error(`Invalid tree root`);
68
68
  if (!values || !Array.isArray(values))
69
69
  throw new Error(`Tree values are required`);
@@ -77,7 +77,7 @@ export class MetadataTree {
77
77
  key: BigInt(key),
78
78
  value: Field.fromJSON(value),
79
79
  })));
80
- if (tree.root.toJSON() !== root)
80
+ if (root && tree.root.toJSON() !== root)
81
81
  throw new Error("Invalid tree json");
82
82
  return tree;
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/metadata/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/metadata/tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { Field, UInt64 } from "o1js";
2
+ declare const MulDivResult_base: (new (value: {
3
+ result: UInt64;
4
+ remainder: UInt64;
5
+ }) => {
6
+ result: UInt64;
7
+ remainder: UInt64;
8
+ }) & {
9
+ _isStruct: true;
10
+ } & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
11
+ result: UInt64;
12
+ remainder: UInt64;
13
+ }, {
14
+ result: bigint;
15
+ remainder: bigint;
16
+ }>, "fromFields"> & {
17
+ fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
18
+ result: UInt64;
19
+ remainder: UInt64;
20
+ };
21
+ } & {
22
+ fromValue: (value: {
23
+ result: bigint | UInt64;
24
+ remainder: bigint | UInt64;
25
+ }) => {
26
+ result: UInt64;
27
+ remainder: UInt64;
28
+ };
29
+ toInput: (x: {
30
+ result: UInt64;
31
+ remainder: UInt64;
32
+ }) => {
33
+ fields?: Field[] | undefined;
34
+ packed?: [Field, number][] | undefined;
35
+ };
36
+ toJSON: (x: {
37
+ result: UInt64;
38
+ remainder: UInt64;
39
+ }) => {
40
+ result: string;
41
+ remainder: string;
42
+ };
43
+ fromJSON: (x: {
44
+ result: string;
45
+ remainder: string;
46
+ }) => {
47
+ result: UInt64;
48
+ remainder: UInt64;
49
+ };
50
+ empty: () => {
51
+ result: UInt64;
52
+ remainder: UInt64;
53
+ };
54
+ };
55
+ export declare class MulDivResult extends MulDivResult_base {
56
+ }
57
+ export declare function mulDiv(params: {
58
+ value: UInt64;
59
+ multiplier: UInt64;
60
+ denominator: UInt64;
61
+ }): MulDivResult;
62
+ export {};
@@ -0,0 +1,39 @@
1
+ import { Field, Provable, UInt64, Gadgets, Struct } from "o1js";
2
+ export class MulDivResult extends Struct({
3
+ result: UInt64,
4
+ remainder: UInt64,
5
+ }) {
6
+ }
7
+ class MulDivResultInternal extends Struct({
8
+ result: Field,
9
+ remainder: Field,
10
+ }) {
11
+ }
12
+ export function mulDiv(params) {
13
+ const { value, multiplier, denominator } = params;
14
+ denominator.equals(UInt64.zero).assertFalse("division by zero"); // should fail in case the denominator is zero
15
+ const fields = Provable.witness(MulDivResultInternal, () => {
16
+ const valueBigInt = value.toBigInt();
17
+ const multiplierBigInt = multiplier.toBigInt();
18
+ const denominatorBigInt = denominator.toBigInt();
19
+ // handle division by zero for first pass of the prover that can pass zero instead of the real value
20
+ if (denominatorBigInt === 0n) {
21
+ return { result: Field.from(0n), remainder: Field.from(0n) };
22
+ }
23
+ const result = (valueBigInt * multiplierBigInt) / denominatorBigInt;
24
+ const remainder = valueBigInt * multiplierBigInt - result * denominatorBigInt;
25
+ return { result: Field.from(result), remainder: Field.from(remainder) };
26
+ });
27
+ Gadgets.rangeCheck64(fields.result);
28
+ Gadgets.rangeCheck64(fields.remainder);
29
+ fields.remainder.assertLessThan(denominator.value); // should fail in case the denominator is zero
30
+ fields.result
31
+ .mul(denominator.value)
32
+ .add(fields.remainder)
33
+ .assertEquals(value.value.mul(multiplier.value)); // should fail in case the denominator is zero
34
+ return {
35
+ result: UInt64.Unsafe.fromField(fields.result),
36
+ remainder: UInt64.Unsafe.fromField(fields.remainder),
37
+ };
38
+ }
39
+ //# sourceMappingURL=div.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"div.js","sourceRoot":"","sources":["../../../src/util/div.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEhE,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC;IACvC,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,MAAM;CAClB,CAAC;CAAG;AAEL,MAAM,oBAAqB,SAAQ,MAAM,CAAC;IACxC,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;CACjB,CAAC;CAAG;AAEL,MAAM,UAAU,MAAM,CAAC,MAItB;IACC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAClD,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,8CAA8C;IAC/G,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,EAAE;QACzD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACjD,oGAAoG;QACpG,IAAI,iBAAiB,KAAK,EAAE,EAAE,CAAC;YAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,WAAW,GAAG,gBAAgB,CAAC,GAAG,iBAAiB,CAAC;QACpE,MAAM,SAAS,GACb,WAAW,GAAG,gBAAgB,GAAG,MAAM,GAAG,iBAAiB,CAAC;QAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,8CAA8C;IAClG,MAAM,CAAC,MAAM;SACV,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;SACrB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,8CAA8C;IAClG,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;KACrD,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./div.js";
@@ -0,0 +1,2 @@
1
+ export * from "./div.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@silvana-one/nft",
3
3
  "description": "Silvana - Mina NFT library",
4
- "version": "0.1.1",
4
+ "version": "0.1.3",
5
5
  "author": "DFST",
6
6
  "bugs": "https://github.com/SilvanaOne/silvana-lib/issues",
7
7
  "dependencies": {
@@ -9,11 +9,11 @@
9
9
  "tslib": "^2.8.1"
10
10
  },
11
11
  "devDependencies": {
12
- "@silvana-one/storage": "0.1.1",
13
- "@silvana-one/token": "0.1.1",
14
- "@silvana-one/upgradable": "0.1.1",
12
+ "@silvana-one/storage": "0.1.3",
13
+ "@silvana-one/token": "0.1.3",
14
+ "@silvana-one/upgradable": "0.1.3",
15
15
  "@types/node": "^22.10.2",
16
- "esbuild": "^0.24.0",
16
+ "esbuild": "^0.25.0",
17
17
  "o1js": "^2.2.0",
18
18
  "typescript": "^5.7.2"
19
19
  },
@@ -46,9 +46,9 @@
46
46
  "license": "Apache-2.0",
47
47
  "main": "dist/web/index.js",
48
48
  "peerDependencies": {
49
- "@silvana-one/storage": "0.1.1",
50
- "@silvana-one/upgradable": "0.1.1",
51
- "@silvana-one/token": "0.1.1",
49
+ "@silvana-one/storage": "0.1.3",
50
+ "@silvana-one/token": "0.1.3",
51
+ "@silvana-one/upgradable": "0.1.3",
52
52
  "o1js": "^2.2.0"
53
53
  },
54
54
  "publishConfig": {
@@ -57,6 +57,7 @@ import {
57
57
  MAX_ROYALTY_FEE,
58
58
  TransferExtendedParams,
59
59
  } from "../interfaces/index.js";
60
+ import { mulDiv } from "../util/index.js";
60
61
  import { nftVerificationKeys } from "../vk.js";
61
62
  export { CollectionDeployProps, CollectionFactory, CollectionErrors };
62
63
 
@@ -781,10 +782,11 @@ function CollectionFactory(params: {
781
782
  // We cannot check the price here, so we just rely on owner contract
782
783
  // Malicious owner contracts can be blocked by the admin contract
783
784
  // or by setting the transfer fee to a higher value reflecting the market price
784
- transferEventDraft.price
785
- .orElse(1_000_000_000n) // is not used, can be any value
786
- .div(MAX_ROYALTY_FEE)
787
- .mul(UInt64.from(royaltyFee)),
785
+ mulDiv({
786
+ value: transferEventDraft.price.value,
787
+ multiplier: UInt64.from(royaltyFee),
788
+ denominator: UInt64.from(MAX_ROYALTY_FEE),
789
+ }).result,
788
790
  transferFee
789
791
  );
790
792
 
package/src/index.ts CHANGED
@@ -6,3 +6,4 @@ export * from "./marketplace/index.js";
6
6
  export * from "./vk.js";
7
7
  export * from "./contracts.js";
8
8
  export * from "./interfaces/index.js";
9
+ export * from "./util/index.js";
@@ -24,7 +24,7 @@ type DefineOwnerFactory = (params: {
24
24
  }) => NFTOwnerContractConstructor;
25
25
 
26
26
  /**
27
- * The `NFTAdminBase` interface defines the administrative functionalities required for managing an NFT collection on the Mina Protocol.
27
+ * The `NFTOwnerBase` interface defines the administrative functionalities required for managing an NFT collection on the Mina Protocol.
28
28
  * It extends the `SmartContract` class and specifies methods that enforce permissions and validations for various NFT operations.
29
29
  */
30
30
  type NFTOwnerBase = SmartContract & {