@silvana-one/nft 0.2.11 → 1.0.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.
- package/README.md +12 -0
- package/dist/node/contracts/admin.d.ts +100 -10
- package/dist/node/contracts/admin.js +130 -29
- package/dist/node/contracts/admin.js.map +1 -1
- package/dist/node/contracts/collection.d.ts +51 -34
- package/dist/node/contracts/collection.js +162 -71
- package/dist/node/contracts/collection.js.map +1 -1
- package/dist/node/contracts/nft.js +3 -0
- package/dist/node/contracts/nft.js.map +1 -1
- package/dist/node/contracts.d.ts +36 -30
- package/dist/node/index.cjs +447 -182
- package/dist/node/interfaces/collection.d.ts +5 -5
- package/dist/node/interfaces/events.d.ts +306 -16
- package/dist/node/interfaces/events.js +42 -4
- package/dist/node/interfaces/events.js.map +1 -1
- package/dist/node/interfaces/ownable.d.ts +7 -7
- package/dist/node/interfaces/ownable.js.map +1 -1
- package/dist/node/interfaces/pausable.d.ts +3 -3
- package/dist/node/interfaces/pausable.js.map +1 -1
- package/dist/node/interfaces/types.d.ts +182 -27
- package/dist/node/interfaces/types.js +120 -71
- package/dist/node/interfaces/types.js.map +1 -1
- package/dist/node/marketplace/auction.d.ts +2 -2
- package/dist/node/marketplace/auction.js +4 -4
- package/dist/node/marketplace/auction.js.map +1 -1
- package/dist/node/marketplace/bid.js +3 -5
- package/dist/node/marketplace/bid.js.map +1 -1
- package/dist/node/marketplace/nft-shares.d.ts +2 -2
- package/dist/node/util/div.js +10 -5
- package/dist/node/util/div.js.map +1 -1
- package/dist/node/vk.js +6 -6
- package/dist/node/vk.js.map +1 -1
- package/dist/node/zkprogram-example/game.d.ts +2 -2
- package/dist/node/zkprogram-example/update.d.ts +2 -2
- package/dist/tsconfig.node.tsbuildinfo +1 -1
- package/dist/tsconfig.web.tsbuildinfo +1 -1
- package/dist/web/contracts/admin.d.ts +100 -10
- package/dist/web/contracts/admin.js +130 -29
- package/dist/web/contracts/admin.js.map +1 -1
- package/dist/web/contracts/collection.d.ts +51 -34
- package/dist/web/contracts/collection.js +162 -71
- package/dist/web/contracts/collection.js.map +1 -1
- package/dist/web/contracts/nft.js +3 -0
- package/dist/web/contracts/nft.js.map +1 -1
- package/dist/web/contracts.d.ts +36 -30
- package/dist/web/interfaces/collection.d.ts +5 -5
- package/dist/web/interfaces/events.d.ts +306 -16
- package/dist/web/interfaces/events.js +42 -4
- package/dist/web/interfaces/events.js.map +1 -1
- package/dist/web/interfaces/ownable.d.ts +7 -7
- package/dist/web/interfaces/ownable.js.map +1 -1
- package/dist/web/interfaces/pausable.d.ts +3 -3
- package/dist/web/interfaces/pausable.js.map +1 -1
- package/dist/web/interfaces/types.d.ts +182 -27
- package/dist/web/interfaces/types.js +120 -71
- package/dist/web/interfaces/types.js.map +1 -1
- package/dist/web/marketplace/auction.d.ts +2 -2
- package/dist/web/marketplace/auction.js +4 -4
- package/dist/web/marketplace/auction.js.map +1 -1
- package/dist/web/marketplace/bid.js +3 -5
- package/dist/web/marketplace/bid.js.map +1 -1
- package/dist/web/marketplace/nft-shares.d.ts +2 -2
- package/dist/web/util/div.js +10 -5
- package/dist/web/util/div.js.map +1 -1
- package/dist/web/vk.js +6 -6
- package/dist/web/vk.js.map +1 -1
- package/dist/web/zkprogram-example/game.d.ts +2 -2
- package/dist/web/zkprogram-example/update.d.ts +2 -2
- package/package.json +8 -8
- package/src/contracts/admin.ts +137 -24
- package/src/contracts/collection.ts +188 -96
- package/src/contracts/nft.ts +3 -0
- package/src/interfaces/collection.ts +11 -5
- package/src/interfaces/events.ts +47 -3
- package/src/interfaces/ownable.ts +1 -1
- package/src/interfaces/pausable.ts +1 -1
- package/src/interfaces/types.ts +152 -78
- package/src/marketplace/auction.ts +5 -4
- package/src/marketplace/bid.ts +4 -6
- package/src/util/div.ts +12 -5
- package/src/vk.ts +6 -6
package/dist/web/util/div.js.map
CHANGED
|
@@ -1 +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,
|
|
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,yHAAyH;IACzH,6EAA6E;IAC7E,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE5D,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,8CAA8C;IAErF,oEAAoE;IACpE,MAAM,CAAC,KAAK;SACT,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;SACpB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,8CAA8C;IAClG,OAAO;QACL,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC"}
|
package/dist/web/vk.js
CHANGED
|
@@ -22,21 +22,21 @@
|
|
|
22
22
|
*/
|
|
23
23
|
export const nftVerificationKeys = {
|
|
24
24
|
devnet: {
|
|
25
|
-
o1js: "2.
|
|
25
|
+
o1js: "2.3.0",
|
|
26
26
|
vk: {
|
|
27
27
|
NFT: {
|
|
28
|
-
hash: "
|
|
29
|
-
data: "AADUTaZ5kJK+C2TL7P/tc4MlgEq5zWOLFDtgDU/u9ry3Es1Ek79TcLqIWg8s6TJJcXzM0D/6xz1y8FQn2tGjjcspfNtNRAmG3FdldAatVpnkTwS6Otpm88gl7lOPX8bRJjhHfEtdvEsQ0OudcDzB5iCqu268zqkBvXrXT3xaNN+sIIqLTtxltMz4RS/2layxzL6mg1J+kkTsNIJsg6MufeMI6Xn5pAYOaWFqgo0N0WZsnF3EYcYq1LcDucyyFS2RqRninioewrlEDzjY8y6rmf9+GibQasJCE+mkbfB4wCOuFMiSrRIN/73BODz9siBxs/bU/p7xffJsOL8JvitK7ngRyG3PfGGdW22njv9MYxNhb/YhKnPA0qPTOQjxg1a/Pg8NyjB9RM7eypPJNLFaWFzNM4JRxjI7wGVVOfE0D7DUAL32SzQ1Jmr4mILqDhnDREu2ETq0Lb+c1cxPgb4x1nYbWcSgdAOtKJBvXHkWs7JlJdL1q9yiRrzYb1kPMPNGACnSB3N3Omm//FhxitOOM4yucxZyKpKst/otZu51/gGBDW5tIwKYpfl5ETSNvDFY+9rLUHv+LxSz+
|
|
28
|
+
hash: "9783798445384315170525620826037823720996093317060506623212107011216804106668",
|
|
29
|
+
data: "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",
|
|
30
30
|
type: "nft",
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
34
|
mainnet: {
|
|
35
|
-
o1js: "2.
|
|
35
|
+
o1js: "2.3.0",
|
|
36
36
|
vk: {
|
|
37
37
|
NFT: {
|
|
38
|
-
hash: "
|
|
39
|
-
data: "AADUTaZ5kJK+C2TL7P/tc4MlgEq5zWOLFDtgDU/u9ry3Es1Ek79TcLqIWg8s6TJJcXzM0D/6xz1y8FQn2tGjjcspfNtNRAmG3FdldAatVpnkTwS6Otpm88gl7lOPX8bRJjhHfEtdvEsQ0OudcDzB5iCqu268zqkBvXrXT3xaNN+sIIqLTtxltMz4RS/2layxzL6mg1J+kkTsNIJsg6MufeMI6Xn5pAYOaWFqgo0N0WZsnF3EYcYq1LcDucyyFS2RqRninioewrlEDzjY8y6rmf9+GibQasJCE+mkbfB4wCOuFMiSrRIN/73BODz9siBxs/bU/p7xffJsOL8JvitK7ngRyG3PfGGdW22njv9MYxNhb/YhKnPA0qPTOQjxg1a/Pg8NyjB9RM7eypPJNLFaWFzNM4JRxjI7wGVVOfE0D7DUAL32SzQ1Jmr4mILqDhnDREu2ETq0Lb+c1cxPgb4x1nYbWcSgdAOtKJBvXHkWs7JlJdL1q9yiRrzYb1kPMPNGACnSB3N3Omm//FhxitOOM4yucxZyKpKst/otZu51/gGBDW5tIwKYpfl5ETSNvDFY+9rLUHv+LxSz+
|
|
38
|
+
hash: "22175359608429605539570936386638550990144108869927626059283446793366639887120",
|
|
39
|
+
data: "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",
|
|
40
40
|
type: "nft",
|
|
41
41
|
},
|
|
42
42
|
},
|
package/dist/web/vk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vk.js","sourceRoot":"","sources":["../../src/vk.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAW5B;IACF,MAAM,EAAE;QACN,IAAI,EAAE,OAAO;QACb,EAAE,EAAE;YACF,GAAG,EAAE;gBACH,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"vk.js","sourceRoot":"","sources":["../../src/vk.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAW5B;IACF,MAAM,EAAE;QACN,IAAI,EAAE,OAAO;QACb,EAAE,EAAE;YACF,GAAG,EAAE;gBACH,IAAI,EAAE,8EAA8E;gBACpF,IAAI,EAAE,81EAA81E;gBACp2E,IAAI,EAAE,KAAK;aACZ;SACF;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,OAAO;QACb,EAAE,EAAE;YACF,GAAG,EAAE;gBACH,IAAI,EAAE,+EAA+E;gBACrF,IAAI,EAAE,81EAA81E;gBACp2E,IAAI,EAAE,KAAK;aACZ;SACF;KACF;CACF,CAAC"}
|
|
@@ -129,7 +129,7 @@ declare const NFTGameProgram: {
|
|
|
129
129
|
storage: Storage | {
|
|
130
130
|
url: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
|
|
131
131
|
};
|
|
132
|
-
version: number | bigint | import("o1js").
|
|
132
|
+
version: number | bigint | import("o1js").UInt64;
|
|
133
133
|
isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
|
|
134
134
|
metadataVerificationKeyHash: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
|
|
135
135
|
creator: PublicKey | {
|
|
@@ -197,7 +197,7 @@ declare const NFTGameProgram: {
|
|
|
197
197
|
storage: Storage | {
|
|
198
198
|
url: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
|
|
199
199
|
};
|
|
200
|
-
version: number | bigint | import("o1js").
|
|
200
|
+
version: number | bigint | import("o1js").UInt64;
|
|
201
201
|
isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
|
|
202
202
|
metadataVerificationKeyHash: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
|
|
203
203
|
creator: PublicKey | {
|
|
@@ -129,7 +129,7 @@ declare const NFTProgram: {
|
|
|
129
129
|
storage: import("@silvana-one/storage").Storage | {
|
|
130
130
|
url: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
|
|
131
131
|
};
|
|
132
|
-
version: number | bigint | import("o1js").
|
|
132
|
+
version: number | bigint | import("o1js").UInt64;
|
|
133
133
|
isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
|
|
134
134
|
metadataVerificationKeyHash: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
|
|
135
135
|
creator: import("o1js").PublicKey | {
|
|
@@ -192,7 +192,7 @@ declare const NFTProgram: {
|
|
|
192
192
|
storage: import("@silvana-one/storage").Storage | {
|
|
193
193
|
url: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[] | bigint[];
|
|
194
194
|
};
|
|
195
|
-
version: number | bigint | import("o1js").
|
|
195
|
+
version: number | bigint | import("o1js").UInt64;
|
|
196
196
|
isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
|
|
197
197
|
metadataVerificationKeyHash: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
|
|
198
198
|
creator: import("o1js").PublicKey | {
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silvana-one/nft",
|
|
3
3
|
"description": "Mina NFT library",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"author": "DFST",
|
|
6
6
|
"bugs": "https://github.com/SilvanaOne/silvana-lib/issues",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"tslib": "^2.8.1"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
|
-
"@silvana-one/mina-utils": "0.
|
|
12
|
-
"@silvana-one/storage": "0.
|
|
13
|
-
"@silvana-one/token": "0.
|
|
14
|
-
"@silvana-one/upgradable": "0.
|
|
11
|
+
"@silvana-one/mina-utils": "1.0.0",
|
|
12
|
+
"@silvana-one/storage": "1.0.0",
|
|
13
|
+
"@silvana-one/token": "1.0.0",
|
|
14
|
+
"@silvana-one/upgradable": "1.0.0",
|
|
15
15
|
"@types/node": "^22.13.8",
|
|
16
16
|
"c8": "^10.1.3",
|
|
17
17
|
"dotenv": "^16.4.7",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"license": "Apache-2.0",
|
|
51
51
|
"main": "dist/web/index.js",
|
|
52
52
|
"peerDependencies": {
|
|
53
|
-
"@silvana-one/storage": "0.
|
|
54
|
-
"@silvana-one/token": "0.
|
|
55
|
-
"@silvana-one/upgradable": "0.
|
|
53
|
+
"@silvana-one/storage": "1.0.0",
|
|
54
|
+
"@silvana-one/token": "1.0.0",
|
|
55
|
+
"@silvana-one/upgradable": "1.0.0",
|
|
56
56
|
"o1js": "^2.3.0"
|
|
57
57
|
},
|
|
58
58
|
"publishConfig": {
|
package/src/contracts/admin.ts
CHANGED
|
@@ -12,6 +12,9 @@ import {
|
|
|
12
12
|
Field,
|
|
13
13
|
AccountUpdate,
|
|
14
14
|
UInt32,
|
|
15
|
+
UInt8,
|
|
16
|
+
Struct,
|
|
17
|
+
assert,
|
|
15
18
|
} from "o1js";
|
|
16
19
|
import {
|
|
17
20
|
MintRequest,
|
|
@@ -24,7 +27,7 @@ import {
|
|
|
24
27
|
OwnableContract,
|
|
25
28
|
TransferEvent,
|
|
26
29
|
} from "../interfaces/index.js";
|
|
27
|
-
export { NFTAdmin, NFTAdminDeployProps };
|
|
30
|
+
export { NFTAdmin, NFTAdminDeployProps, NFTAdminAllowFlags };
|
|
28
31
|
|
|
29
32
|
interface NFTAdminDeployProps extends Exclude<DeployArgs, undefined> {
|
|
30
33
|
admin: PublicKey;
|
|
@@ -32,9 +35,52 @@ interface NFTAdminDeployProps extends Exclude<DeployArgs, undefined> {
|
|
|
32
35
|
canBePaused?: Bool;
|
|
33
36
|
allowChangeRoyalty?: Bool;
|
|
34
37
|
allowChangeTransferFee?: Bool;
|
|
38
|
+
allowPauseCollection?: Bool;
|
|
35
39
|
isPaused?: Bool;
|
|
36
40
|
}
|
|
37
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Contains flags for the admin contract related to the NFT collection permissions.
|
|
44
|
+
*/
|
|
45
|
+
class NFTAdminAllowFlags extends Struct({
|
|
46
|
+
allowChangeRoyalty: Bool,
|
|
47
|
+
allowChangeTransferFee: Bool,
|
|
48
|
+
allowPauseCollection: Bool,
|
|
49
|
+
}) {
|
|
50
|
+
/**
|
|
51
|
+
* Packs the NFTAdminAllowFlags into a UInt8 representation for efficient storage.
|
|
52
|
+
* @returns The packed UInt8 instance.
|
|
53
|
+
*/
|
|
54
|
+
pack(): UInt8 {
|
|
55
|
+
return UInt8.from(
|
|
56
|
+
Field.fromBits([
|
|
57
|
+
this.allowChangeRoyalty,
|
|
58
|
+
this.allowChangeTransferFee,
|
|
59
|
+
this.allowPauseCollection,
|
|
60
|
+
])
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Unpacks a UInt8 instance into a NFTAdminAllowFlags instance.
|
|
66
|
+
* @param packed The packed UInt8 instance.
|
|
67
|
+
* @returns A new NFTAdminAllowFlags instance.
|
|
68
|
+
*/
|
|
69
|
+
static unpack(packed: UInt8): NFTAdminAllowFlags {
|
|
70
|
+
const bits = packed.value.toBits(3);
|
|
71
|
+
|
|
72
|
+
const allowChangeRoyalty = bits[0];
|
|
73
|
+
const allowChangeTransferFee = bits[1];
|
|
74
|
+
const allowPauseCollection = bits[2];
|
|
75
|
+
|
|
76
|
+
return new NFTAdminAllowFlags({
|
|
77
|
+
allowChangeRoyalty,
|
|
78
|
+
allowChangeTransferFee,
|
|
79
|
+
allowPauseCollection,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
38
84
|
/**
|
|
39
85
|
* The **NFTAdmin** contract serves as the foundational administrative layer for NFT collections on the Mina Protocol.
|
|
40
86
|
* It provides essential functionalities such as contract upgrades, pausing and resuming operations, and ownership management.
|
|
@@ -51,6 +97,11 @@ class NFTAdmin
|
|
|
51
97
|
*/
|
|
52
98
|
@state(PublicKey) admin = State<PublicKey>();
|
|
53
99
|
|
|
100
|
+
/**
|
|
101
|
+
* The public key of the contract's pending administrator.
|
|
102
|
+
*/
|
|
103
|
+
@state(PublicKey) pendingAdmin = State<PublicKey>();
|
|
104
|
+
|
|
54
105
|
/**
|
|
55
106
|
* A boolean flag indicating whether the contract is currently paused.
|
|
56
107
|
* When `true`, certain operations are disabled.
|
|
@@ -64,14 +115,9 @@ class NFTAdmin
|
|
|
64
115
|
@state(Bool) canBePaused = State<Bool>();
|
|
65
116
|
|
|
66
117
|
/**
|
|
67
|
-
* A boolean
|
|
118
|
+
* A boolean flags indicating whether the collection is allowed to change the royalty fee, transfer fee and pause the collection.
|
|
68
119
|
*/
|
|
69
|
-
@state(
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* A boolean flag indicating whether the contract has the ability to change the transfer fee.
|
|
73
|
-
*/
|
|
74
|
-
@state(Bool) allowChangeTransferFee = State<Bool>();
|
|
120
|
+
@state(UInt8) flags = State<UInt8>();
|
|
75
121
|
|
|
76
122
|
/**
|
|
77
123
|
* Deploys the contract with initial settings.
|
|
@@ -79,12 +125,22 @@ class NFTAdmin
|
|
|
79
125
|
*/
|
|
80
126
|
async deploy(props: NFTAdminDeployProps) {
|
|
81
127
|
await super.deploy(props);
|
|
128
|
+
const isPaused = props.isPaused ?? Bool(false);
|
|
129
|
+
const canBePaused = props.canBePaused ?? Bool(true);
|
|
130
|
+
assert(
|
|
131
|
+
isPaused.equals(Bool(false)).or(canBePaused.equals(Bool(true))),
|
|
132
|
+
"Cannot deploy paused contract that cannot be resumed"
|
|
133
|
+
);
|
|
82
134
|
this.admin.set(props.admin);
|
|
83
|
-
this.
|
|
84
|
-
this.
|
|
85
|
-
this.
|
|
86
|
-
this.
|
|
87
|
-
|
|
135
|
+
this.pendingAdmin.set(PublicKey.empty());
|
|
136
|
+
this.isPaused.set(isPaused);
|
|
137
|
+
this.canBePaused.set(canBePaused);
|
|
138
|
+
this.flags.set(
|
|
139
|
+
new NFTAdminAllowFlags({
|
|
140
|
+
allowChangeRoyalty: props.allowChangeRoyalty ?? Bool(false),
|
|
141
|
+
allowChangeTransferFee: props.allowChangeTransferFee ?? Bool(false),
|
|
142
|
+
allowPauseCollection: props.allowPauseCollection ?? Bool(true),
|
|
143
|
+
}).pack()
|
|
88
144
|
);
|
|
89
145
|
this.account.zkappUri.set(props.uri);
|
|
90
146
|
this.account.permissions.set({
|
|
@@ -96,8 +152,8 @@ class NFTAdmin
|
|
|
96
152
|
setPermissions: Permissions.impossible(),
|
|
97
153
|
access: Permissions.proof(),
|
|
98
154
|
send: Permissions.proof(),
|
|
99
|
-
setZkappUri: Permissions.
|
|
100
|
-
setTokenSymbol: Permissions.
|
|
155
|
+
setZkappUri: Permissions.proof(),
|
|
156
|
+
setTokenSymbol: Permissions.proof(),
|
|
101
157
|
});
|
|
102
158
|
}
|
|
103
159
|
|
|
@@ -112,7 +168,9 @@ class NFTAdmin
|
|
|
112
168
|
/** Emitted when the contract is resumed. */
|
|
113
169
|
resume: PauseEvent,
|
|
114
170
|
/** Emitted when ownership of the contract changes. */
|
|
115
|
-
|
|
171
|
+
ownershipTransfer: OwnershipChangeEvent,
|
|
172
|
+
/** Emitted when ownership of the contract is accepted. */
|
|
173
|
+
ownershipAccepted: OwnershipChangeEvent,
|
|
116
174
|
};
|
|
117
175
|
|
|
118
176
|
/**
|
|
@@ -149,6 +207,8 @@ class NFTAdmin
|
|
|
149
207
|
*/
|
|
150
208
|
@method.returns(MintParamsOption)
|
|
151
209
|
async canMint(mintRequest: MintRequest): Promise<MintParamsOption> {
|
|
210
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
211
|
+
isPaused.assertFalse("Contract is paused");
|
|
152
212
|
// Only the creator can mint by default
|
|
153
213
|
return MintParamsOption.none();
|
|
154
214
|
}
|
|
@@ -162,6 +222,8 @@ class NFTAdmin
|
|
|
162
222
|
*/
|
|
163
223
|
@method.returns(Bool)
|
|
164
224
|
async canUpdate(input: NFTState, output: NFTState): Promise<Bool> {
|
|
225
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
226
|
+
isPaused.assertFalse("Contract is paused");
|
|
165
227
|
return Bool(true);
|
|
166
228
|
}
|
|
167
229
|
|
|
@@ -172,6 +234,8 @@ class NFTAdmin
|
|
|
172
234
|
*/
|
|
173
235
|
@method.returns(Bool)
|
|
174
236
|
async canTransfer(transferEvent: TransferEvent): Promise<Bool> {
|
|
237
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
238
|
+
isPaused.assertFalse("Contract is paused");
|
|
175
239
|
return Bool(true);
|
|
176
240
|
}
|
|
177
241
|
|
|
@@ -202,17 +266,18 @@ class NFTAdmin
|
|
|
202
266
|
/**
|
|
203
267
|
* Transfers ownership of the contract to a new admin.
|
|
204
268
|
* @param to - The public key of the new owner.
|
|
205
|
-
* @returns The public key of the previous
|
|
269
|
+
* @returns The public key of the previous admin.
|
|
206
270
|
*/
|
|
207
271
|
@method.returns(PublicKey)
|
|
208
272
|
async transferOwnership(to: PublicKey): Promise<PublicKey> {
|
|
209
273
|
const isPaused = this.isPaused.getAndRequireEquals();
|
|
210
|
-
isPaused.
|
|
274
|
+
isPaused.assertFalse("Contract is paused");
|
|
211
275
|
await this.ensureOwnerSignature();
|
|
212
276
|
const from = this.admin.getAndRequireEquals();
|
|
213
|
-
|
|
277
|
+
// Pending admin public key can be empty, it cancels the transfer
|
|
278
|
+
this.pendingAdmin.set(to);
|
|
214
279
|
this.emitEvent(
|
|
215
|
-
"
|
|
280
|
+
"ownershipTransfer",
|
|
216
281
|
new OwnershipChangeEvent({
|
|
217
282
|
from,
|
|
218
283
|
to,
|
|
@@ -221,6 +286,34 @@ class NFTAdmin
|
|
|
221
286
|
return from;
|
|
222
287
|
}
|
|
223
288
|
|
|
289
|
+
/**
|
|
290
|
+
* Accept transfer of the ownership of the contract.
|
|
291
|
+
* @returns The public key of the previous admin.
|
|
292
|
+
*/
|
|
293
|
+
@method.returns(PublicKey)
|
|
294
|
+
async acceptOwnership(): Promise<PublicKey> {
|
|
295
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
296
|
+
isPaused.assertFalse("Contract is paused");
|
|
297
|
+
const admin = this.admin.getAndRequireEquals();
|
|
298
|
+
const pendingAdmin = this.pendingAdmin.getAndRequireEquals();
|
|
299
|
+
pendingAdmin
|
|
300
|
+
.equals(PublicKey.empty())
|
|
301
|
+
.assertFalse("Pending admin is not set");
|
|
302
|
+
// pendingAdmin can be different from the sender, but it should sign the tx
|
|
303
|
+
const pendingAminUpdate = AccountUpdate.createSigned(pendingAdmin);
|
|
304
|
+
pendingAminUpdate.body.useFullCommitment = Bool(true); // Prevent memo and fee change
|
|
305
|
+
this.admin.set(pendingAdmin);
|
|
306
|
+
this.pendingAdmin.set(PublicKey.empty());
|
|
307
|
+
this.emitEvent(
|
|
308
|
+
"ownershipAccepted",
|
|
309
|
+
new OwnershipChangeEvent({
|
|
310
|
+
from: admin,
|
|
311
|
+
to: pendingAdmin,
|
|
312
|
+
})
|
|
313
|
+
);
|
|
314
|
+
return admin;
|
|
315
|
+
}
|
|
316
|
+
|
|
224
317
|
@method.returns(Bool)
|
|
225
318
|
async canChangeVerificationKey(
|
|
226
319
|
vk: VerificationKey,
|
|
@@ -236,6 +329,8 @@ class NFTAdmin
|
|
|
236
329
|
*/
|
|
237
330
|
@method.returns(Bool)
|
|
238
331
|
async canChangeName(name: Field): Promise<Bool> {
|
|
332
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
333
|
+
isPaused.assertFalse("Contract is paused");
|
|
239
334
|
return Bool(false);
|
|
240
335
|
}
|
|
241
336
|
|
|
@@ -244,6 +339,8 @@ class NFTAdmin
|
|
|
244
339
|
*/
|
|
245
340
|
@method.returns(Bool)
|
|
246
341
|
async canChangeCreator(creator: PublicKey): Promise<Bool> {
|
|
342
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
343
|
+
isPaused.assertFalse("Contract is paused");
|
|
247
344
|
return Bool(false);
|
|
248
345
|
}
|
|
249
346
|
|
|
@@ -252,6 +349,8 @@ class NFTAdmin
|
|
|
252
349
|
*/
|
|
253
350
|
@method.returns(Bool)
|
|
254
351
|
async canChangeBaseUri(baseUri: Field): Promise<Bool> {
|
|
352
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
353
|
+
isPaused.assertFalse("Contract is paused");
|
|
255
354
|
return Bool(false);
|
|
256
355
|
}
|
|
257
356
|
|
|
@@ -260,8 +359,11 @@ class NFTAdmin
|
|
|
260
359
|
*/
|
|
261
360
|
@method.returns(Bool)
|
|
262
361
|
async canChangeRoyalty(royaltyFee: UInt32): Promise<Bool> {
|
|
362
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
363
|
+
isPaused.assertFalse("Contract is paused");
|
|
263
364
|
await this.ensureOwnerSignature();
|
|
264
|
-
|
|
365
|
+
const flags = NFTAdminAllowFlags.unpack(this.flags.getAndRequireEquals());
|
|
366
|
+
return flags.allowChangeRoyalty;
|
|
265
367
|
}
|
|
266
368
|
|
|
267
369
|
/**
|
|
@@ -269,8 +371,11 @@ class NFTAdmin
|
|
|
269
371
|
*/
|
|
270
372
|
@method.returns(Bool)
|
|
271
373
|
async canChangeTransferFee(transferFee: UInt64): Promise<Bool> {
|
|
374
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
375
|
+
isPaused.assertFalse("Contract is paused");
|
|
272
376
|
await this.ensureOwnerSignature();
|
|
273
|
-
|
|
377
|
+
const flags = NFTAdminAllowFlags.unpack(this.flags.getAndRequireEquals());
|
|
378
|
+
return flags.allowChangeTransferFee;
|
|
274
379
|
}
|
|
275
380
|
|
|
276
381
|
/**
|
|
@@ -278,6 +383,8 @@ class NFTAdmin
|
|
|
278
383
|
*/
|
|
279
384
|
@method.returns(Bool)
|
|
280
385
|
async canSetAdmin(admin: PublicKey): Promise<Bool> {
|
|
386
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
387
|
+
isPaused.assertFalse("Contract is paused");
|
|
281
388
|
return Bool(false);
|
|
282
389
|
}
|
|
283
390
|
|
|
@@ -286,8 +393,11 @@ class NFTAdmin
|
|
|
286
393
|
*/
|
|
287
394
|
@method.returns(Bool)
|
|
288
395
|
async canPause(): Promise<Bool> {
|
|
396
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
397
|
+
isPaused.assertFalse("Contract is paused");
|
|
289
398
|
await this.ensureOwnerSignature();
|
|
290
|
-
|
|
399
|
+
const flags = NFTAdminAllowFlags.unpack(this.flags.getAndRequireEquals());
|
|
400
|
+
return flags.allowPauseCollection;
|
|
291
401
|
}
|
|
292
402
|
|
|
293
403
|
/**
|
|
@@ -295,7 +405,10 @@ class NFTAdmin
|
|
|
295
405
|
*/
|
|
296
406
|
@method.returns(Bool)
|
|
297
407
|
async canResume(): Promise<Bool> {
|
|
408
|
+
const isPaused = this.isPaused.getAndRequireEquals();
|
|
409
|
+
isPaused.assertFalse("Contract is paused");
|
|
298
410
|
await this.ensureOwnerSignature();
|
|
299
|
-
|
|
411
|
+
const flags = NFTAdminAllowFlags.unpack(this.flags.getAndRequireEquals());
|
|
412
|
+
return flags.allowPauseCollection;
|
|
300
413
|
}
|
|
301
414
|
}
|