@silvana-one/nft 0.2.0 → 0.2.2

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 (191) hide show
  1. package/README.md +3 -1
  2. package/dist/tsconfig.web.tsbuildinfo +1 -0
  3. package/dist/web/admin/advanced.js.map +1 -0
  4. package/dist/web/admin/index.js.map +1 -0
  5. package/dist/web/contracts/admin.js.map +1 -0
  6. package/dist/web/contracts/collection.js.map +1 -0
  7. package/dist/web/contracts/index.js.map +1 -0
  8. package/dist/web/contracts/nft.js.map +1 -0
  9. package/dist/web/contracts.js.map +1 -0
  10. package/dist/web/index.js.map +1 -0
  11. package/dist/web/{src/interfaces → interfaces}/admin.js.map +1 -1
  12. package/dist/web/interfaces/approval.js.map +1 -0
  13. package/dist/web/interfaces/collection.js.map +1 -0
  14. package/dist/web/interfaces/encoding.js.map +1 -0
  15. package/dist/web/interfaces/events.js.map +1 -0
  16. package/dist/web/interfaces/index.js.map +1 -0
  17. package/dist/web/interfaces/ownable.js.map +1 -0
  18. package/dist/web/interfaces/owner.js.map +1 -0
  19. package/dist/web/interfaces/pausable.js.map +1 -0
  20. package/dist/web/interfaces/types.js.map +1 -0
  21. package/dist/web/interfaces/update.js.map +1 -0
  22. package/dist/web/marketplace/auction.js.map +1 -0
  23. package/dist/web/marketplace/bb.js.map +1 -0
  24. package/dist/web/marketplace/bid.js.map +1 -0
  25. package/dist/web/marketplace/index.js.map +1 -0
  26. package/dist/web/marketplace/nft-shares.js.map +1 -0
  27. package/dist/web/marketplace/offer.js.map +1 -0
  28. package/dist/web/marketplace/types.js.map +1 -0
  29. package/dist/web/metadata/address.js.map +1 -0
  30. package/dist/web/metadata/index.js.map +1 -0
  31. package/dist/web/metadata/metadata.js.map +1 -0
  32. package/dist/web/metadata/pin.js.map +1 -0
  33. package/dist/web/metadata/text.js.map +1 -0
  34. package/dist/web/metadata/tree.js.map +1 -0
  35. package/dist/web/util/div.js.map +1 -0
  36. package/dist/web/util/index.js.map +1 -0
  37. package/dist/web/vk.js.map +1 -0
  38. package/dist/web/zkprogram-example/game.js.map +1 -0
  39. package/dist/web/zkprogram-example/index.js.map +1 -0
  40. package/dist/web/zkprogram-example/update.js.map +1 -0
  41. package/package.json +9 -9
  42. package/dist/web/src/admin/advanced.js.map +0 -1
  43. package/dist/web/src/admin/index.js.map +0 -1
  44. package/dist/web/src/contracts/admin.js.map +0 -1
  45. package/dist/web/src/contracts/collection.js.map +0 -1
  46. package/dist/web/src/contracts/index.js.map +0 -1
  47. package/dist/web/src/contracts/nft.js.map +0 -1
  48. package/dist/web/src/contracts.js.map +0 -1
  49. package/dist/web/src/index.js.map +0 -1
  50. package/dist/web/src/interfaces/approval.js.map +0 -1
  51. package/dist/web/src/interfaces/collection.js.map +0 -1
  52. package/dist/web/src/interfaces/encoding.js.map +0 -1
  53. package/dist/web/src/interfaces/events.js.map +0 -1
  54. package/dist/web/src/interfaces/index.js.map +0 -1
  55. package/dist/web/src/interfaces/ownable.js.map +0 -1
  56. package/dist/web/src/interfaces/owner.js.map +0 -1
  57. package/dist/web/src/interfaces/pausable.js.map +0 -1
  58. package/dist/web/src/interfaces/types.js.map +0 -1
  59. package/dist/web/src/interfaces/update.js.map +0 -1
  60. package/dist/web/src/marketplace/auction.js.map +0 -1
  61. package/dist/web/src/marketplace/bb.js.map +0 -1
  62. package/dist/web/src/marketplace/bid.js.map +0 -1
  63. package/dist/web/src/marketplace/index.js.map +0 -1
  64. package/dist/web/src/marketplace/nft-shares.js.map +0 -1
  65. package/dist/web/src/marketplace/offer.js.map +0 -1
  66. package/dist/web/src/marketplace/types.js.map +0 -1
  67. package/dist/web/src/metadata/address.js.map +0 -1
  68. package/dist/web/src/metadata/index.js.map +0 -1
  69. package/dist/web/src/metadata/metadata.js.map +0 -1
  70. package/dist/web/src/metadata/pin.js.map +0 -1
  71. package/dist/web/src/metadata/text.js.map +0 -1
  72. package/dist/web/src/metadata/tree.js.map +0 -1
  73. package/dist/web/src/util/div.js.map +0 -1
  74. package/dist/web/src/util/index.js.map +0 -1
  75. package/dist/web/src/vk.js.map +0 -1
  76. package/dist/web/src/zkprogram-example/game.js.map +0 -1
  77. package/dist/web/src/zkprogram-example/index.js.map +0 -1
  78. package/dist/web/src/zkprogram-example/update.js.map +0 -1
  79. package/dist/web/test/auction.test.d.ts +0 -1212
  80. package/dist/web/test/auction.test.js +0 -1248
  81. package/dist/web/test/auction.test.js.map +0 -1
  82. package/dist/web/test/bb.test.d.ts +0 -1
  83. package/dist/web/test/bb.test.js +0 -159
  84. package/dist/web/test/bb.test.js.map +0 -1
  85. package/dist/web/test/contract.test.d.ts +0 -1
  86. package/dist/web/test/contract.test.js +0 -1333
  87. package/dist/web/test/contract.test.js.map +0 -1
  88. package/dist/web/test/div.test.d.ts +0 -1
  89. package/dist/web/test/div.test.js +0 -55
  90. package/dist/web/test/div.test.js.map +0 -1
  91. package/dist/web/test/helpers/config.d.ts +0 -4
  92. package/dist/web/test/helpers/config.js +0 -103
  93. package/dist/web/test/helpers/config.js.map +0 -1
  94. package/dist/web/test/helpers/metadata.d.ts +0 -30
  95. package/dist/web/test/helpers/metadata.js +0 -155
  96. package/dist/web/test/helpers/metadata.js.map +0 -1
  97. package/dist/web/test/helpers/utils.d.ts +0 -16
  98. package/dist/web/test/helpers/utils.js +0 -36
  99. package/dist/web/test/helpers/utils.js.map +0 -1
  100. package/dist/web/test/helpers/validators.d.ts +0 -15
  101. package/dist/web/test/helpers/validators.js +0 -46
  102. package/dist/web/test/helpers/validators.js.map +0 -1
  103. package/dist/web/test/metadata.test.d.ts +0 -1
  104. package/dist/web/test/metadata.test.js +0 -66
  105. package/dist/web/test/metadata.test.js.map +0 -1
  106. package/dist/web/test/mint.test.d.ts +0 -1
  107. package/dist/web/test/mint.test.js +0 -262
  108. package/dist/web/test/mint.test.js.map +0 -1
  109. package/dist/web/test/pack.test.d.ts +0 -1
  110. package/dist/web/test/pack.test.js +0 -141
  111. package/dist/web/test/pack.test.js.map +0 -1
  112. package/dist/web/test/zkprogram.test.d.ts +0 -1
  113. package/dist/web/test/zkprogram.test.js +0 -728
  114. package/dist/web/test/zkprogram.test.js.map +0 -1
  115. package/dist/web/tsconfig.web.tsbuildinfo +0 -1
  116. /package/dist/web/{src/admin → admin}/advanced.d.ts +0 -0
  117. /package/dist/web/{src/admin → admin}/advanced.js +0 -0
  118. /package/dist/web/{src/admin → admin}/index.d.ts +0 -0
  119. /package/dist/web/{src/admin → admin}/index.js +0 -0
  120. /package/dist/web/{src/contracts → contracts}/admin.d.ts +0 -0
  121. /package/dist/web/{src/contracts → contracts}/admin.js +0 -0
  122. /package/dist/web/{src/contracts → contracts}/collection.d.ts +0 -0
  123. /package/dist/web/{src/contracts → contracts}/collection.js +0 -0
  124. /package/dist/web/{src/contracts → contracts}/index.d.ts +0 -0
  125. /package/dist/web/{src/contracts → contracts}/index.js +0 -0
  126. /package/dist/web/{src/contracts → contracts}/nft.d.ts +0 -0
  127. /package/dist/web/{src/contracts → contracts}/nft.js +0 -0
  128. /package/dist/web/{src/contracts.d.ts → contracts.d.ts} +0 -0
  129. /package/dist/web/{src/contracts.js → contracts.js} +0 -0
  130. /package/dist/web/{src/index.d.ts → index.d.ts} +0 -0
  131. /package/dist/web/{src/index.js → index.js} +0 -0
  132. /package/dist/web/{src/interfaces → interfaces}/admin.d.ts +0 -0
  133. /package/dist/web/{src/interfaces → interfaces}/admin.js +0 -0
  134. /package/dist/web/{src/interfaces → interfaces}/approval.d.ts +0 -0
  135. /package/dist/web/{src/interfaces → interfaces}/approval.js +0 -0
  136. /package/dist/web/{src/interfaces → interfaces}/collection.d.ts +0 -0
  137. /package/dist/web/{src/interfaces → interfaces}/collection.js +0 -0
  138. /package/dist/web/{src/interfaces → interfaces}/encoding.d.ts +0 -0
  139. /package/dist/web/{src/interfaces → interfaces}/encoding.js +0 -0
  140. /package/dist/web/{src/interfaces → interfaces}/events.d.ts +0 -0
  141. /package/dist/web/{src/interfaces → interfaces}/events.js +0 -0
  142. /package/dist/web/{src/interfaces → interfaces}/index.d.ts +0 -0
  143. /package/dist/web/{src/interfaces → interfaces}/index.js +0 -0
  144. /package/dist/web/{src/interfaces → interfaces}/ownable.d.ts +0 -0
  145. /package/dist/web/{src/interfaces → interfaces}/ownable.js +0 -0
  146. /package/dist/web/{src/interfaces → interfaces}/owner.d.ts +0 -0
  147. /package/dist/web/{src/interfaces → interfaces}/owner.js +0 -0
  148. /package/dist/web/{src/interfaces → interfaces}/pausable.d.ts +0 -0
  149. /package/dist/web/{src/interfaces → interfaces}/pausable.js +0 -0
  150. /package/dist/web/{src/interfaces → interfaces}/types.d.ts +0 -0
  151. /package/dist/web/{src/interfaces → interfaces}/types.js +0 -0
  152. /package/dist/web/{src/interfaces → interfaces}/update.d.ts +0 -0
  153. /package/dist/web/{src/interfaces → interfaces}/update.js +0 -0
  154. /package/dist/web/{src/marketplace → marketplace}/auction.d.ts +0 -0
  155. /package/dist/web/{src/marketplace → marketplace}/auction.js +0 -0
  156. /package/dist/web/{src/marketplace → marketplace}/bb.d.ts +0 -0
  157. /package/dist/web/{src/marketplace → marketplace}/bb.js +0 -0
  158. /package/dist/web/{src/marketplace → marketplace}/bid.d.ts +0 -0
  159. /package/dist/web/{src/marketplace → marketplace}/bid.js +0 -0
  160. /package/dist/web/{src/marketplace → marketplace}/index.d.ts +0 -0
  161. /package/dist/web/{src/marketplace → marketplace}/index.js +0 -0
  162. /package/dist/web/{src/marketplace → marketplace}/nft-shares.d.ts +0 -0
  163. /package/dist/web/{src/marketplace → marketplace}/nft-shares.js +0 -0
  164. /package/dist/web/{src/marketplace → marketplace}/offer.d.ts +0 -0
  165. /package/dist/web/{src/marketplace → marketplace}/offer.js +0 -0
  166. /package/dist/web/{src/marketplace → marketplace}/types.d.ts +0 -0
  167. /package/dist/web/{src/marketplace → marketplace}/types.js +0 -0
  168. /package/dist/web/{src/metadata → metadata}/address.d.ts +0 -0
  169. /package/dist/web/{src/metadata → metadata}/address.js +0 -0
  170. /package/dist/web/{src/metadata → metadata}/index.d.ts +0 -0
  171. /package/dist/web/{src/metadata → metadata}/index.js +0 -0
  172. /package/dist/web/{src/metadata → metadata}/metadata.d.ts +0 -0
  173. /package/dist/web/{src/metadata → metadata}/metadata.js +0 -0
  174. /package/dist/web/{src/metadata → metadata}/pin.d.ts +0 -0
  175. /package/dist/web/{src/metadata → metadata}/pin.js +0 -0
  176. /package/dist/web/{src/metadata → metadata}/text.d.ts +0 -0
  177. /package/dist/web/{src/metadata → metadata}/text.js +0 -0
  178. /package/dist/web/{src/metadata → metadata}/tree.d.ts +0 -0
  179. /package/dist/web/{src/metadata → metadata}/tree.js +0 -0
  180. /package/dist/web/{src/util → util}/div.d.ts +0 -0
  181. /package/dist/web/{src/util → util}/div.js +0 -0
  182. /package/dist/web/{src/util → util}/index.d.ts +0 -0
  183. /package/dist/web/{src/util → util}/index.js +0 -0
  184. /package/dist/web/{src/vk.d.ts → vk.d.ts} +0 -0
  185. /package/dist/web/{src/vk.js → vk.js} +0 -0
  186. /package/dist/web/{src/zkprogram-example → zkprogram-example}/game.d.ts +0 -0
  187. /package/dist/web/{src/zkprogram-example → zkprogram-example}/game.js +0 -0
  188. /package/dist/web/{src/zkprogram-example → zkprogram-example}/index.d.ts +0 -0
  189. /package/dist/web/{src/zkprogram-example → zkprogram-example}/index.js +0 -0
  190. /package/dist/web/{src/zkprogram-example → zkprogram-example}/update.d.ts +0 -0
  191. /package/dist/web/{src/zkprogram-example → zkprogram-example}/update.js +0 -0
