zkcloudworker 0.15.0 → 0.15.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,227 @@
1
+ import { Field, PublicKey, Bool, VerificationKey, Struct, UInt32, UInt64, Encoding, Provable, DynamicProof, FeatureFlags, } from "o1js";
2
+ export { Storage, MintParams, MintSignatureData, NFTData, CollectionData, NFTState, NFTImmutableState, NFTUpdateProof, };
3
+ class Storage extends Struct({
4
+ url: Provable.Array(Field, 2),
5
+ }) {
6
+ constructor(value) {
7
+ super(value);
8
+ }
9
+ static assertEquals(a, b) {
10
+ a.url[0].assertEquals(b.url[0]);
11
+ a.url[1].assertEquals(b.url[1]);
12
+ }
13
+ static equals(a, b) {
14
+ return a.url[0].equals(b.url[0]).and(a.url[1].equals(b.url[1]));
15
+ }
16
+ static fromURL(url) {
17
+ const fields = Encoding.stringToFields(url);
18
+ if (fields.length !== 2)
19
+ throw new Error("Invalid URL");
20
+ return new Storage({ url: [fields[0], fields[1]] });
21
+ }
22
+ toURL() {
23
+ return Encoding.stringFromFields(this.url);
24
+ }
25
+ }
26
+ class NFTImmutableState extends Struct({
27
+ creator: PublicKey, // readonly
28
+ canChangeOwner: Bool, // readonly
29
+ canChangeMetadata: Bool, // readonly
30
+ canChangePrice: Bool, // readonly
31
+ canChangeStorage: Bool, // readonly
32
+ canChangeName: Bool, // readonly
33
+ canChangeMetadataVerificationKeyHash: Bool, // readonly
34
+ canPause: Bool, // readonly
35
+ address: PublicKey, // readonly
36
+ tokenId: Field, // readonly
37
+ }) {
38
+ static assertEqual(a, b) {
39
+ a.creator.assertEquals(b.creator);
40
+ a.canChangeOwner.assertEquals(b.canChangeOwner);
41
+ a.canChangeMetadata.assertEquals(b.canChangeMetadata);
42
+ a.canChangePrice.assertEquals(b.canChangePrice);
43
+ a.canChangeStorage.assertEquals(b.canChangeStorage);
44
+ a.canChangeName.assertEquals(b.canChangeName);
45
+ a.canChangeMetadataVerificationKeyHash.assertEquals(b.canChangeMetadataVerificationKeyHash);
46
+ a.canPause.assertEquals(b.canPause);
47
+ a.address.assertEquals(b.address);
48
+ a.tokenId.assertEquals(b.tokenId);
49
+ }
50
+ }
51
+ class NFTState extends Struct({
52
+ immutableState: NFTImmutableState,
53
+ name: Field,
54
+ metadata: Field,
55
+ storage: Storage,
56
+ owner: PublicKey,
57
+ price: UInt64,
58
+ version: UInt32,
59
+ isPaused: Bool,
60
+ }) {
61
+ static assertEqual(a, b) {
62
+ NFTImmutableState.assertEqual(a.immutableState, b.immutableState);
63
+ a.name.assertEquals(b.name);
64
+ a.metadata.assertEquals(b.metadata);
65
+ Storage.assertEquals(a.storage, b.storage);
66
+ a.owner.assertEquals(b.owner);
67
+ a.price.assertEquals(b.price);
68
+ a.version.assertEquals(b.version);
69
+ a.isPaused.assertEquals(b.isPaused);
70
+ }
71
+ }
72
+ class NFTUpdateProof extends DynamicProof {
73
+ }
74
+ NFTUpdateProof.publicInputType = NFTState;
75
+ NFTUpdateProof.publicOutputType = NFTState;
76
+ NFTUpdateProof.maxProofsVerified = 2;
77
+ NFTUpdateProof.featureFlags = FeatureFlags.allMaybe;
78
+ class NFTData extends Struct({
79
+ price: UInt64,
80
+ version: UInt32,
81
+ canChangeOwner: Bool, // readonly
82
+ canChangeMetadata: Bool, // readonly
83
+ canChangePrice: Bool, // readonly
84
+ canChangeStorage: Bool, // readonly
85
+ canChangeName: Bool, // readonly
86
+ canChangeMetadataVerificationKeyHash: Bool, // readonly
87
+ canPause: Bool, // readonly
88
+ isPaused: Bool,
89
+ // what else?
90
+ }) {
91
+ new(params = {}) {
92
+ const { price, version, canChangeOwner, canChangeMetadata, canChangePrice, canChangeStorage, canChangeName, canChangeMetadataVerificationKeyHash, canPause, isPaused, } = params;
93
+ return new NFTData({
94
+ price: UInt64.from(price ?? 0),
95
+ version: UInt32.from(version ?? 0),
96
+ canChangeOwner: Bool(canChangeOwner ?? true),
97
+ canChangeMetadata: Bool(canChangeMetadata ?? false),
98
+ canChangePrice: Bool(canChangePrice ?? true),
99
+ canChangeStorage: Bool(canChangeStorage ?? false),
100
+ canChangeName: Bool(canChangeName ?? false),
101
+ canChangeMetadataVerificationKeyHash: Bool(canChangeMetadataVerificationKeyHash ?? false),
102
+ canPause: Bool(canPause ?? false),
103
+ isPaused: Bool(isPaused ?? false),
104
+ });
105
+ }
106
+ pack() {
107
+ const price = this.price.value.toBits(64);
108
+ const version = this.version.value.toBits(32);
109
+ return Field.fromBits([
110
+ ...price,
111
+ ...version,
112
+ this.canChangeOwner,
113
+ this.canChangeMetadata,
114
+ this.canChangePrice,
115
+ this.canChangeStorage,
116
+ this.canChangeName,
117
+ this.canChangeMetadataVerificationKeyHash,
118
+ this.canPause,
119
+ this.isPaused,
120
+ ]);
121
+ }
122
+ static unpack(packed) {
123
+ const bits = packed.toBits(64 + 32 + 8);
124
+ const price = UInt64.Unsafe.fromField(Field.fromBits(bits.slice(0, 64)));
125
+ const version = UInt32.Unsafe.fromField(Field.fromBits(bits.slice(64, 64 + 32)));
126
+ const canChangeOwner = bits[64 + 32];
127
+ const canChangeMetadata = bits[64 + 32 + 1];
128
+ const canChangePrice = bits[64 + 32 + 2];
129
+ const canChangeStorage = bits[64 + 32 + 3];
130
+ const canChangeName = bits[64 + 32 + 4];
131
+ const canChangeMetadataVerificationKeyHash = bits[64 + 32 + 5];
132
+ const canPause = bits[64 + 32 + 6];
133
+ const isPaused = bits[64 + 32 + 7];
134
+ return new NFTData({
135
+ price,
136
+ version,
137
+ canChangeOwner,
138
+ canChangeMetadata,
139
+ canChangePrice,
140
+ canChangeStorage,
141
+ canChangeName,
142
+ canChangeMetadataVerificationKeyHash,
143
+ canPause,
144
+ isPaused,
145
+ });
146
+ }
147
+ }
148
+ class CollectionData extends Struct({
149
+ requireTransferApproval: Bool,
150
+ requireUpdateApproval: Bool,
151
+ requireSaleApproval: Bool,
152
+ requireBuyApproval: Bool,
153
+ requireMintApproval: Bool,
154
+ canMint: Bool,
155
+ canPause: Bool,
156
+ canResume: Bool,
157
+ canChangeName: Bool,
158
+ canChangeCreator: Bool,
159
+ canChangeBaseUri: Bool,
160
+ canChangeSaleCommission: Bool,
161
+ isPaused: Bool,
162
+ }) {
163
+ pack() {
164
+ return Field.fromBits([
165
+ this.requireTransferApproval,
166
+ this.requireUpdateApproval,
167
+ this.requireSaleApproval,
168
+ this.requireMintApproval,
169
+ this.requireBuyApproval,
170
+ this.canMint,
171
+ this.canChangeName,
172
+ this.canChangeCreator,
173
+ this.canChangeBaseUri,
174
+ this.canChangeSaleCommission,
175
+ this.canPause,
176
+ this.canResume,
177
+ this.isPaused,
178
+ ]);
179
+ }
180
+ static unpack(packed) {
181
+ const bits = packed.toBits(13);
182
+ return new CollectionData({
183
+ requireTransferApproval: bits[0],
184
+ requireUpdateApproval: bits[1],
185
+ requireSaleApproval: bits[2],
186
+ requireMintApproval: bits[3],
187
+ requireBuyApproval: bits[4],
188
+ canMint: bits[5],
189
+ canChangeName: bits[6],
190
+ canChangeCreator: bits[7],
191
+ canChangeBaseUri: bits[8],
192
+ canChangeSaleCommission: bits[9],
193
+ canPause: bits[10],
194
+ canResume: bits[11],
195
+ isPaused: bits[12],
196
+ });
197
+ }
198
+ }
199
+ class MintParams extends Struct({
200
+ name: Field,
201
+ address: PublicKey,
202
+ tokenId: Field,
203
+ owner: PublicKey,
204
+ data: NFTData,
205
+ fee: UInt64,
206
+ metadata: Field,
207
+ storage: Storage,
208
+ metadataVerificationKey: VerificationKey,
209
+ nftVerificationKey: VerificationKey,
210
+ expiry: UInt32,
211
+ }) {
212
+ }
213
+ class MintSignatureData extends Struct({
214
+ name: Field,
215
+ address: PublicKey,
216
+ tokenId: Field,
217
+ owner: PublicKey,
218
+ packedData: Field,
219
+ fee: UInt64,
220
+ metadata: Field,
221
+ storage: Storage,
222
+ metadataVerificationKeyHash: Field,
223
+ nftVerificationKeyHash: Field,
224
+ expiry: UInt32,
225
+ }) {
226
+ }
227
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/mina/nft/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { DeployArgs, PublicKey, SmartContract, State, VerificationKey, UInt64, Field } from "o1js";
2
+ import { MintParams, NFTState, NFTAdminBase, Storage } from "./types";
3
+ export interface NFTWhitelistedAdminDeployProps extends Exclude<DeployArgs, undefined> {
4
+ admin: PublicKey;
5
+ whitelist: Field;
6
+ storage: Storage;
7
+ }
8
+ export declare class NFTWhitelistedAdmin extends SmartContract implements NFTAdminBase {
9
+ admin: State<PublicKey>;
10
+ whitelist: State<import("o1js/dist/node/lib/provable/field").Field>;
11
+ storage: State<Storage>;
12
+ deploy(props: NFTWhitelistedAdminDeployProps): Promise<void>;
13
+ isWhitelisted(address: PublicKey, amount: UInt64): Promise<import("o1js/dist/node/lib/provable/bool").Bool>;
14
+ updateVerificationKey(vk: VerificationKey): Promise<void>;
15
+ canMint(params: MintParams): Promise<import("o1js/dist/node/lib/provable/bool").Bool>;
16
+ canUpdate(input: NFTState, output: NFTState): Promise<import("o1js/dist/node/lib/provable/bool").Bool>;
17
+ canTransfer(address: PublicKey, from: PublicKey, to: PublicKey): Promise<import("o1js/dist/node/lib/provable/bool").Bool>;
18
+ canSell(address: PublicKey, seller: PublicKey, price: UInt64): Promise<import("o1js/dist/node/lib/provable/bool").Bool>;
19
+ canBuy(address: PublicKey, seller: PublicKey, buyer: PublicKey, price: UInt64): Promise<import("o1js/dist/node/lib/provable/bool").Bool>;
20
+ updateMerkleMapRoot(root: Field): Promise<void>;
21
+ }
@@ -0,0 +1,120 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Bool, method, Permissions, Provable, PublicKey, SmartContract, State, state, VerificationKey, UInt64, Field, Poseidon, } from "o1js";
3
+ import { Whitelist, loadWhitelist } from "./whitelist";
4
+ import { MintParams, NFTState, Storage } from "./types";
5
+ export class NFTWhitelistedAdmin extends SmartContract {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.admin = State();
9
+ this.whitelist = State();
10
+ this.storage = State();
11
+ }
12
+ async deploy(props) {
13
+ await super.deploy(props);
14
+ this.admin.set(props.admin);
15
+ this.whitelist.set(props.whitelist);
16
+ this.storage.set(props.storage);
17
+ this.account.permissions.set({
18
+ ...Permissions.default(),
19
+ setVerificationKey: Permissions.VerificationKey.impossibleDuringCurrentVersion(),
20
+ setPermissions: Permissions.impossible(),
21
+ });
22
+ }
23
+ async isWhitelisted(address, amount) {
24
+ const whitelist = this.whitelist.getAndRequireEquals();
25
+ const storage = this.storage.getAndRequireEquals();
26
+ const map = await Provable.witnessAsync(Whitelist, async () => {
27
+ return await loadWhitelist(storage);
28
+ });
29
+ map.root.assertEquals(whitelist);
30
+ const key = Poseidon.hash(address.toFields());
31
+ map.assertIncluded(key, "Address not whitelisted");
32
+ const value = map.get(key);
33
+ value.assertLessThanOrEqual(Field(UInt64.MAXINT().value));
34
+ const maxAmount = UInt64.Unsafe.fromField(value);
35
+ return Bool(amount.lessThanOrEqual(maxAmount));
36
+ }
37
+ async updateVerificationKey(vk) {
38
+ const sender = this.sender.getAndRequireSignature();
39
+ this.admin.getAndRequireEquals().assertEquals(sender);
40
+ this.account.verificationKey.set(vk);
41
+ }
42
+ async canMint(params) {
43
+ return await this.isWhitelisted(params.owner, UInt64.from(0));
44
+ }
45
+ async canUpdate(input, output) {
46
+ return await this.isWhitelisted(output.owner, UInt64.from(0));
47
+ }
48
+ async canTransfer(address, from, to) {
49
+ return await this.isWhitelisted(to, UInt64.from(0));
50
+ }
51
+ async canSell(address, seller, price) {
52
+ return await this.isWhitelisted(address, price);
53
+ }
54
+ async canBuy(address, seller, buyer, price) {
55
+ return (await this.isWhitelisted(buyer, price)).and(await this.isWhitelisted(seller, price));
56
+ }
57
+ async updateMerkleMapRoot(root) {
58
+ const sender = this.sender.getAndRequireSignature();
59
+ this.admin.getAndRequireEquals().assertEquals(sender);
60
+ this.whitelist.set(root);
61
+ }
62
+ }
63
+ __decorate([
64
+ state(PublicKey),
65
+ __metadata("design:type", Object)
66
+ ], NFTWhitelistedAdmin.prototype, "admin", void 0);
67
+ __decorate([
68
+ state(Field),
69
+ __metadata("design:type", Object)
70
+ ], NFTWhitelistedAdmin.prototype, "whitelist", void 0);
71
+ __decorate([
72
+ state(Storage),
73
+ __metadata("design:type", Object)
74
+ ], NFTWhitelistedAdmin.prototype, "storage", void 0);
75
+ __decorate([
76
+ method,
77
+ __metadata("design:type", Function),
78
+ __metadata("design:paramtypes", [VerificationKey]),
79
+ __metadata("design:returntype", Promise)
80
+ ], NFTWhitelistedAdmin.prototype, "updateVerificationKey", null);
81
+ __decorate([
82
+ method.returns(Bool),
83
+ __metadata("design:type", Function),
84
+ __metadata("design:paramtypes", [MintParams]),
85
+ __metadata("design:returntype", Promise)
86
+ ], NFTWhitelistedAdmin.prototype, "canMint", null);
87
+ __decorate([
88
+ method.returns(Bool),
89
+ __metadata("design:type", Function),
90
+ __metadata("design:paramtypes", [NFTState, NFTState]),
91
+ __metadata("design:returntype", Promise)
92
+ ], NFTWhitelistedAdmin.prototype, "canUpdate", null);
93
+ __decorate([
94
+ method.returns(Bool),
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", [PublicKey, PublicKey, PublicKey]),
97
+ __metadata("design:returntype", Promise)
98
+ ], NFTWhitelistedAdmin.prototype, "canTransfer", null);
99
+ __decorate([
100
+ method.returns(Bool),
101
+ __metadata("design:type", Function),
102
+ __metadata("design:paramtypes", [PublicKey, PublicKey, UInt64]),
103
+ __metadata("design:returntype", Promise)
104
+ ], NFTWhitelistedAdmin.prototype, "canSell", null);
105
+ __decorate([
106
+ method.returns(Bool),
107
+ __metadata("design:type", Function),
108
+ __metadata("design:paramtypes", [PublicKey,
109
+ PublicKey,
110
+ PublicKey,
111
+ UInt64]),
112
+ __metadata("design:returntype", Promise)
113
+ ], NFTWhitelistedAdmin.prototype, "canBuy", null);
114
+ __decorate([
115
+ method,
116
+ __metadata("design:type", Function),
117
+ __metadata("design:paramtypes", [Field]),
118
+ __metadata("design:returntype", Promise)
119
+ ], NFTWhitelistedAdmin.prototype, "updateMerkleMapRoot", null);
120
+ //# sourceMappingURL=whitelist-admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whitelist-admin.js","sourceRoot":"","sources":["../../../../../../src/mina/nft/whitelist-admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Storage } from "./types";
2
+ declare const IndexedMerkleMap: typeof import("o1js/dist/node/lib/provable/merkle-tree-indexed").IndexedMerkleMap;
3
+ declare const Whitelist_base: typeof import("o1js/dist/node/lib/provable/merkle-tree-indexed").IndexedMerkleMapBase;
4
+ export declare class Whitelist extends Whitelist_base {
5
+ }
6
+ export declare function loadWhitelist(storage: Storage): Promise<Whitelist>;
7
+ interface IndexedMapSerialized {
8
+ height: number;
9
+ root: string;
10
+ length: string;
11
+ nodes: string;
12
+ sortedLeaves: string;
13
+ }
14
+ export declare function serializeWhitelist(map: Whitelist): string;
15
+ export declare function deserializeWhitelist(params: {
16
+ serializedIndexedMap: string;
17
+ type?: ReturnType<typeof IndexedMerkleMap>;
18
+ }): InstanceType<ReturnType<typeof IndexedMerkleMap>> | undefined;
19
+ export declare function parseIndexedMapSerialized(serializedMap: string): IndexedMapSerialized;
20
+ export {};
@@ -0,0 +1,105 @@
1
+ import { Experimental, Field } from "o1js";
2
+ import { bigintToBase64, bigintFromBase64 } from "../../cloud";
3
+ const { IndexedMerkleMap } = Experimental;
4
+ export class Whitelist extends IndexedMerkleMap(10) {
5
+ }
6
+ export async function loadWhitelist(storage) {
7
+ const url = "https://gateway.pinata.cloud/ipfs/" + storage.toURL();
8
+ const response = await fetch(url);
9
+ if (!response.ok) {
10
+ throw new Error("Failed to fetch whitelist");
11
+ }
12
+ const json = await response.text();
13
+ const map = deserializeWhitelist({
14
+ serializedIndexedMap: json,
15
+ type: Whitelist,
16
+ });
17
+ if (!map) {
18
+ throw new Error("Failed to deserialize whitelist");
19
+ }
20
+ return map;
21
+ }
22
+ export function serializeWhitelist(map) {
23
+ const serializedMap = JSON.stringify({
24
+ height: map.height,
25
+ root: map.root.toJSON(),
26
+ length: map.length.toJSON(),
27
+ nodes: JSON.stringify(map.data.get().nodes, (_, v) => typeof v === "bigint" ? "n" + bigintToBase64(v) : v),
28
+ sortedLeaves: JSON.stringify(map.data
29
+ .get()
30
+ .sortedLeaves.map((v) => [
31
+ bigintToBase64(v.key),
32
+ bigintToBase64(v.nextKey),
33
+ bigintToBase64(v.value),
34
+ bigintToBase64(BigInt(v.index)),
35
+ ])),
36
+ }, null, 2);
37
+ return serializedMap;
38
+ }
39
+ export function deserializeWhitelist(params) {
40
+ try {
41
+ const { serializedIndexedMap, type } = params;
42
+ const json = parseIndexedMapSerialized(serializedIndexedMap);
43
+ return deserializeIndexedMapInternal({
44
+ json,
45
+ type: type ?? IndexedMerkleMap(json.height),
46
+ });
47
+ }
48
+ catch (error) {
49
+ console.error("Error deserializing map:", error?.message ?? error);
50
+ return undefined;
51
+ }
52
+ }
53
+ export function parseIndexedMapSerialized(serializedMap) {
54
+ const json = JSON.parse(serializedMap);
55
+ if (json.height === undefined ||
56
+ json.root === undefined ||
57
+ json.length === undefined ||
58
+ json.nodes === undefined ||
59
+ json.sortedLeaves === undefined)
60
+ throw new Error("wrong IndexedMerkleMap json format");
61
+ if (typeof json.height !== "number")
62
+ throw new Error("wrong IndexedMerkleMap height format");
63
+ if (typeof json.root !== "string")
64
+ throw new Error("wrong IndexedMerkleMap root format");
65
+ if (typeof json.length !== "string")
66
+ throw new Error("wrong IndexedMerkleMap length format");
67
+ if (typeof json.nodes !== "string")
68
+ throw new Error("wrong IndexedMerkleMap nodes format");
69
+ if (typeof json.sortedLeaves !== "string")
70
+ throw new Error("wrong IndexedMerkleMap sortedLeaves format");
71
+ return json;
72
+ }
73
+ function deserializeIndexedMapInternal(params) {
74
+ const { json, type } = params;
75
+ const map = new type();
76
+ if (json.height !== map.height) {
77
+ throw new Error("wrong IndexedMap height");
78
+ }
79
+ const nodes = JSON.parse(json.nodes, (_, v) => {
80
+ // Check if the value is a string that represents a BigInt
81
+ if (typeof v === "string" && v[0] === "n") {
82
+ // Remove the first 'n' and convert the string to a BigInt
83
+ return bigintFromBase64(v.slice(1));
84
+ }
85
+ return v;
86
+ });
87
+ const sortedLeaves = JSON.parse(json.sortedLeaves).map((row) => {
88
+ return {
89
+ key: bigintFromBase64(row[0]),
90
+ nextKey: bigintFromBase64(row[1]),
91
+ value: bigintFromBase64(row[2]),
92
+ index: Number(bigintFromBase64(row[3])),
93
+ };
94
+ });
95
+ map.root = Field.fromJSON(json.root);
96
+ map.length = Field.fromJSON(json.length);
97
+ map.data.updateAsProver(() => {
98
+ return {
99
+ nodes: nodes.map((row) => [...row]),
100
+ sortedLeaves: [...sortedLeaves],
101
+ };
102
+ });
103
+ return map;
104
+ }
105
+ //# sourceMappingURL=whitelist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whitelist.js","sourceRoot":"","sources":["../../../../../../src/mina/nft/whitelist.ts"],"names":[],"mappings":"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"}