zkcloudworker 0.18.9 → 0.18.11

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 (68) hide show
  1. package/dist/ts/index.cjs +418768 -0
  2. package/dist/ts/mina/token/FungibleTokenAdmin.d.ts +1 -6
  3. package/dist/ts/mina/token/FungibleTokenAdmin.js.map +1 -1
  4. package/dist/ts/mina/token/FungibleTokenContract.d.ts +520 -0
  5. package/dist/ts/mina/token/FungibleTokenContract.js +290 -0
  6. package/dist/ts/mina/token/FungibleTokenContract.js.map +1 -0
  7. package/dist/ts/mina/token/FungibleTokenWhitelistedAdmin.d.ts +33 -0
  8. package/dist/ts/mina/token/FungibleTokenWhitelistedAdmin.js +119 -0
  9. package/dist/ts/mina/token/FungibleTokenWhitelistedAdmin.js.map +1 -0
  10. package/dist/ts/mina/token/api.d.ts +1 -1
  11. package/dist/ts/mina/token/bid.d.ts +24 -0
  12. package/dist/ts/mina/token/bid.js +167 -0
  13. package/dist/ts/mina/token/bid.js.map +1 -0
  14. package/dist/ts/mina/token/build.d.ts +64 -0
  15. package/dist/ts/mina/token/build.js +437 -0
  16. package/dist/ts/mina/token/build.js.map +1 -0
  17. package/dist/ts/mina/token/fee.d.ts +2 -0
  18. package/dist/ts/mina/token/fee.js +3 -0
  19. package/dist/ts/mina/token/fee.js.map +1 -0
  20. package/dist/ts/mina/token/index.d.ts +5 -2
  21. package/dist/ts/mina/token/index.js +5 -2
  22. package/dist/ts/mina/token/index.js.map +1 -1
  23. package/dist/ts/mina/token/offer.d.ts +25 -0
  24. package/dist/ts/mina/token/offer.js +175 -0
  25. package/dist/ts/mina/token/offer.js.map +1 -0
  26. package/dist/ts/mina/token/token.d.ts +426 -0
  27. package/dist/ts/mina/token/token.js +87 -0
  28. package/dist/ts/mina/token/token.js.map +1 -0
  29. package/dist/tsconfig.web.tsbuildinfo +1 -1
  30. package/dist/web/mina/token/FungibleTokenAdmin.d.ts +1 -6
  31. package/dist/web/mina/token/FungibleTokenAdmin.js.map +1 -1
  32. package/dist/web/mina/token/FungibleTokenContract.d.ts +520 -0
  33. package/dist/web/mina/token/FungibleTokenContract.js +290 -0
  34. package/dist/web/mina/token/FungibleTokenContract.js.map +1 -0
  35. package/dist/web/mina/token/FungibleTokenWhitelistedAdmin.d.ts +33 -0
  36. package/dist/web/mina/token/FungibleTokenWhitelistedAdmin.js +119 -0
  37. package/dist/web/mina/token/FungibleTokenWhitelistedAdmin.js.map +1 -0
  38. package/dist/web/mina/token/api.d.ts +1 -1
  39. package/dist/web/mina/token/bid.d.ts +24 -0
  40. package/dist/web/mina/token/bid.js +167 -0
  41. package/dist/web/mina/token/bid.js.map +1 -0
  42. package/dist/web/mina/token/build.d.ts +64 -0
  43. package/dist/web/mina/token/build.js +437 -0
  44. package/dist/web/mina/token/build.js.map +1 -0
  45. package/dist/web/mina/token/fee.d.ts +2 -0
  46. package/dist/web/mina/token/fee.js +3 -0
  47. package/dist/web/mina/token/fee.js.map +1 -0
  48. package/dist/web/mina/token/index.d.ts +5 -2
  49. package/dist/web/mina/token/index.js +5 -2
  50. package/dist/web/mina/token/index.js.map +1 -1
  51. package/dist/web/mina/token/offer.d.ts +25 -0
  52. package/dist/web/mina/token/offer.js +175 -0
  53. package/dist/web/mina/token/offer.js.map +1 -0
  54. package/dist/web/mina/token/token.d.ts +426 -0
  55. package/dist/web/mina/token/token.js +87 -0
  56. package/dist/web/mina/token/token.js.map +1 -0
  57. package/package.json +3 -2
  58. package/src/mina/token/FungibleTokenAdmin.ts +1 -7
  59. package/src/mina/token/FungibleTokenContract.ts +327 -0
  60. package/src/mina/token/FungibleTokenWhitelistedAdmin.ts +112 -0
  61. package/src/mina/token/api.ts +1 -1
  62. package/src/mina/token/bid.ts +173 -0
  63. package/src/mina/token/build.ts +610 -0
  64. package/src/mina/token/fee.ts +2 -0
  65. package/src/mina/token/index.ts +5 -2
  66. package/src/mina/token/offer.ts +174 -0
  67. package/src/mina/token/token.ts +127 -0
  68. package/src/mina/token/FungibleToken.ts +0 -316
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bid.js","sourceRoot":"","sources":["../../../../src/mina/token/bid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { WhitelistedAddressList } from "./whitelist.js";
2
+ import { FungibleTokenTransactionType } from "./api.js";
3
+ import { blockchain } from "../../cloud/networks.js";
4
+ import { PublicKey, UInt64, UInt8, Transaction, VerificationKey } from "o1js";
5
+ export declare function buildTokenDeployTransaction(params: {
6
+ chain: blockchain;
7
+ fee: UInt64;
8
+ sender: PublicKey;
9
+ nonce: number;
10
+ tokenAddress: PublicKey;
11
+ adminContractAddress: PublicKey;
12
+ adminAddress: PublicKey;
13
+ uri: string;
14
+ symbol: string;
15
+ memo?: string;
16
+ whitelist?: WhitelistedAddressList;
17
+ developerAddress?: PublicKey;
18
+ developerFee?: UInt64;
19
+ provingKey: PublicKey;
20
+ provingFee: UInt64;
21
+ decimals: UInt8;
22
+ }): Promise<{
23
+ tx: Transaction<false, false>;
24
+ isWhitelisted: boolean;
25
+ adminVerificationKey: VerificationKey;
26
+ tokenVerificationKey: VerificationKey;
27
+ }>;
28
+ export declare function buildTokenTransaction(params: {
29
+ txType: FungibleTokenTransactionType;
30
+ chain: blockchain;
31
+ fee: UInt64;
32
+ sender: PublicKey;
33
+ nonce: number;
34
+ memo?: string;
35
+ tokenAddress: PublicKey;
36
+ from: PublicKey;
37
+ to: PublicKey;
38
+ amount?: UInt64;
39
+ price?: UInt64;
40
+ whitelist?: WhitelistedAddressList;
41
+ developerAddress?: PublicKey;
42
+ developerFee?: UInt64;
43
+ provingKey: PublicKey;
44
+ provingFee: UInt64;
45
+ }): Promise<{
46
+ tx: Transaction<false, false>;
47
+ isWhitelisted: boolean;
48
+ adminContractAddress: PublicKey;
49
+ adminAddress: PublicKey;
50
+ symbol: string;
51
+ adminVerificationKey: VerificationKey;
52
+ tokenVerificationKey: VerificationKey;
53
+ offerVerificationKey: VerificationKey;
54
+ bidVerificationKey: VerificationKey;
55
+ }>;
56
+ export declare function getTokenSymbolAndAdmin(params: {
57
+ tokenAddress: PublicKey;
58
+ chain: blockchain;
59
+ }): Promise<{
60
+ adminContractAddress: PublicKey;
61
+ adminAddress: PublicKey;
62
+ symbol: string;
63
+ isWhitelisted: boolean;
64
+ }>;
@@ -0,0 +1,437 @@
1
+ import { Whitelist } from "./whitelist.js";
2
+ import { fetchMinaAccount } from "../utils/fetch.js";
3
+ import { accountBalanceMina } from "../utils/mina.js";
4
+ import { FungibleToken, WhitelistedFungibleToken, FungibleTokenAdmin, FungibleTokenWhitelistedAdmin, FungibleTokenOfferContract, FungibleTokenBidContract, tokenVerificationKeys, } from "./token.js";
5
+ import { PublicKey, Mina, AccountUpdate, UInt8, Bool, Struct, Field, } from "o1js";
6
+ export async function buildTokenDeployTransaction(params) {
7
+ const { fee, sender, nonce, memo, tokenAddress, adminContractAddress, uri, symbol, developerAddress, developerFee, provingKey, provingFee, decimals, chain, whitelist, } = params;
8
+ const isWhitelisted = whitelist !== undefined;
9
+ if (memo && typeof memo !== "string")
10
+ throw new Error("Memo must be a string");
11
+ if (memo && memo.length > 30)
12
+ throw new Error("Memo must be less than 30 characters");
13
+ if (!symbol || typeof symbol !== "string")
14
+ throw new Error("Symbol must be a string");
15
+ if (symbol.length >= 7)
16
+ throw new Error("Symbol must be less than 7 characters");
17
+ const adminContract = isWhitelisted
18
+ ? FungibleTokenWhitelistedAdmin
19
+ : FungibleTokenAdmin;
20
+ const tokenContract = isWhitelisted
21
+ ? WhitelistedFungibleToken
22
+ : FungibleToken;
23
+ const vk = tokenVerificationKeys[chain === "mainnet" ? "mainnet" : "testnet"].vk;
24
+ if (!vk ||
25
+ !vk.FungibleTokenWhitelistedAdmin ||
26
+ !vk.FungibleTokenWhitelistedAdmin.hash ||
27
+ !vk.FungibleTokenWhitelistedAdmin.data ||
28
+ !vk.FungibleTokenAdmin ||
29
+ !vk.FungibleTokenAdmin.hash ||
30
+ !vk.FungibleTokenAdmin.data ||
31
+ !vk.WhitelistedFungibleToken ||
32
+ !vk.WhitelistedFungibleToken.hash ||
33
+ !vk.WhitelistedFungibleToken.data ||
34
+ !vk.FungibleToken ||
35
+ !vk.FungibleToken.hash ||
36
+ !vk.FungibleToken.data)
37
+ throw new Error("Cannot get verification keys");
38
+ const adminVerificationKey = isWhitelisted
39
+ ? vk.FungibleTokenWhitelistedAdmin
40
+ : vk.FungibleTokenAdmin;
41
+ const tokenVerificationKey = isWhitelisted
42
+ ? vk.WhitelistedFungibleToken
43
+ : vk.FungibleToken;
44
+ if (!adminVerificationKey || !tokenVerificationKey)
45
+ throw new Error("Cannot get verification keys");
46
+ await fetchMinaAccount({
47
+ publicKey: sender,
48
+ force: true,
49
+ });
50
+ if (!Mina.hasAccount(sender)) {
51
+ throw new Error("Sender does not have account");
52
+ }
53
+ console.log("Sender balance:", await accountBalanceMina(sender));
54
+ const whitelistedAddresses = whitelist
55
+ ? await Whitelist.create({ list: whitelist, name: symbol })
56
+ : undefined;
57
+ const zkToken = new tokenContract(tokenAddress);
58
+ const zkAdmin = new adminContract(adminContractAddress);
59
+ const tx = await Mina.transaction({ sender, fee, memo: memo ?? `deploy ${symbol}`, nonce }, async () => {
60
+ const feeAccountUpdate = AccountUpdate.createSigned(sender);
61
+ feeAccountUpdate.balance.subInPlace(3_000_000_000);
62
+ feeAccountUpdate.send({
63
+ to: provingKey,
64
+ amount: provingFee,
65
+ });
66
+ if (developerAddress && developerFee) {
67
+ feeAccountUpdate.send({
68
+ to: developerAddress,
69
+ amount: developerFee,
70
+ });
71
+ }
72
+ if (isWhitelisted && !whitelistedAddresses) {
73
+ throw new Error("Whitelisted addresses not found");
74
+ }
75
+ await zkAdmin.deploy({
76
+ adminPublicKey: sender,
77
+ verificationKey: adminVerificationKey,
78
+ whitelist: whitelistedAddresses,
79
+ });
80
+ zkAdmin.account.zkappUri.set(uri);
81
+ await zkToken.deploy({
82
+ symbol,
83
+ src: uri,
84
+ verificationKey: tokenVerificationKey,
85
+ });
86
+ await zkToken.initialize(adminContractAddress, decimals,
87
+ // We can set `startPaused` to `Bool(false)` here, because we are doing an atomic deployment
88
+ // If you are not deploying the admin and token contracts in the same transaction,
89
+ // it is safer to start the tokens paused, and resume them only after verifying that
90
+ // the admin contract has been deployed
91
+ Bool(false));
92
+ });
93
+ return {
94
+ tx,
95
+ isWhitelisted,
96
+ adminVerificationKey: {
97
+ hash: Field(adminVerificationKey.hash),
98
+ data: adminVerificationKey.data,
99
+ },
100
+ tokenVerificationKey: {
101
+ hash: Field(tokenVerificationKey.hash),
102
+ data: tokenVerificationKey.data,
103
+ },
104
+ };
105
+ }
106
+ export async function buildTokenTransaction(params) {
107
+ const { txType, chain, fee, sender, nonce, tokenAddress, from, to, amount, price, developerAddress, developerFee, provingKey, provingFee, whitelist, } = params;
108
+ console.log(txType, "tx for", tokenAddress.toBase58());
109
+ console.log("Sender:", sender.toBase58());
110
+ if (txType === "offer" ||
111
+ txType === "bid" || // direction is money direction as no token is moving
112
+ txType === "mint" ||
113
+ txType === "transfer" ||
114
+ txType === "sell") {
115
+ if (sender.toBase58() != from.toBase58())
116
+ throw new Error("Invalid sender");
117
+ }
118
+ if (txType === "buy" ||
119
+ txType === "withdrawOffer" ||
120
+ txType === "withdrawBid" // direction is money direction as no token is moving
121
+ ) {
122
+ if (sender.toBase58() != to.toBase58())
123
+ throw new Error("Invalid sender");
124
+ }
125
+ await fetchMinaAccount({
126
+ publicKey: sender,
127
+ force: true,
128
+ });
129
+ if (!Mina.hasAccount(sender)) {
130
+ console.error("Sender does not have account");
131
+ throw new Error("Sender does not have account");
132
+ }
133
+ const { symbol, adminContractAddress, adminAddress, isWhitelisted } = await getTokenSymbolAndAdmin({
134
+ tokenAddress,
135
+ chain,
136
+ });
137
+ const memo = params.memo ?? `${txType} ${symbol}`;
138
+ const whitelistedAdminContract = new FungibleTokenWhitelistedAdmin(adminContractAddress);
139
+ const tokenContract = isWhitelisted
140
+ ? WhitelistedFungibleToken
141
+ : FungibleToken;
142
+ if ((txType === "whitelistAdmin" ||
143
+ txType === "whitelistBid" ||
144
+ txType === "whitelistOffer") &&
145
+ !whitelist) {
146
+ throw new Error("Whitelist is required");
147
+ }
148
+ const whitelistedAddresses = whitelist
149
+ ? await Whitelist.create({ list: whitelist, name: symbol })
150
+ : undefined;
151
+ const zkToken = new tokenContract(tokenAddress);
152
+ const tokenId = zkToken.deriveTokenId();
153
+ if (txType === "mint" && adminAddress.toBase58() !== sender.toBase58())
154
+ throw new Error("Invalid sender for mint");
155
+ await fetchMinaAccount({
156
+ publicKey: tokenAddress,
157
+ tokenId,
158
+ force: true,
159
+ });
160
+ await fetchMinaAccount({
161
+ publicKey: from,
162
+ tokenId,
163
+ force: [
164
+ "offer",
165
+ "sell",
166
+ "transfer",
167
+ "withdrawOffer",
168
+ ].includes(txType),
169
+ });
170
+ await fetchMinaAccount({
171
+ publicKey: to,
172
+ tokenId,
173
+ force: [
174
+ "sell",
175
+ "whitelistAdmin",
176
+ "withdrawBid",
177
+ "withdrawOffer",
178
+ ].includes(txType),
179
+ });
180
+ const isNewAccount = Mina.hasAccount(to, tokenId) === false;
181
+ const offerContract = new FungibleTokenOfferContract([
182
+ "offer",
183
+ "whitelistOffer",
184
+ ].includes(txType)
185
+ ? to
186
+ : from, tokenId);
187
+ const bidContract = new FungibleTokenBidContract([
188
+ "bid",
189
+ ].includes(txType)
190
+ ? from
191
+ : to, tokenId);
192
+ const offerContractDeployment = new FungibleTokenOfferContract(to, tokenId);
193
+ const bidContractDeployment = new FungibleTokenBidContract(from, tokenId);
194
+ const vk = tokenVerificationKeys[chain === "mainnet" ? "mainnet" : "testnet"].vk;
195
+ if (!vk ||
196
+ !vk.FungibleTokenOfferContract ||
197
+ !vk.FungibleTokenOfferContract.hash ||
198
+ !vk.FungibleTokenOfferContract.data ||
199
+ !vk.FungibleTokenBidContract ||
200
+ !vk.FungibleTokenBidContract.hash ||
201
+ !vk.FungibleTokenBidContract.data ||
202
+ !vk.FungibleTokenWhitelistedAdmin ||
203
+ !vk.FungibleTokenWhitelistedAdmin.hash ||
204
+ !vk.FungibleTokenWhitelistedAdmin.data ||
205
+ !vk.FungibleTokenAdmin ||
206
+ !vk.FungibleTokenAdmin.hash ||
207
+ !vk.FungibleTokenAdmin.data ||
208
+ !vk.WhitelistedFungibleToken ||
209
+ !vk.WhitelistedFungibleToken.hash ||
210
+ !vk.WhitelistedFungibleToken.data ||
211
+ !vk.FungibleToken ||
212
+ !vk.FungibleToken.hash ||
213
+ !vk.FungibleToken.data)
214
+ throw new Error("Cannot get verification key");
215
+ const adminVerificationKey = isWhitelisted
216
+ ? vk.FungibleTokenWhitelistedAdmin
217
+ : vk.FungibleTokenAdmin;
218
+ const tokenVerificationKey = isWhitelisted
219
+ ? vk.WhitelistedFungibleToken
220
+ : vk.FungibleToken;
221
+ const offerVerificationKey = FungibleTokenOfferContract._verificationKey ?? {
222
+ hash: Field(vk.FungibleTokenOfferContract.hash),
223
+ data: vk.FungibleTokenOfferContract.data,
224
+ };
225
+ const bidVerificationKey = FungibleTokenBidContract._verificationKey ?? {
226
+ hash: Field(vk.FungibleTokenBidContract.hash),
227
+ data: vk.FungibleTokenBidContract.data,
228
+ };
229
+ console.log("Sender balance:", await accountBalanceMina(sender));
230
+ console.log("New account:", isNewAccount);
231
+ const tx = await Mina.transaction({ sender, fee, memo, nonce }, async () => {
232
+ const feeAccountUpdate = AccountUpdate.createSigned(sender);
233
+ if (isNewAccount) {
234
+ feeAccountUpdate.balance.subInPlace(1_000_000_000);
235
+ }
236
+ feeAccountUpdate.send({
237
+ to: provingKey,
238
+ amount: provingFee,
239
+ });
240
+ if (developerAddress && developerFee) {
241
+ feeAccountUpdate.send({
242
+ to: developerAddress,
243
+ amount: developerFee,
244
+ });
245
+ }
246
+ switch (txType) {
247
+ case "mint":
248
+ if (amount === undefined)
249
+ throw new Error("Error: Amount is required");
250
+ await zkToken.mint(to, amount);
251
+ break;
252
+ case "transfer":
253
+ if (amount === undefined)
254
+ throw new Error("Error: Amount is required");
255
+ await zkToken.transfer(from, to, amount);
256
+ break;
257
+ case "offer":
258
+ if (price === undefined)
259
+ throw new Error("Error: Price is required");
260
+ if (amount === undefined)
261
+ throw new Error("Error: Amount is required");
262
+ if (isNewAccount) {
263
+ await offerContractDeployment.deploy({
264
+ verificationKey: offerVerificationKey,
265
+ whitelist: whitelistedAddresses ?? Whitelist.empty(),
266
+ });
267
+ offerContract.account.zkappUri.set(`Offer for ${symbol}`);
268
+ await offerContract.initialize(sender, tokenAddress, amount, price);
269
+ await zkToken.approveAccountUpdates([
270
+ offerContractDeployment.self,
271
+ offerContract.self,
272
+ ]);
273
+ }
274
+ else {
275
+ await offerContract.offer(amount, price);
276
+ await zkToken.approveAccountUpdate(offerContract.self);
277
+ }
278
+ break;
279
+ case "buy":
280
+ if (amount === undefined)
281
+ throw new Error("Error: Amount is required");
282
+ await offerContract.buy(amount);
283
+ await zkToken.approveAccountUpdate(offerContract.self);
284
+ break;
285
+ case "withdrawOffer":
286
+ if (amount === undefined)
287
+ throw new Error("Error: Amount is required");
288
+ await offerContract.withdraw(amount);
289
+ await zkToken.approveAccountUpdate(offerContract.self);
290
+ break;
291
+ case "bid":
292
+ if (price === undefined)
293
+ throw new Error("Error: Price is required");
294
+ if (amount === undefined)
295
+ throw new Error("Error: Amount is required");
296
+ if (isNewAccount) {
297
+ await bidContractDeployment.deploy({
298
+ verificationKey: bidVerificationKey,
299
+ whitelist: whitelistedAddresses ?? Whitelist.empty(),
300
+ });
301
+ bidContract.account.zkappUri.set(`Bid for ${symbol}`);
302
+ await bidContract.initialize(tokenAddress, amount, price);
303
+ await zkToken.approveAccountUpdates([
304
+ bidContractDeployment.self,
305
+ bidContract.self,
306
+ ]);
307
+ }
308
+ else {
309
+ await bidContract.bid(amount, price);
310
+ await zkToken.approveAccountUpdate(bidContract.self);
311
+ }
312
+ break;
313
+ case "sell":
314
+ if (amount === undefined)
315
+ throw new Error("Error: Amount is required");
316
+ await bidContract.sell(amount);
317
+ await zkToken.approveAccountUpdate(bidContract.self);
318
+ break;
319
+ case "withdrawBid":
320
+ if (amount === undefined)
321
+ throw new Error("Error: Amount is required");
322
+ await bidContract.withdraw(amount);
323
+ await zkToken.approveAccountUpdate(bidContract.self);
324
+ break;
325
+ case "whitelistAdmin":
326
+ if (!whitelistedAddresses)
327
+ throw new Error("Whitelist is required");
328
+ await whitelistedAdminContract.updateWhitelist(whitelistedAddresses);
329
+ break;
330
+ case "whitelistBid":
331
+ if (!whitelistedAddresses)
332
+ throw new Error("Whitelist is required");
333
+ await bidContract.updateWhitelist(whitelistedAddresses);
334
+ break;
335
+ case "whitelistOffer":
336
+ if (!whitelistedAddresses)
337
+ throw new Error("Whitelist is required");
338
+ await offerContract.updateWhitelist(whitelistedAddresses);
339
+ await zkToken.approveAccountUpdate(offerContract.self);
340
+ break;
341
+ default:
342
+ throw new Error(`Unknown transaction type: ${txType}`);
343
+ }
344
+ });
345
+ return {
346
+ tx,
347
+ isWhitelisted,
348
+ adminContractAddress,
349
+ adminAddress,
350
+ symbol,
351
+ adminVerificationKey: {
352
+ hash: Field(adminVerificationKey.hash),
353
+ data: adminVerificationKey.data,
354
+ },
355
+ tokenVerificationKey: {
356
+ hash: Field(tokenVerificationKey.hash),
357
+ data: tokenVerificationKey.data,
358
+ },
359
+ offerVerificationKey,
360
+ bidVerificationKey,
361
+ };
362
+ }
363
+ export async function getTokenSymbolAndAdmin(params) {
364
+ const { tokenAddress, chain } = params;
365
+ const vk = tokenVerificationKeys[chain === "mainnet" ? "mainnet" : "testnet"].vk;
366
+ class FungibleTokenState extends Struct({
367
+ decimals: UInt8,
368
+ admin: PublicKey,
369
+ paused: Bool,
370
+ }) {
371
+ }
372
+ const FungibleTokenStateSize = FungibleTokenState.sizeInFields();
373
+ class FungibleTokenAdminState extends Struct({
374
+ adminPublicKey: PublicKey,
375
+ }) {
376
+ }
377
+ const FungibleTokenAdminStateSize = FungibleTokenAdminState.sizeInFields();
378
+ await fetchMinaAccount({ publicKey: tokenAddress, force: true });
379
+ if (!Mina.hasAccount(tokenAddress)) {
380
+ throw new Error("Token contract account not found");
381
+ }
382
+ const account = Mina.getAccount(tokenAddress);
383
+ const verificationKey = account.zkapp?.verificationKey;
384
+ if (!verificationKey) {
385
+ throw new Error("Token contract verification key not found");
386
+ }
387
+ if (verificationKey.hash.toJSON() !== vk.FungibleToken.hash ||
388
+ verificationKey.data !== vk.FungibleToken.data ||
389
+ verificationKey.hash.toJSON() !== vk.WhitelistedFungibleToken.hash ||
390
+ verificationKey.data !== vk.WhitelistedFungibleToken.data) {
391
+ throw new Error("Unknown token verification key");
392
+ }
393
+ if (account.zkapp?.appState === undefined) {
394
+ throw new Error("Token contract state not found");
395
+ }
396
+ const state = FungibleTokenState.fromFields(account.zkapp?.appState.slice(0, FungibleTokenStateSize));
397
+ const symbol = account.tokenSymbol;
398
+ const adminContractPublicKey = state.admin;
399
+ await fetchMinaAccount({
400
+ publicKey: adminContractPublicKey,
401
+ force: true,
402
+ });
403
+ if (!Mina.hasAccount(adminContractPublicKey)) {
404
+ throw new Error("Admin contract account not found");
405
+ }
406
+ const adminContract = Mina.getAccount(adminContractPublicKey);
407
+ const adminVerificationKey = adminContract.zkapp?.verificationKey;
408
+ if (!adminVerificationKey) {
409
+ throw new Error("Admin verification key not found");
410
+ }
411
+ let isWhitelisted = false;
412
+ if (vk.FungibleTokenWhitelistedAdmin.hash ===
413
+ adminVerificationKey.hash.toJSON() &&
414
+ vk.FungibleTokenWhitelistedAdmin.data === adminVerificationKey.data) {
415
+ isWhitelisted = true;
416
+ }
417
+ else if (vk.FungibleTokenAdmin.hash === adminVerificationKey.hash.toJSON() &&
418
+ vk.FungibleTokenAdmin.data === adminVerificationKey.data) {
419
+ isWhitelisted = false;
420
+ }
421
+ else {
422
+ throw new Error("Unknown admin verification key");
423
+ }
424
+ const adminAddress0 = adminContract.zkapp?.appState[0];
425
+ const adminAddress1 = adminContract.zkapp?.appState[1];
426
+ if (adminAddress0 === undefined || adminAddress1 === undefined) {
427
+ throw new Error("Cannot fetch admin address from admin contract");
428
+ }
429
+ const adminAddress = PublicKey.fromFields([adminAddress0, adminAddress1]);
430
+ return {
431
+ adminContractAddress: adminContractPublicKey,
432
+ adminAddress: adminAddress,
433
+ symbol,
434
+ isWhitelisted,
435
+ };
436
+ }
437
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../src/mina/token/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const LAUNCH_FEE = 1000000000;
2
+ export declare const TRANSACTION_FEE = 100000000;
@@ -0,0 +1,3 @@
1
+ export const LAUNCH_FEE = 1e9;
2
+ export const TRANSACTION_FEE = 1e8;
3
+ //# sourceMappingURL=fee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../../src/mina/token/fee.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC"}
@@ -1,5 +1,8 @@
1
- export * from "./FungibleToken.js";
2
- export * from "./FungibleTokenAdmin.js";
3
1
  export * from "./api.js";
