@silvana-one/nft 0.1.0

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 (236) hide show
  1. package/README.md +1400 -0
  2. package/dist/node/admin/advanced.d.ts +469 -0
  3. package/dist/node/admin/advanced.js +525 -0
  4. package/dist/node/admin/advanced.js.map +1 -0
  5. package/dist/node/admin/index.d.ts +1 -0
  6. package/dist/node/admin/index.js +2 -0
  7. package/dist/node/admin/index.js.map +1 -0
  8. package/dist/node/contracts/admin.d.ts +140 -0
  9. package/dist/node/contracts/admin.js +336 -0
  10. package/dist/node/contracts/admin.js.map +1 -0
  11. package/dist/node/contracts/collection.d.ts +551 -0
  12. package/dist/node/contracts/collection.js +1049 -0
  13. package/dist/node/contracts/collection.js.map +1 -0
  14. package/dist/node/contracts/index.d.ts +3 -0
  15. package/dist/node/contracts/index.js +4 -0
  16. package/dist/node/contracts/index.js.map +1 -0
  17. package/dist/node/contracts/nft.d.ts +76 -0
  18. package/dist/node/contracts/nft.js +329 -0
  19. package/dist/node/contracts/nft.js.map +1 -0
  20. package/dist/node/contracts.d.ts +709 -0
  21. package/dist/node/contracts.js +61 -0
  22. package/dist/node/contracts.js.map +1 -0
  23. package/dist/node/index.cjs +5032 -0
  24. package/dist/node/index.d.ts +8 -0
  25. package/dist/node/index.js +9 -0
  26. package/dist/node/index.js.map +1 -0
  27. package/dist/node/interfaces/admin.d.ts +102 -0
  28. package/dist/node/interfaces/admin.js +2 -0
  29. package/dist/node/interfaces/admin.js.map +1 -0
  30. package/dist/node/interfaces/approval.d.ts +57 -0
  31. package/dist/node/interfaces/approval.js +62 -0
  32. package/dist/node/interfaces/approval.js.map +1 -0
  33. package/dist/node/interfaces/collection.d.ts +57 -0
  34. package/dist/node/interfaces/collection.js +2 -0
  35. package/dist/node/interfaces/collection.js.map +1 -0
  36. package/dist/node/interfaces/encoding.d.ts +24 -0
  37. package/dist/node/interfaces/encoding.js +32 -0
  38. package/dist/node/interfaces/encoding.js.map +1 -0
  39. package/dist/node/interfaces/events.d.ts +833 -0
  40. package/dist/node/interfaces/events.js +106 -0
  41. package/dist/node/interfaces/events.js.map +1 -0
  42. package/dist/node/interfaces/index.d.ts +10 -0
  43. package/dist/node/interfaces/index.js +11 -0
  44. package/dist/node/interfaces/index.js.map +1 -0
  45. package/dist/node/interfaces/ownable.d.ts +94 -0
  46. package/dist/node/interfaces/ownable.js +12 -0
  47. package/dist/node/interfaces/ownable.js.map +1 -0
  48. package/dist/node/interfaces/owner.d.ts +61 -0
  49. package/dist/node/interfaces/owner.js +101 -0
  50. package/dist/node/interfaces/owner.js.map +1 -0
  51. package/dist/node/interfaces/pausable.d.ts +74 -0
  52. package/dist/node/interfaces/pausable.js +14 -0
  53. package/dist/node/interfaces/pausable.js.map +1 -0
  54. package/dist/node/interfaces/types.d.ts +2297 -0
  55. package/dist/node/interfaces/types.js +507 -0
  56. package/dist/node/interfaces/types.js.map +1 -0
  57. package/dist/node/interfaces/update.d.ts +53 -0
  58. package/dist/node/interfaces/update.js +58 -0
  59. package/dist/node/interfaces/update.js.map +1 -0
  60. package/dist/node/marketplace/auction.d.ts +775 -0
  61. package/dist/node/marketplace/auction.js +430 -0
  62. package/dist/node/marketplace/auction.js.map +1 -0
  63. package/dist/node/marketplace/bid.d.ts +254 -0
  64. package/dist/node/marketplace/bid.js +260 -0
  65. package/dist/node/marketplace/bid.js.map +1 -0
  66. package/dist/node/marketplace/index.d.ts +5 -0
  67. package/dist/node/marketplace/index.js +6 -0
  68. package/dist/node/marketplace/index.js.map +1 -0
  69. package/dist/node/marketplace/nft-shares.d.ts +1083 -0
  70. package/dist/node/marketplace/nft-shares.js +398 -0
  71. package/dist/node/marketplace/nft-shares.js.map +1 -0
  72. package/dist/node/marketplace/offer.d.ts +192 -0
  73. package/dist/node/marketplace/offer.js +132 -0
  74. package/dist/node/marketplace/offer.js.map +1 -0
  75. package/dist/node/marketplace/types.d.ts +374 -0
  76. package/dist/node/marketplace/types.js +33 -0
  77. package/dist/node/marketplace/types.js.map +1 -0
  78. package/dist/node/metadata/index.d.ts +3 -0
  79. package/dist/node/metadata/index.js +4 -0
  80. package/dist/node/metadata/index.js.map +1 -0
  81. package/dist/node/metadata/metadata.d.ts +337 -0
  82. package/dist/node/metadata/metadata.js +439 -0
  83. package/dist/node/metadata/metadata.js.map +1 -0
  84. package/dist/node/metadata/text.d.ts +44 -0
  85. package/dist/node/metadata/text.js +42 -0
  86. package/dist/node/metadata/text.js.map +1 -0
  87. package/dist/node/metadata/tree.d.ts +75 -0
  88. package/dist/node/metadata/tree.js +85 -0
  89. package/dist/node/metadata/tree.js.map +1 -0
  90. package/dist/node/vk.d.ts +42 -0
  91. package/dist/node/vk.js +45 -0
  92. package/dist/node/vk.js.map +1 -0
  93. package/dist/node/zkprogram-example/game.d.ts +76 -0
  94. package/dist/node/zkprogram-example/game.js +108 -0
  95. package/dist/node/zkprogram-example/game.js.map +1 -0
  96. package/dist/node/zkprogram-example/index.d.ts +2 -0
  97. package/dist/node/zkprogram-example/index.js +3 -0
  98. package/dist/node/zkprogram-example/index.js.map +1 -0
  99. package/dist/node/zkprogram-example/update.d.ts +76 -0
  100. package/dist/node/zkprogram-example/update.js +85 -0
  101. package/dist/node/zkprogram-example/update.js.map +1 -0
  102. package/dist/tsconfig.tsbuildinfo +1 -0
  103. package/dist/tsconfig.web.tsbuildinfo +1 -0
  104. package/dist/web/admin/advanced.d.ts +469 -0
  105. package/dist/web/admin/advanced.js +525 -0
  106. package/dist/web/admin/advanced.js.map +1 -0
  107. package/dist/web/admin/index.d.ts +1 -0
  108. package/dist/web/admin/index.js +2 -0
  109. package/dist/web/admin/index.js.map +1 -0
  110. package/dist/web/contracts/admin.d.ts +140 -0
  111. package/dist/web/contracts/admin.js +336 -0
  112. package/dist/web/contracts/admin.js.map +1 -0
  113. package/dist/web/contracts/collection.d.ts +551 -0
  114. package/dist/web/contracts/collection.js +1049 -0
  115. package/dist/web/contracts/collection.js.map +1 -0
  116. package/dist/web/contracts/index.d.ts +3 -0
  117. package/dist/web/contracts/index.js +4 -0
  118. package/dist/web/contracts/index.js.map +1 -0
  119. package/dist/web/contracts/nft.d.ts +76 -0
  120. package/dist/web/contracts/nft.js +329 -0
  121. package/dist/web/contracts/nft.js.map +1 -0
  122. package/dist/web/contracts.d.ts +709 -0
  123. package/dist/web/contracts.js +61 -0
  124. package/dist/web/contracts.js.map +1 -0
  125. package/dist/web/index.d.ts +8 -0
  126. package/dist/web/index.js +9 -0
  127. package/dist/web/index.js.map +1 -0
  128. package/dist/web/interfaces/admin.d.ts +102 -0
  129. package/dist/web/interfaces/admin.js +2 -0
  130. package/dist/web/interfaces/admin.js.map +1 -0
  131. package/dist/web/interfaces/approval.d.ts +57 -0
  132. package/dist/web/interfaces/approval.js +62 -0
  133. package/dist/web/interfaces/approval.js.map +1 -0
  134. package/dist/web/interfaces/collection.d.ts +57 -0
  135. package/dist/web/interfaces/collection.js +2 -0
  136. package/dist/web/interfaces/collection.js.map +1 -0
  137. package/dist/web/interfaces/encoding.d.ts +24 -0
  138. package/dist/web/interfaces/encoding.js +32 -0
  139. package/dist/web/interfaces/encoding.js.map +1 -0
  140. package/dist/web/interfaces/events.d.ts +833 -0
  141. package/dist/web/interfaces/events.js +106 -0
  142. package/dist/web/interfaces/events.js.map +1 -0
  143. package/dist/web/interfaces/index.d.ts +10 -0
  144. package/dist/web/interfaces/index.js +11 -0
  145. package/dist/web/interfaces/index.js.map +1 -0
  146. package/dist/web/interfaces/ownable.d.ts +94 -0
  147. package/dist/web/interfaces/ownable.js +12 -0
  148. package/dist/web/interfaces/ownable.js.map +1 -0
  149. package/dist/web/interfaces/owner.d.ts +61 -0
  150. package/dist/web/interfaces/owner.js +101 -0
  151. package/dist/web/interfaces/owner.js.map +1 -0
  152. package/dist/web/interfaces/pausable.d.ts +74 -0
  153. package/dist/web/interfaces/pausable.js +14 -0
  154. package/dist/web/interfaces/pausable.js.map +1 -0
  155. package/dist/web/interfaces/types.d.ts +2297 -0
  156. package/dist/web/interfaces/types.js +507 -0
  157. package/dist/web/interfaces/types.js.map +1 -0
  158. package/dist/web/interfaces/update.d.ts +53 -0
  159. package/dist/web/interfaces/update.js +58 -0
  160. package/dist/web/interfaces/update.js.map +1 -0
  161. package/dist/web/marketplace/auction.d.ts +775 -0
  162. package/dist/web/marketplace/auction.js +430 -0
  163. package/dist/web/marketplace/auction.js.map +1 -0
  164. package/dist/web/marketplace/bid.d.ts +254 -0
  165. package/dist/web/marketplace/bid.js +260 -0
  166. package/dist/web/marketplace/bid.js.map +1 -0
  167. package/dist/web/marketplace/index.d.ts +5 -0
  168. package/dist/web/marketplace/index.js +6 -0
  169. package/dist/web/marketplace/index.js.map +1 -0
  170. package/dist/web/marketplace/nft-shares.d.ts +1083 -0
  171. package/dist/web/marketplace/nft-shares.js +398 -0
  172. package/dist/web/marketplace/nft-shares.js.map +1 -0
  173. package/dist/web/marketplace/offer.d.ts +192 -0
  174. package/dist/web/marketplace/offer.js +132 -0
  175. package/dist/web/marketplace/offer.js.map +1 -0
  176. package/dist/web/marketplace/types.d.ts +374 -0
  177. package/dist/web/marketplace/types.js +33 -0
  178. package/dist/web/marketplace/types.js.map +1 -0
  179. package/dist/web/metadata/index.d.ts +3 -0
  180. package/dist/web/metadata/index.js +4 -0
  181. package/dist/web/metadata/index.js.map +1 -0
  182. package/dist/web/metadata/metadata.d.ts +337 -0
  183. package/dist/web/metadata/metadata.js +439 -0
  184. package/dist/web/metadata/metadata.js.map +1 -0
  185. package/dist/web/metadata/text.d.ts +44 -0
  186. package/dist/web/metadata/text.js +42 -0
  187. package/dist/web/metadata/text.js.map +1 -0
  188. package/dist/web/metadata/tree.d.ts +75 -0
  189. package/dist/web/metadata/tree.js +85 -0
  190. package/dist/web/metadata/tree.js.map +1 -0
  191. package/dist/web/vk.d.ts +42 -0
  192. package/dist/web/vk.js +45 -0
  193. package/dist/web/vk.js.map +1 -0
  194. package/dist/web/zkprogram-example/game.d.ts +76 -0
  195. package/dist/web/zkprogram-example/game.js +108 -0
  196. package/dist/web/zkprogram-example/game.js.map +1 -0
  197. package/dist/web/zkprogram-example/index.d.ts +2 -0
  198. package/dist/web/zkprogram-example/index.js +3 -0
  199. package/dist/web/zkprogram-example/index.js.map +1 -0
  200. package/dist/web/zkprogram-example/update.d.ts +76 -0
  201. package/dist/web/zkprogram-example/update.js +85 -0
  202. package/dist/web/zkprogram-example/update.js.map +1 -0
  203. package/package.json +65 -0
  204. package/src/admin/advanced.ts +601 -0
  205. package/src/admin/index.ts +1 -0
  206. package/src/contracts/admin.ts +301 -0
  207. package/src/contracts/collection.ts +1172 -0
  208. package/src/contracts/index.ts +3 -0
  209. package/src/contracts/nft.ts +344 -0
  210. package/src/contracts.ts +107 -0
  211. package/src/index.ts +8 -0
  212. package/src/interfaces/admin.ts +127 -0
  213. package/src/interfaces/approval.ts +99 -0
  214. package/src/interfaces/collection.ts +68 -0
  215. package/src/interfaces/encoding.ts +32 -0
  216. package/src/interfaces/events.ts +115 -0
  217. package/src/interfaces/index.ts +10 -0
  218. package/src/interfaces/ownable.ts +32 -0
  219. package/src/interfaces/owner.ts +143 -0
  220. package/src/interfaces/pausable.ts +41 -0
  221. package/src/interfaces/types.ts +623 -0
  222. package/src/interfaces/update.ts +104 -0
  223. package/src/marketplace/auction.ts +527 -0
  224. package/src/marketplace/bid.ts +294 -0
  225. package/src/marketplace/index.ts +5 -0
  226. package/src/marketplace/nft-shares.ts +388 -0
  227. package/src/marketplace/offer.ts +153 -0
  228. package/src/marketplace/types.ts +33 -0
  229. package/src/metadata/index.ts +3 -0
  230. package/src/metadata/metadata.ts +603 -0
  231. package/src/metadata/text.ts +60 -0
  232. package/src/metadata/tree.ts +128 -0
  233. package/src/vk.ts +64 -0
  234. package/src/zkprogram-example/game.ts +136 -0
  235. package/src/zkprogram-example/index.ts +2 -0
  236. package/src/zkprogram-example/update.ts +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/contracts/collection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./collection.js";