@@ -1,66 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert";
3
- import { Metadata, ColorPlugin } from "../src/index.js";
4
- import { randomMap, randomImage } from "./helpers/metadata.js";
5
- const NUMBER_OF_ITERATIONS = 5;
6
- const printMetadata = false;
7
- describe("Test serializing and deserializing Metadata", () => {
8
- it("should serialize and deserialize Metadata with plugins", async () => {
9
- const map = new Metadata({
10
- name: "test",
11
- image: randomImage(),
12
- plugins: [new ColorPlugin()],
13
- });
14
- map.addTrait({
15
- key: "color1",
16
- type: "color",
17
- value: "blue",
18
- });
19
- map.addTrait({
20
- key: "color2",
21
- type: "color",
22
- value: "#800080",
23
- });
24
- map.addTrait({
25
- key: "color3",
26
- type: "color",
27
- value: 0xffa500,
28
- });
29
- const serializedPublic = JSON.stringify(map.toJSON(false), null, 2);
30
- const serializedPrivate = JSON.stringify(map.toJSON(true), null, 2);
31
- if (printMetadata)
32
- console.log("Serialized", serializedPrivate);
33
- assert(!serializedPublic.includes("isPrivate"));
34
- const deserializedPublic = Metadata.fromJSON({
35
- json: JSON.parse(serializedPublic),
36
- checkRoot: false,
37
- plugins: [new ColorPlugin()],
38
- });
39
- const deserializedPrivate = Metadata.fromJSON({
40
- json: JSON.parse(serializedPrivate),
41
- checkRoot: true,
42
- plugins: [new ColorPlugin()],
43
- });
44
- assert.deepStrictEqual(deserializedPrivate, map);
45
- });
46
- it("should serialize and deserialize Metadata", async () => {
47
- for (let i = 0; i < NUMBER_OF_ITERATIONS; i++) {
48
- const map = randomMap();
49
- const serializedPublic = JSON.stringify(map.toJSON(false), null, 2);
50
- const serializedPrivate = JSON.stringify(map.toJSON(true), null, 2);
51
- if (printMetadata)
52
- console.log("Serialized", serializedPrivate);
53
- assert(!serializedPublic.includes("isPrivate"));
54
- const deserializedPublic = Metadata.fromJSON({
55
- json: JSON.parse(serializedPublic),
56
- checkRoot: false,
57
- });
58
- const deserializedPrivate = Metadata.fromJSON({
59
- json: JSON.parse(serializedPrivate),
60
- checkRoot: true,
61
- });
62
- assert.deepStrictEqual(deserializedPrivate, map);
63
- }
64
- });
65
- });
66
- //# sourceMappingURL=metadata.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.test.js","sourceRoot":"","sources":["../../../test/metadata.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,262 +0,0 @@
1
- import { afterEach, beforeEach, describe, it } from "node:test";
2
- import assert from "node:assert";
3
- import { Mina, Field, AccountUpdate, UInt32, Cache, UInt64, fetchLastBlock, PublicKey, } from "o1js";
4
- import { fetchMinaAccount, initBlockchain, accountBalanceMina, Memory, sendTx, } from "@silvana-one/mina-utils";
5
- import { TEST_ACCOUNTS } from "./helpers/config.js";
6
- import { NFT, Collection, NFTAdmin, CollectionData, fieldFromString, NFTData, MintParams, nftVerificationKeys, } from "../src/index.js";
7
- import { Storage } from "@silvana-one/storage";
8
- import { processArguments } from "./helpers/utils.js";
9
- import { randomMetadata } from "./helpers/metadata.js";
10
- let { chain, approveTransfer, noLog } = processArguments();
11
- const NUMBER_OF_NFTS = 3;
12
- const networkId = chain === "mainnet" ? "mainnet" : "devnet";
13
- const expectedTxStatus = chain === "zeko" ? "pending" : "included";
14
- const vk = nftVerificationKeys[networkId].vk;
15
- const { TestPublicKey } = Mina;
16
- let nftContractVk;
17
- let nftProgramVk;
18
- let collectionVk;
19
- let adminVk;
20
- const cache = Cache.FileSystem("./cache");
21
- const zkCollectionKey = TestPublicKey.random();
22
- const zkAdminKey = TestPublicKey.random();
23
- const collectionContract = new Collection(zkCollectionKey);
24
- const tokenId = collectionContract.deriveTokenId();
25
- const adminContract = new NFTAdmin(zkAdminKey);
26
- const NUMBER_OF_USERS = 1;
27
- let admin;
28
- let faucet;
29
- const whitelistedUsers = TEST_ACCOUNTS.slice(NUMBER_OF_USERS)
30
- .map((account) => TestPublicKey.fromBase58(account.privateKey))
31
- .slice(0, NUMBER_OF_USERS);
32
- const validators = [
33
- TestPublicKey.random(),
34
- TestPublicKey.random(),
35
- TestPublicKey.random(),
36
- ];
37
- const creator = whitelistedUsers[0];
38
- const nftParams = [];
39
- describe(`NFT mint tests: ${chain} ${approveTransfer ? "approve " : ""}${noLog ? "noLog" : ""}`, () => {
40
- const originalConsoleLog = console.log;
41
- if (noLog) {
42
- beforeEach(() => {
43
- console.log = () => { };
44
- });
45
- afterEach(() => {
46
- console.log = originalConsoleLog;
47
- });
48
- }
49
- it("should initialize a blockchain", async () => {
50
- if (chain === "devnet" || chain === "zeko" || chain === "mainnet") {
51
- await initBlockchain(chain);
52
- admin = TestPublicKey.fromBase58(TEST_ACCOUNTS[0].privateKey);
53
- }
54
- else if (chain === "local") {
55
- const { keys } = await initBlockchain(chain, 2);
56
- faucet = TestPublicKey(keys[0].key);
57
- admin = TestPublicKey(keys[1].key);
58
- }
59
- else if (chain === "lightnet") {
60
- const { keys } = await initBlockchain(chain, 2);
61
- faucet = TestPublicKey(keys[0].key);
62
- admin = TestPublicKey(keys[1].key);
63
- }
64
- console.log("chain:", chain);
65
- console.log("networkId:", Mina.getNetworkId());
66
- console.log("Collection contract address:", zkCollectionKey.toBase58());
67
- console.log("Admin contract address:", zkAdminKey.toBase58());
68
- if (chain === "local" || chain === "lightnet") {
69
- await fetchMinaAccount({ publicKey: faucet, force: true });
70
- let nonce = Number(Mina.getAccount(faucet).nonce.toBigint());
71
- let txs = [];
72
- for (const user of whitelistedUsers) {
73
- await fetchMinaAccount({ publicKey: user, force: true });
74
- const balance = await accountBalanceMina(user);
75
- if (balance > 30) {
76
- continue;
77
- }
78
- const transaction = await Mina.transaction({
79
- sender: faucet,
80
- fee: 100_000_000,
81
- memo: "topup",
82
- nonce: nonce++,
83
- }, async () => {
84
- const senderUpdate = AccountUpdate.createSigned(faucet);
85
- if (balance === 0)
86
- senderUpdate.balance.subInPlace(1000000000);
87
- senderUpdate.send({ to: user, amount: 100_000_000_000 });
88
- });
89
- txs.push(await sendTx({
90
- tx: transaction.sign([faucet.key]),
91
- description: "topup",
92
- wait: false,
93
- }));
94
- }
95
- for (const tx of txs) {
96
- if (tx?.status === "pending") {
97
- const txIncluded = await tx.safeWait();
98
- if (txIncluded.status !== expectedTxStatus) {
99
- throw new Error("Transaction not included");
100
- }
101
- else {
102
- console.log("Topup tx included:", txIncluded.hash);
103
- }
104
- }
105
- else
106
- throw new Error("Topup transaction not pending");
107
- }
108
- console.log("Topup done");
109
- }
110
- console.log("Creator", creator.toBase58(), "balance:", await accountBalanceMina(creator));
111
- console.log("Admin ", admin.toBase58(), "balance:", await accountBalanceMina(admin));
112
- Memory.info("before compiling");
113
- });
114
- it("should compile NFT Contract", async () => {
115
- console.log("compiling...");
116
- console.time("compiled NFTContract");
117
- const { verificationKey } = await NFT.compile({ cache });
118
- nftContractVk = verificationKey;
119
- console.timeEnd("compiled NFTContract");
120
- assert.strictEqual(nftContractVk.hash.toJSON(), vk.NFT.hash);
121
- assert.strictEqual(nftContractVk.data, vk.NFT.data);
122
- });
123
- it("should compile Admin", async () => {
124
- console.time("compiled Admin");
125
- const { verificationKey } = await NFTAdmin.compile({ cache });
126
- adminVk = verificationKey;
127
- console.timeEnd("compiled Admin");
128
- console.log("Admin vk hash:", adminVk.hash.toJSON());
129
- });
130
- it("should compile Collection", async () => {
131
- console.time("compiled Collection");
132
- const { verificationKey } = await Collection.compile({ cache });
133
- collectionVk = verificationKey;
134
- console.timeEnd("compiled Collection");
135
- console.log("Collection vk hash:", collectionVk.hash.toJSON());
136
- });
137
- it("should deploy a Collection", async () => {
138
- console.time("deployed Collection");
139
- const { metadataRoot, ipfsHash, serializedMap, name, privateMetadata } = await randomMetadata({
140
- includePrivateTraits: false,
141
- includeBanner: true,
142
- });
143
- if (!ipfsHash) {
144
- throw new Error("IPFS hash is undefined");
145
- }
146
- const slot = chain === "local"
147
- ? Mina.currentSlot()
148
- : chain === "zeko"
149
- ? UInt32.zero
150
- : (await fetchLastBlock()).globalSlotSinceGenesis;
151
- const expiry = slot.add(UInt32.from(100000));
152
- const masterNFT = new MintParams({
153
- name: fieldFromString(name),
154
- address: zkCollectionKey,
155
- tokenId,
156
- data: NFTData.new({
157
- owner: creator,
158
- }),
159
- fee: UInt64.zero,
160
- metadata: metadataRoot,
161
- storage: Storage.fromString(ipfsHash),
162
- metadataVerificationKeyHash: Field(0),
163
- expiry,
164
- });
165
- await fetchMinaAccount({ publicKey: creator, force: true });
166
- const tx = await Mina.transaction({
167
- sender: creator,
168
- fee: 100_000_000,
169
- memo: `Deploy Collection ${name}`.substring(0, 30),
170
- }, async () => {
171
- AccountUpdate.fundNewAccount(creator, 3);
172
- await adminContract.deploy({
173
- admin: creator,
174
- uri: `AdminContract`,
175
- });
176
- // deploy() and initialize() create 2 account updates for the same publicKey, it is intended
177
- await collectionContract.deploy({
178
- creator,
179
- collectionName: fieldFromString(name),
180
- baseURL: fieldFromString("ipfs"),
181
- admin: zkAdminKey,
182
- symbol: "NFT",
183
- url: `https://${chain}.minanft.io`,
184
- });
185
- await collectionContract.initialize(masterNFT, CollectionData.new({
186
- requireTransferApproval: approveTransfer,
187
- royaltyFee: 10, // 10%
188
- transferFee: 1_000_000_000, // 1 MINA
189
- }));
190
- });
191
- await tx.prove();
192
- assert.strictEqual((await sendTx({
193
- tx: tx.sign([creator.key, zkCollectionKey.key, zkAdminKey.key]),
194
- description: "deploy Collection",
195
- }))?.status, expectedTxStatus);
196
- console.timeEnd("deployed Collection");
197
- });
198
- it("should mint NFT", async () => {
199
- Memory.info("before mint");
200
- console.time("minted NFT");
201
- for (let i = 0; i < NUMBER_OF_NFTS; i++) {
202
- const { name, ipfsHash, metadataRoot, privateMetadata } = await randomMetadata();
203
- if (!ipfsHash) {
204
- throw new Error("IPFS hash is undefined");
205
- }
206
- const zkNFTKey = TestPublicKey.random();
207
- console.log(`NFT ${i}:`, zkNFTKey.toBase58());
208
- nftParams.push({
209
- name,
210
- address: zkNFTKey,
211
- collection: zkCollectionKey,
212
- privateMetadata,
213
- });
214
- await fetchMinaAccount({ publicKey: creator, force: true });
215
- await fetchMinaAccount({ publicKey: zkCollectionKey, force: true });
216
- await fetchMinaAccount({ publicKey: zkAdminKey, force: true });
217
- const slot = chain === "local"
218
- ? Mina.currentSlot()
219
- : chain === "zeko"
220
- ? UInt32.zero
221
- : (await fetchLastBlock()).globalSlotSinceGenesis;
222
- const expiry = slot.add(UInt32.from(100000));
223
- const tx = await Mina.transaction({
224
- sender: creator,
225
- fee: 100_000_000,
226
- memo: `Mint NFT ${name}`.substring(0, 30),
227
- }, async () => {
228
- await collectionContract.mintByCreator({
229
- name: fieldFromString(name),
230
- address: zkNFTKey,
231
- tokenId,
232
- metadata: metadataRoot,
233
- data: NFTData.new({
234
- canChangeMetadata: false,
235
- canPause: false,
236
- owner: creator,
237
- }),
238
- metadataVerificationKeyHash: Field(0),
239
- expiry,
240
- fee: UInt64.from(10_000_000_000),
241
- storage: Storage.fromString(ipfsHash),
242
- });
243
- });
244
- await tx.prove();
245
- assert.strictEqual((await sendTx({
246
- tx: tx.sign([creator.key, zkNFTKey.key]),
247
- description: "mint",
248
- }))?.status, expectedTxStatus);
249
- await fetchMinaAccount({ publicKey: zkNFTKey, tokenId, force: true });
250
- const nft = new NFT(zkNFTKey, tokenId);
251
- const dataCheck = NFTData.unpack(nft.packedData.get());
252
- console.log("owner", creator.toBase58());
253
- console.log("ownerCheck", dataCheck.owner.toBase58());
254
- console.log("approvalCheck", dataCheck.approved.toBase58());
255
- console.log("creator", creator.toBase58());
256
- assert.strictEqual(dataCheck.owner.equals(creator).toBoolean(), true);
257
- assert.strictEqual(dataCheck.approved.equals(PublicKey.empty()).toBoolean(), true);
258
- }
259
- console.timeEnd("minted NFT");
260
- });
261
- });
262
- //# sourceMappingURL=mint.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mint.test.js","sourceRoot":"","sources":["../../../test/mint.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,141 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import assert from "node:assert";
3
- import { UInt32, Bool, UInt64, PrivateKey, PublicKey, Field } from "o1js";
4
- import { NFTData, CollectionData, AdminData } from "../src/index.js";
5
- import { Storage } from "@silvana-one/storage";
6
- import { UpgradeDatabaseState, PublicKeyOption } from "@silvana-one/upgradable";
7
- const NUMBER_OF_ITERATIONS = 1000;
8
- const randomBool = () => Math.random() < 0.5;
9
- describe("Test packing and unpacking", async () => {
10
- it("should pack and unpack NFTData", async () => {
11
- for (let i = 0; i < NUMBER_OF_ITERATIONS; i++) {
12
- const randomVersion = UInt32.from(Math.floor(Math.random() * 2 ** 32));
13
- const randomId = UInt64.from(Math.floor(Math.random() * 2 ** 64));
14
- const original = new NFTData({
15
- owner: PrivateKey.random().toPublicKey(),
16
- approved: PrivateKey.random().toPublicKey(),
17
- version: randomVersion,
18
- id: randomId,
19
- canChangeOwnerByProof: Bool(randomBool()),
20
- canTransfer: Bool(randomBool()),
21
- canApprove: Bool(randomBool()),
22
- canChangeMetadata: Bool(randomBool()),
23
- canChangeStorage: Bool(randomBool()),
24
- canChangeName: Bool(randomBool()),
25
- canChangeMetadataVerificationKeyHash: Bool(randomBool()),
26
- canPause: Bool(randomBool()),
27
- isPaused: Bool(randomBool()),
28
- requireOwnerAuthorizationToUpgrade: Bool(randomBool()),
29
- });
30
- const packed = original.pack();
31
- const unpacked = NFTData.unpack(packed);
32
- assert.strictEqual(unpacked.owner.equals(original.owner).toBoolean(), true);
33
- assert.strictEqual(unpacked.approved.equals(original.approved).toBoolean(), true);
34
- assert.strictEqual(unpacked.version.toBigint(), original.version.toBigint());
35
- assert.strictEqual(unpacked.id.toBigInt(), original.id.toBigInt());
36
- assert.strictEqual(unpacked.canChangeOwnerByProof.toBoolean(), original.canChangeOwnerByProof.toBoolean());
37
- assert.strictEqual(unpacked.canTransfer.toBoolean(), original.canTransfer.toBoolean());
38
- assert.strictEqual(unpacked.canApprove.toBoolean(), original.canApprove.toBoolean());
39
- assert.strictEqual(unpacked.canChangeMetadata.toBoolean(), original.canChangeMetadata.toBoolean());
40
- assert.strictEqual(unpacked.canChangeStorage.toBoolean(), original.canChangeStorage.toBoolean());
41
- assert.strictEqual(unpacked.canChangeName.toBoolean(), original.canChangeName.toBoolean());
42
- assert.strictEqual(unpacked.canChangeMetadataVerificationKeyHash.toBoolean(), original.canChangeMetadataVerificationKeyHash.toBoolean());
43
- assert.strictEqual(unpacked.canPause.toBoolean(), original.canPause.toBoolean());
44
- assert.strictEqual(unpacked.isPaused.toBoolean(), original.isPaused.toBoolean());
45
- assert.strictEqual(unpacked.requireOwnerAuthorizationToUpgrade.toBoolean(), original.requireOwnerAuthorizationToUpgrade.toBoolean());
46
- }
47
- });
48
- it("should pack and unpack CollectionData", async () => {
49
- for (let i = 0; i < NUMBER_OF_ITERATIONS; i++) {
50
- const publicKey = PrivateKey.random().toPublicKey();
51
- const original = new CollectionData({
52
- royaltyFee: UInt32.from(Math.floor(Math.random() * 2 ** 32)),
53
- transferFee: UInt64.from(Math.floor(Math.random() * 2 ** 64)),
54
- requireTransferApproval: Bool(randomBool()),
55
- mintingIsLimited: Bool(randomBool()),
56
- isPaused: Bool(randomBool()),
57
- });
58
- const packed = original.pack();
59
- const unpacked = CollectionData.unpack(packed);
60
- assert.strictEqual(unpacked.requireTransferApproval.toBoolean(), original.requireTransferApproval.toBoolean());
61
- assert.strictEqual(unpacked.mintingIsLimited.toBoolean(), original.mintingIsLimited.toBoolean());
62
- assert.strictEqual(unpacked.isPaused.toBoolean(), original.isPaused.toBoolean());
63
- assert.strictEqual(unpacked.royaltyFee.toBigint() === original.royaltyFee.toBigint(), true);
64
- assert.strictEqual(unpacked.transferFee.toBigInt() === original.transferFee.toBigInt(), true);
65
- }
66
- });
67
- it("should pack and unpack PublicKey", async () => {
68
- for (let i = 0; i < NUMBER_OF_ITERATIONS; i++) {
69
- const publicKey = PrivateKey.random().toPublicKey();
70
- const x = publicKey.x;
71
- const isOdd = publicKey.isOdd;
72
- const restored = PublicKey.from({ x, isOdd });
73
- assert.strictEqual(restored.equals(publicKey).toBoolean(), true);
74
- }
75
- });
76
- it("should pack and unpack AdminData", async () => {
77
- for (let i = 0; i < NUMBER_OF_ITERATIONS; i++) {
78
- const original = new AdminData({
79
- canPause: Bool(randomBool()),
80
- isPaused: Bool(randomBool()),
81
- allowChangeRoyalty: Bool(randomBool()),
82
- allowChangeTransferFee: Bool(randomBool()),
83
- allowChangeBaseUri: Bool(randomBool()),
84
- allowChangeCreator: Bool(randomBool()),
85
- allowChangeAdmin: Bool(randomBool()),
86
- allowChangeName: Bool(randomBool()),
87
- });
88
- const packed = original.pack();
89
- const unpacked = AdminData.unpack(packed);
90
- assert.strictEqual(unpacked.canPause.toBoolean(), original.canPause.toBoolean());
91
- assert.strictEqual(unpacked.isPaused.toBoolean(), original.isPaused.toBoolean());
92
- assert.strictEqual(unpacked.allowChangeRoyalty.toBoolean(), original.allowChangeRoyalty.toBoolean());
93
- assert.strictEqual(unpacked.allowChangeTransferFee.toBoolean(), original.allowChangeTransferFee.toBoolean());
94
- assert.strictEqual(unpacked.allowChangeBaseUri.toBoolean(), original.allowChangeBaseUri.toBoolean());
95
- assert.strictEqual(unpacked.allowChangeCreator.toBoolean(), original.allowChangeCreator.toBoolean());
96
- assert.strictEqual(unpacked.allowChangeAdmin.toBoolean(), original.allowChangeAdmin.toBoolean());
97
- assert.strictEqual(unpacked.allowChangeName.toBoolean(), original.allowChangeName.toBoolean());
98
- }
99
- });
100
- it("should pack and unpack UpgradeDatabaseState", async () => {
101
- const original = UpgradeDatabaseState.empty();
102
- const packed = original.pack();
103
- const unpacked = UpgradeDatabaseState.unpack(packed);
104
- assert.strictEqual(unpacked.root.equals(original.root).toBoolean(), true);
105
- assert.strictEqual(Storage.equals(unpacked.storage, original.storage).toBoolean(), true);
106
- assert.strictEqual(unpacked.nextUpgradeAuthority.value
107
- .equals(original.nextUpgradeAuthority.value)
108
- .toBoolean(), true);
109
- assert.strictEqual(unpacked.nextUpgradeAuthority.isSome.toBoolean() ===
110
- original.nextUpgradeAuthority.isSome.toBoolean(), true);
111
- assert.strictEqual(unpacked.version.toBigint(), original.version.toBigint());
112
- assert.strictEqual(unpacked.validFrom.toBigint(), original.validFrom.toBigint());
113
- for (let i = 0; i < NUMBER_OF_ITERATIONS; i++) {
114
- const randomVersion = UInt32.from(Math.floor(Math.random() * 2 ** 32));
115
- const randomValidFrom = UInt32.from(Math.floor(Math.random() * 2 ** 32));
116
- const randomStorage = new Storage({
117
- url: [Field.random(), Field.random()],
118
- });
119
- const original = new UpgradeDatabaseState({
120
- root: Field.random(),
121
- storage: randomStorage,
122
- nextUpgradeAuthority: Math.random() < 0.5
123
- ? PublicKeyOption.from(PrivateKey.random().toPublicKey())
124
- : PublicKeyOption.none(),
125
- validFrom: randomValidFrom,
126
- version: randomVersion,
127
- });
128
- const packed = original.pack();
129
- const unpacked = UpgradeDatabaseState.unpack(packed);
130
- assert.strictEqual(unpacked.root.equals(original.root).toBoolean(), true);
131
- assert.strictEqual(Storage.equals(unpacked.storage, original.storage).toBoolean(), true);
132
- assert.strictEqual(unpacked.nextUpgradeAuthority.value
133
- .equals(original.nextUpgradeAuthority.value)
134
- .toBoolean(), true);
135
- assert.strictEqual(unpacked.nextUpgradeAuthority.isSome.toBoolean() ===
136
- original.nextUpgradeAuthority.isSome.toBoolean(), true);
137
- assert.strictEqual(unpacked.validFrom.toBigint(), original.validFrom.toBigint());
138
- }
139
- });
140
- });
141
- //# sourceMappingURL=pack.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pack.test.js","sourceRoot":"","sources":["../../../test/pack.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};