2
+ export * from "./bid.js";
3
+ export * from "./build.js";
4
+ export * from "./fee.js";
5
+ export * from "./offer.js";
6
+ export * from "./token.js";
4
7
  export * from "./vk.js";
5
8
  export * from "./whitelist.js";
@@ -1,6 +1,9 @@
1
- export * from "./FungibleToken.js";
2
- export * from "./FungibleTokenAdmin.js";
3
1
  export * from "./api.js";
2
+ export * from "./bid.js";
3
+ export * from "./build.js";
4
+ export * from "./fee.js";
5
+ export * from "./offer.js";
6
+ export * from "./token.js";
4
7
  export * from "./vk.js";
5
8
  export * from "./whitelist.js";
6
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mina/token/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mina/token/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { DeployArgs, PublicKey, State, UInt64, SmartContract } from "o1js";
2
+ import { Whitelist } from "./whitelist.js";
3
+ export interface FungibleTokenOfferContractDeployProps extends Exclude<DeployArgs, undefined> {
4
+ /** The whitelist. */
5
+ whitelist: Whitelist;
6
+ }
7
+ export declare class FungibleTokenOfferContract extends SmartContract {
8
+ price: State<UInt64>;
9
+ seller: State<PublicKey>;
10
+ token: State<PublicKey>;
11
+ whitelist: State<Whitelist>;
12
+ deploy(args: FungibleTokenOfferContractDeployProps): Promise<void>;
13
+ events: {
14
+ offer: typeof UInt64;
15
+ withdraw: typeof UInt64;
16
+ buy: typeof UInt64;
17
+ updateWhitelist: typeof Whitelist;
18
+ };
19
+ initialize(seller: PublicKey, // we are short of AccountUpdates here, so we use this parameter instead of this.sender.getUnconstrained()
20
+ token: PublicKey, amount: UInt64, price: UInt64): Promise<void>;
21
+ offer(amount: UInt64, price: UInt64): Promise<void>;
22
+ withdraw(amount: UInt64): Promise<void>;
23
+ buy(amount: UInt64): Promise<void>;
24
+ updateWhitelist(whitelist: Whitelist): Promise<void>;
25
+ }