2
+ export * from "./nft.js";
3
+ export * from "./admin.js";
@@ -0,0 +1,4 @@
1
+ export * from "./collection.js";
2
+ export * from "./nft.js";
3
+ export * from "./admin.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { Field, PublicKey, SmartContract, State, VerificationKey } from "o1js";
2
+ import { Storage } from "@silvana-one/storage";
3
+ import { NFTDataPacked, NFTState, UpdateEvent, TransferExtendedParams, UpgradeVerificationKeyEvent, PauseEvent, OwnershipChangeEvent, UpgradeVerificationKeyData, NFTStateStruct } from "../interfaces/index.js";
4
+ export { NFT };
5
+ /**
6
+ * The NFT Contract represents an individual NFT within a collection.
7
+ *
8
+ * It manages the state and behavior of a single NFT, including ownership, metadata,
9
+ * storage, pricing, and permissions. The contract provides functionality for updating
10
+ * NFT properties with proofs and permissions, transferring ownership, selling and buying NFTs,
11
+ * upgrading the verification key, and pausing or resuming the NFT.
12
+ */
13
+ declare class NFT extends SmartContract {
14
+ /** The name of the NFT (`Field`). */
15
+ name: State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
16
+ /** The metadata associated with the NFT (`Field`). */
17
+ metadata: State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
18
+ /** Holds off-chain storage information, e.g., IPFS hash (`Storage`). */
19
+ storage: State<Storage>;
20
+ /** A packed field containing additional NFT data and flags (`Field`). */
21
+ packedData: State<NFTDataPacked>;
22
+ /** The hash of the verification key used for metadata proofs (`Field`). */
23
+ metadataVerificationKeyHash: State<import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
24
+ /** Events emitted by the NFT contract. */
25
+ events: {
26
+ update: typeof UpdateEvent;
27
+ transfer: typeof OwnershipChangeEvent;
28
+ approve: typeof PublicKey;
29
+ upgradeVerificationKey: typeof UpgradeVerificationKeyEvent;
30
+ pause: typeof PauseEvent;
31
+ resume: typeof PauseEvent;
32
+ };
33
+ getState(): Promise<NFTStateStruct>;
34
+ /**
35
+ * Updates the NFT's state with provided proofs and permissions.
36
+ *
37
+ * @param input - The current state of the NFT (`NFTState`).
38
+ * @param output - The desired new state of the NFT (`NFTState`).
39
+ * @param creator - The public key of the creator (`PublicKey`).
40
+ * @returns The hash of the metadata verification key (`Field`).
41
+ */
42
+ update(input: NFTState, output: NFTState, creator: PublicKey): Promise<Field>;
43
+ /**
44
+ * Transfers ownership of the NFT from one user to another.
45
+ *
46
+ * @param params - The parameters for the transfer (`TransferExtendedParams`).
47
+ * @returns The public key of the old owner (`PublicKey`).
48
+ */
49
+ transfer(params: TransferExtendedParams): Promise<TransferExtendedParams>;
50
+ /**
51
+ * Transfers ownership of the NFT from one user to another.
52
+ *
53
+ * @param approved - The public key of the approved address (`PublicKey`).
54
+ * @returns The public key of the owner (`PublicKey`).
55
+ */
56
+ approveAddress(approved: PublicKey): Promise<PublicKey>;
57
+ /**
58
+ * Upgrades the verification key used by the NFT contract.
59
+ *
60
+ * @param vk - The new verification key (`VerificationKey`).
61
+ * @returns An owner public key to be checked by the Collection contract and the Boolean flag indicating if the owner's authorization is required
62
+ */
63
+ upgradeVerificationKey(vk: VerificationKey): Promise<UpgradeVerificationKeyData>;
64
+ /**
65
+ * Pauses the NFT, disabling certain actions.
66
+ *
67
+ * @returns An owner public key to be checked by the Collection contract
68
+ */
69
+ pause(): Promise<PublicKey>;
70
+ /**
71
+ * Resumes the NFT, re-enabling actions.
72
+ *
73
+ * @returns An owner public key to be checked by the Collection contract
74
+ */
75
+ resume(): Promise<PublicKey>;
76
+ }
@@ -0,0 +1,329 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Field, PublicKey, Bool, SmartContract, method, state, State, VerificationKey, } from "o1js";
3
+ import { Storage } from "@silvana-one/storage";
4
+ import { NFTData, NFTDataPacked, NFTState, NFTImmutableState, UpdateEvent, TransferExtendedParams, UpgradeVerificationKeyEvent, PauseEvent, OwnershipChangeEvent, UpgradeVerificationKeyData, NFTStateStruct, NFTTransactionContext, } from "../interfaces/index.js";
5
+ export { NFT };
6
+ const NftErrors = {
7
+ cannotChangeMetadataVerificationKeyHash: "Cannot change metadata verification key hash",
8
+ cannotChangeOwner: "Cannot change owner",
9
+ cannotChangeStorage: "Cannot change storage",
10
+ cannotChangePauseState: "Cannot change pause state",
11
+ noPermissionToPause: "No permission to pause",
12
+ nftAlreadyPaused: "NFT is already paused",
13
+ nftIsNotPaused: "NFT is not paused",
14
+ nftIsPaused: "NFT is paused",
15
+ cannotChangeName: "Cannot change name",
16
+ cannotChangeMetadata: "Cannot change metadata",
17
+ noMetadataVerificationKey: "No metadata verification key",
18
+ };
19
+ /**
20
+ * The NFT Contract represents an individual NFT within a collection.
21
+ *
22
+ * It manages the state and behavior of a single NFT, including ownership, metadata,
23
+ * storage, pricing, and permissions. The contract provides functionality for updating
24
+ * NFT properties with proofs and permissions, transferring ownership, selling and buying NFTs,
25
+ * upgrading the verification key, and pausing or resuming the NFT.
26
+ */
27
+ class NFT extends SmartContract {
28
+ constructor() {
29
+ super(...arguments);
30
+ /** The name of the NFT (`Field`). */
31
+ this.name = State();
32
+ /** The metadata associated with the NFT (`Field`). */
33
+ this.metadata = State();
34
+ /** Holds off-chain storage information, e.g., IPFS hash (`Storage`). */
35
+ this.storage = State();
36
+ /** A packed field containing additional NFT data and flags (`Field`). */
37
+ this.packedData = State();
38
+ /** The hash of the verification key used for metadata proofs (`Field`). */
39
+ this.metadataVerificationKeyHash = State();
40
+ /** Events emitted by the NFT contract. */
41
+ this.events = {
42
+ update: UpdateEvent,
43
+ transfer: OwnershipChangeEvent,
44
+ approve: PublicKey,
45
+ upgradeVerificationKey: UpgradeVerificationKeyEvent,
46
+ pause: PauseEvent,
47
+ resume: PauseEvent,
48
+ };
49
+ }
50
+ async getState() {
51
+ const name = this.name.getAndRequireEquals();
52
+ const metadata = this.metadata.getAndRequireEquals();
53
+ const storage = this.storage.getAndRequireEquals();
54
+ const packedData = this.packedData.getAndRequireEquals();
55
+ const metadataVerificationKeyHash = this.metadataVerificationKeyHash.getAndRequireEquals();
56
+ return new NFTStateStruct({
57
+ name,
58
+ metadata,
59
+ storage,
60
+ packedData,
61
+ metadataVerificationKeyHash,
62
+ });
63
+ }
64
+ /**
65
+ * Updates the NFT's state with provided proofs and permissions.
66
+ *
67
+ * @param input - The current state of the NFT (`NFTState`).
68
+ * @param output - The desired new state of the NFT (`NFTState`).
69
+ * @param creator - The public key of the creator (`PublicKey`).
70
+ * @returns The hash of the metadata verification key (`Field`).
71
+ */
72
+ async update(input, output, creator) {
73
+ const name = this.name.getAndRequireEquals();
74
+ const metadata = this.metadata.getAndRequireEquals();
75
+ const data = NFTData.unpack(this.packedData.getAndRequireEquals());
76
+ const owner = data.owner;
77
+ const storage = this.storage.getAndRequireEquals();
78
+ const metadataVerificationKeyHash = this.metadataVerificationKeyHash.getAndRequireEquals();
79
+ // Check that the metadata verification key exists
80
+ metadataVerificationKeyHash.assertNotEquals(Field(0), NftErrors.noMetadataVerificationKey);
81
+ // We do not check if the NFT is paused here
82
+ // It is the responsibility of metadata zkProgram to check if the NFT is paused,
83
+ // similar to data.isPaused.assertFalse(NftErrors.nftIsPaused);
84
+ // Assert that the public input matches the NFT state
85
+ NFTState.assertEqual(input, new NFTState({
86
+ immutableState: new NFTImmutableState({
87
+ canChangeOwnerByProof: data.canChangeOwnerByProof,
88
+ canTransfer: data.canTransfer,
89
+ canApprove: data.canApprove,
90
+ canChangeMetadata: data.canChangeMetadata,
91
+ canChangeStorage: data.canChangeStorage,
92
+ canChangeName: data.canChangeName,
93
+ canChangeMetadataVerificationKeyHash: data.canChangeMetadataVerificationKeyHash,
94
+ canPause: data.canPause,
95
+ address: this.address,
96
+ tokenId: this.tokenId,
97
+ id: data.id,
98
+ }),
99
+ name,
100
+ metadata,
101
+ storage,
102
+ owner,
103
+ approved: data.approved,
104
+ version: data.version,
105
+ isPaused: data.isPaused,
106
+ metadataVerificationKeyHash,
107
+ creator,
108
+ context: input.context,
109
+ oracleAddress: input.oracleAddress,
110
+ }));
111
+ // assert that the read-only fields are not changed
112
+ input.creator.assertEquals(output.creator);
113
+ NFTTransactionContext.assertEqual(input.context, output.context);
114
+ input.oracleAddress.assertEquals(output.oracleAddress);
115
+ // Check permissions and set new state
116
+ name
117
+ .equals(output.name)
118
+ .not()
119
+ .and(data.canChangeName.not())
120
+ .assertFalse(NftErrors.cannotChangeName);
121
+ this.name.set(output.name);
122
+ metadata
123
+ .equals(output.metadata)
124
+ .not()
125
+ .and(data.canChangeMetadata.not())
126
+ .assertFalse(NftErrors.cannotChangeMetadata);
127
+ this.metadata.set(output.metadata);
128
+ metadataVerificationKeyHash
129
+ .equals(output.metadataVerificationKeyHash)
130
+ .not()
131
+ .and(data.canChangeMetadataVerificationKeyHash.not())
132
+ .assertFalse(NftErrors.cannotChangeMetadataVerificationKeyHash);
133
+ this.metadataVerificationKeyHash.set(output.metadataVerificationKeyHash);
134
+ owner
135
+ .equals(output.owner)
136
+ .not()
137
+ .and(data.canChangeOwnerByProof.not())
138
+ .assertFalse(NftErrors.cannotChangeOwner);
139
+ Storage.equals(storage, output.storage)
140
+ .not()
141
+ .and(data.canChangeStorage.not())
142
+ .assertFalse(NftErrors.cannotChangeStorage);
143
+ this.storage.set(output.storage);
144
+ data.approved
145
+ .equals(output.approved)
146
+ .not()
147
+ .and(data.canChangeOwnerByProof.not())
148
+ .assertFalse(NftErrors.cannotChangeOwner);
149
+ data.isPaused
150
+ .equals(output.isPaused)
151
+ .not()
152
+ .and(data.canPause.not())
153
+ .assertFalse(NftErrors.cannotChangePauseState);
154
+ // recursive proofs can increase the version by more than 1
155
+ output.version.assertGreaterThan(data.version);
156
+ data.owner = output.owner;
157
+ data.approved = output.approved;
158
+ data.version = output.version;
159
+ this.packedData.set(data.pack());
160
+ const event = new UpdateEvent({
161
+ name: output.name,
162
+ metadata: output.metadata,
163
+ storage: output.storage,
164
+ owner: output.owner,
165
+ approved: output.approved,
166
+ version: output.version,
167
+ isPaused: output.isPaused,
168
+ metadataVerificationKeyHash: output.metadataVerificationKeyHash,
169
+ });
170
+ this.emitEvent("update", event);
171
+ return metadataVerificationKeyHash;
172
+ }
173
+ /**
174
+ * Transfers ownership of the NFT from one user to another.
175
+ *
176
+ * @param params - The parameters for the transfer (`TransferExtendedParams`).
177
+ * @returns The public key of the old owner (`PublicKey`).
178
+ */
179
+ async transfer(params) {
180
+ const data = NFTData.unpack(this.packedData.getAndRequireEquals());
181
+ data.canTransfer.assertTrue(NftErrors.cannotChangeOwner);
182
+ data.isPaused.assertFalse(NftErrors.nftIsPaused);
183
+ const owner = data.owner;
184
+ const approved = data.approved;
185
+ params.transferByOwner = owner.equals(params.from);
186
+ owner
187
+ .equals(params.from)
188
+ .or(approved
189
+ .equals(params.from)
190
+ .and(approved.equals(PublicKey.empty()).not()))
191
+ .assertTrue(NftErrors.cannotChangeOwner);
192
+ params.from = owner;
193
+ params.approved = approved;
194
+ const version = data.version.add(1);
195
+ data.version = version;
196
+ data.approved = PublicKey.empty();
197
+ data.owner = params.to;
198
+ this.packedData.set(data.pack());
199
+ this.emitEvent("transfer", new OwnershipChangeEvent({
200
+ from: owner,
201
+ to: params.to,
202
+ }));
203
+ return params;
204
+ }
205
+ /**
206
+ * Transfers ownership of the NFT from one user to another.
207
+ *
208
+ * @param approved - The public key of the approved address (`PublicKey`).
209
+ * @returns The public key of the owner (`PublicKey`).
210
+ */
211
+ async approveAddress(approved) {
212
+ const data = NFTData.unpack(this.packedData.getAndRequireEquals());
213
+ data.isPaused.assertFalse(NftErrors.nftIsPaused);
214
+ data.approved = approved;
215
+ this.packedData.set(data.pack());
216
+ this.emitEvent("approve", approved);
217
+ return data.owner;
218
+ }
219
+ /**
220
+ * Upgrades the verification key used by the NFT contract.
221
+ *
222
+ * @param vk - The new verification key (`VerificationKey`).
223
+ * @returns An owner public key to be checked by the Collection contract and the Boolean flag indicating if the owner's authorization is required
224
+ */
225
+ async upgradeVerificationKey(vk) {
226
+ const data = NFTData.unpack(this.packedData.getAndRequireEquals());
227
+ const version = data.version.add(1);
228
+ data.version = version;
229
+ this.account.verificationKey.set(vk);
230
+ this.packedData.set(data.pack());
231
+ return new UpgradeVerificationKeyData({
232
+ owner: data.owner,
233
+ isOwnerApprovalRequired: data.requireOwnerAuthorizationToUpgrade,
234
+ });
235
+ }
236
+ /**
237
+ * Pauses the NFT, disabling certain actions.
238
+ *
239
+ * @returns An owner public key to be checked by the Collection contract
240
+ */
241
+ async pause() {
242
+ const data = NFTData.unpack(this.packedData.getAndRequireEquals());
243
+ data.canPause.assertTrue(NftErrors.noPermissionToPause);
244
+ data.isPaused.assertFalse(NftErrors.nftAlreadyPaused);
245
+ data.isPaused = Bool(true);
246
+ this.packedData.set(data.pack());
247
+ this.emitEvent("pause", new PauseEvent({ isPaused: Bool(true) }));
248
+ return data.owner;
249
+ }
250
+ /**
251
+ * Resumes the NFT, re-enabling actions.
252
+ *
253
+ * @returns An owner public key to be checked by the Collection contract
254
+ */
255
+ async resume() {
256
+ const data = NFTData.unpack(this.packedData.getAndRequireEquals());
257
+ data.canPause.assertTrue(NftErrors.noPermissionToPause);
258
+ data.isPaused.assertTrue(NftErrors.nftIsNotPaused);
259
+ data.isPaused = Bool(false);
260
+ this.packedData.set(data.pack());
261
+ this.emitEvent("resume", new PauseEvent({ isPaused: Bool(false) }));
262
+ return data.owner;
263
+ }
264
+ }
265
+ __decorate([
266
+ state(Field),
267
+ __metadata("design:type", Object)
268
+ ], NFT.prototype, "name", void 0);
269
+ __decorate([
270
+ state(Field),
271
+ __metadata("design:type", Object)
272
+ ], NFT.prototype, "metadata", void 0);
273
+ __decorate([
274
+ state(Storage),
275
+ __metadata("design:type", Object)
276
+ ], NFT.prototype, "storage", void 0);
277
+ __decorate([
278
+ state(NFTDataPacked),
279
+ __metadata("design:type", Object)
280
+ ], NFT.prototype, "packedData", void 0);
281
+ __decorate([
282
+ state(Field),
283
+ __metadata("design:type", Object)
284
+ ], NFT.prototype, "metadataVerificationKeyHash", void 0);
285
+ __decorate([
286
+ method.returns(NFTStateStruct),
287
+ __metadata("design:type", Function),
288
+ __metadata("design:paramtypes", []),
289
+ __metadata("design:returntype", Promise)
290
+ ], NFT.prototype, "getState", null);
291
+ __decorate([
292
+ method.returns(Field),
293
+ __metadata("design:type", Function),
294
+ __metadata("design:paramtypes", [NFTState,
295
+ NFTState,
296
+ PublicKey]),
297
+ __metadata("design:returntype", Promise)
298
+ ], NFT.prototype, "update", null);
299
+ __decorate([
300
+ method.returns(TransferExtendedParams),
301
+ __metadata("design:type", Function),
302
+ __metadata("design:paramtypes", [TransferExtendedParams]),
303
+ __metadata("design:returntype", Promise)
304
+ ], NFT.prototype, "transfer", null);
305
+ __decorate([
306
+ method.returns(PublicKey),
307
+ __metadata("design:type", Function),
308
+ __metadata("design:paramtypes", [PublicKey]),
309
+ __metadata("design:returntype", Promise)
310
+ ], NFT.prototype, "approveAddress", null);
311
+ __decorate([
312
+ method.returns(UpgradeVerificationKeyData),
313
+ __metadata("design:type", Function),
314
+ __metadata("design:paramtypes", [VerificationKey]),
315
+ __metadata("design:returntype", Promise)
316
+ ], NFT.prototype, "upgradeVerificationKey", null);
317
+ __decorate([
318
+ method.returns(PublicKey),
319
+ __metadata("design:type", Function),
320
+ __metadata("design:paramtypes", []),
321
+ __metadata("design:returntype", Promise)
322
+ ], NFT.prototype, "pause", null);
323
+ __decorate([
324
+ method.returns(PublicKey),
325
+ __metadata("design:type", Function),
326
+ __metadata("design:paramtypes", []),
327
+ __metadata("design:returntype", Promise)
328
+ ], NFT.prototype, "resume", null);
329
+ //# sourceMappingURL=nft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nft.js","sourceRoot":"","sources":["../../../src/contracts/nft.ts"],"names":[],"mappings":"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"}