zkcloudworker 0.7.2 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/lib/ts/src/api/api.d.ts +39 -27
  2. package/lib/ts/src/api/api.js +28 -27
  3. package/lib/ts/src/cloud/cloud.d.ts +176 -0
  4. package/lib/ts/src/cloud/cloud.js +72 -3
  5. package/lib/ts/src/cloud/job.d.ts +47 -0
  6. package/lib/ts/src/cloud/local.d.ts +157 -1
  7. package/lib/ts/src/cloud/local.js +157 -3
  8. package/lib/ts/src/cloud/task.d.ts +18 -0
  9. package/lib/ts/src/networks.d.ts +20 -0
  10. package/lib/ts/src/utils/fee.d.ts +4 -0
  11. package/lib/ts/src/utils/fee.js +5 -1
  12. package/lib/ts/src/utils/fetch.d.ts +20 -0
  13. package/lib/ts/src/utils/fetch.js +20 -0
  14. package/lib/ts/src/utils/fields.d.ts +10 -0
  15. package/lib/ts/src/utils/fields.js +10 -0
  16. package/lib/ts/src/utils/mina.d.ts +24 -0
  17. package/lib/ts/src/utils/mina.js +18 -0
  18. package/lib/ts/tsconfig.tsbuildinfo +1 -1
  19. package/lib/web/src/api/api.d.ts +39 -27
  20. package/lib/web/src/api/api.js +28 -27
  21. package/lib/web/src/api/api.js.map +1 -1
  22. package/lib/web/src/cloud/cloud.d.ts +176 -0
  23. package/lib/web/src/cloud/cloud.js +72 -3
  24. package/lib/web/src/cloud/cloud.js.map +1 -1
  25. package/lib/web/src/cloud/job.d.ts +47 -0
  26. package/lib/web/src/cloud/local.d.ts +157 -1
  27. package/lib/web/src/cloud/local.js +157 -3
  28. package/lib/web/src/cloud/local.js.map +1 -1
  29. package/lib/web/src/cloud/task.d.ts +18 -0
  30. package/lib/web/src/networks.d.ts +20 -0
  31. package/lib/web/src/networks.js.map +1 -1
  32. package/lib/web/src/utils/fee.d.ts +4 -0
  33. package/lib/web/src/utils/fee.js +5 -1
  34. package/lib/web/src/utils/fee.js.map +1 -1
  35. package/lib/web/src/utils/fetch.d.ts +20 -0
  36. package/lib/web/src/utils/fetch.js +20 -0
  37. package/lib/web/src/utils/fetch.js.map +1 -1
  38. package/lib/web/src/utils/fields.d.ts +10 -0
  39. package/lib/web/src/utils/fields.js +10 -0
  40. package/lib/web/src/utils/fields.js.map +1 -1
  41. package/lib/web/src/utils/mina.d.ts +24 -0
  42. package/lib/web/src/utils/mina.js +18 -0
  43. package/lib/web/src/utils/mina.js.map +1 -1
  44. package/lib/web/tsconfig.web.tsbuildinfo +1 -1
  45. package/package.json +1 -1
@@ -5,8 +5,24 @@ import { TaskData } from "./task";
5
5
  import { blockchain } from "../networks";
6
6
  import { CloudTransaction, DeployerKeyPair } from "./cloud";
7
7
  import { ApiCommand } from "../api/api";
8
+ /**
9
+ * LocalCloud is a cloud that runs on the local machine for testing and development
10
+ * It uses LocalStorage to store jobs, tasks, transactions, and data
11
+ * It uses a localWorker to execute the tasks
12
+ * It can be used to test the cloud functionality without deploying to the cloud
13
+ * @param localWorker the worker to execute the tasks
14
+ */
8
15
  export declare class LocalCloud extends Cloud {
9
16
  readonly localWorker: (cloud: Cloud) => Promise<zkCloudWorker>;
17
+ /**
18
+ * Constructor for LocalCloud
19
+ * @param params the parameters to create the LocalCloud
20
+ * @param params.job the job data
21
+ * @param params.chain the blockchain to execute the job on, can be any blockchain, not only local
22
+ * @param params.cache the cache folder
23
+ * @param params.stepId the step id
24
+ * @param params.localWorker the worker to execute the tasks
25
+ */
10
26
  constructor(params: {
11
27
  job: JobData;
12
28
  chain: blockchain;
@@ -14,21 +30,80 @@ export declare class LocalCloud extends Cloud {
14
30
  stepId?: string;
15
31
  localWorker: (cloud: Cloud) => Promise<zkCloudWorker>;
16
32
  });
33
+ /**
34
+ * Provides the deployer key pair for testing and development
35
+ * @returns the deployer key pair
36
+ */
17
37
  getDeployer(): Promise<DeployerKeyPair | undefined>;
38
+ /**
39
+ * Releases the deployer key pair
40
+ */
18
41
  releaseDeployer(params: {
19
42
  publicKey: string;
20
43
  txsHashes: string[];
21
44
  }): Promise<void>;
22
- log(msg: string): Promise<void>;
45
+ /**
46
+ * Gets the data by key
47
+ * @param key the key to get the data
48
+ * @returns the data
49
+ */
23
50
  getDataByKey(key: string): Promise<string | undefined>;
51
+ /**
52
+ * Saves the data by key
53
+ * @param key the key to save the data
54
+ * @param value the value to save
55
+ */
24
56
  saveDataByKey(key: string, value: string | undefined): Promise<void>;
57
+ /**
58
+ * Saves the file
59
+ * @param filename the filename to save
60
+ * @param value the value to save
61
+ */
25
62
  saveFile(filename: string, value: Buffer): Promise<void>;
63
+ /**
64
+ * Loads the file
65
+ * @param filename
66
+ * @returns the file data
67
+ */
26
68
  loadFile(filename: string): Promise<Buffer | undefined>;
69
+ /**
70
+ * Loads the environment
71
+ * @param password
72
+ */
27
73
  loadEnvironment(password: string): Promise<void>;
74
+ /**
75
+ * Generates an id for local cloud
76
+ * @returns generated unique id
77
+ */
28
78
  private static generateId;
79
+ /**
80
+ * Adds transactions to the local cloud
81
+ * @param transactions the transactions to add
82
+ * @returns the transaction ids
83
+ */
29
84
  static addTransactions(transactions: string[]): Promise<string[]>;
85
+ /**
86
+ * Deletes a transaction from the local cloud
87
+ * @param txId the transaction id to delete
88
+ */
30
89
  deleteTransaction(txId: string): Promise<void>;
31
90
  getTransactions(): Promise<CloudTransaction[]>;
91
+ /**
92
+ * Runs the worker in the local cloud
93
+ * @param params the parameters to run the worker
94
+ * @param params.command the command to run
95
+ * @param params.data the data to use
96
+ * @param params.data.developer the developer of the repo
97
+ * @param params.data.repo the repo
98
+ * @param params.data.transactions the transactions to process
99
+ * @param params.data.task the task to execute
100
+ * @param params.data.userId the user id
101
+ * @param params.data.args the arguments for the job
102
+ * @param params.data.metadata the metadata for the job
103
+ * @param params.chain the blockchain to execute the job on
104
+ * @param params.localWorker the worker to execute the tasks
105
+ * @returns the job id
106
+ */
32
107
  static run(params: {
33
108
  command: ApiCommand;
34
109
  data: {
@@ -43,6 +118,16 @@ export declare class LocalCloud extends Cloud {
43
118
  chain: blockchain;
44
119
  localWorker: (cloud: Cloud) => Promise<zkCloudWorker>;
45
120
  }): Promise<string>;
121
+ /**
122
+ * Runs the recursive proof in the local cloud
123
+ * @param data the data to use
124
+ * @param data.transactions the transactions to process
125
+ * @param data.task the task to execute
126
+ * @param data.userId the user id
127
+ * @param data.args the arguments for the job
128
+ * @param data.metadata the metadata for the job
129
+ * @returns the job id
130
+ */
46
131
  recursiveProof(data: {
47
132
  transactions: string[];
48
133
  task?: string;
@@ -50,6 +135,16 @@ export declare class LocalCloud extends Cloud {
50
135
  args?: string;
51
136
  metadata?: string;
52
137
  }): Promise<string>;
138
+ /**
139
+ * Executes the task in the local cloud
140
+ * @param data the data to use
141
+ * @param data.transactions the transactions to process
142
+ * @param data.task the task to execute
143
+ * @param data.userId the user id
144
+ * @param data.args the arguments for the job
145
+ * @param data.metadata the metadata for the job
146
+ * @returns the job id
147
+ */
53
148
  execute(data: {
54
149
  transactions: string[];
55
150
  task: string;
@@ -57,7 +152,22 @@ export declare class LocalCloud extends Cloud {
57
152
  args?: string;
58
153
  metadata?: string;
59
154
  }): Promise<string>;
155
+ /**
156
+ * Gets the job result
157
+ * @param jobId the job id
158
+ * @returns the job data
159
+ */
60
160
  jobResult(jobId: string): Promise<JobData | undefined>;
161
+ /**
162
+ * Adds a task to the local cloud
163
+ * @param data the data to use
164
+ * @param data.task the task to execute
165
+ * @param data.startTime the start time for the task
166
+ * @param data.userId the user id
167
+ * @param data.args the arguments for the job
168
+ * @param data.metadata the metadata for the job
169
+ * @returns the task id
170
+ */
61
171
  addTask(data: {
62
172
  task: string;
63
173
  startTime?: number;
@@ -65,14 +175,43 @@ export declare class LocalCloud extends Cloud {
65
175
  args?: string;
66
176
  metadata?: string;
67
177
  }): Promise<string>;
178
+ /**
179
+ * Deletes a task from the local cloud
180
+ * @param taskId the task id to delete
181
+ */
68
182
  deleteTask(taskId: string): Promise<void>;
183
+ /**
184
+ * Processes the tasks in the local cloud
185
+ */
69
186
  processTasks(): Promise<void>;
187
+ /**
188
+ * Processes the local tasks
189
+ * @param params the parameters to process the local tasks
190
+ * @param params.developer the developer of the repo
191
+ * @param params.repo the repo
192
+ * @param params.localWorker the worker to execute the tasks
193
+ * @param params.chain the blockchain to execute the job on
194
+ */
70
195
  static processLocalTasks(params: {
71
196
  developer: string;
72
197
  repo: string;
73
198
  localWorker: (cloud: Cloud) => Promise<zkCloudWorker>;
74
199
  chain: blockchain;
75
200
  }): Promise<number>;
201
+ /**
202
+ * Runs the sequencer in the local cloud
203
+ * @param params the parameters to run the sequencer
204
+ * @param params.worker the worker to execute the tasks
205
+ * @param params.data the data to use
206
+ * @param params.data.developer the developer of the repo
207
+ * @param params.data.repo the repo
208
+ * @param params.data.transactions the transactions to process
209
+ * @param params.data.task the task to execute
210
+ * @param params.data.userId the user id
211
+ * @param params.data.args the arguments for the job
212
+ * @param params.data.metadata the metadata for the job
213
+ * @returns the proof
214
+ */
76
215
  static sequencer(params: {
77
216
  worker: zkCloudWorker;
78
217
  data: {
@@ -86,6 +225,15 @@ export declare class LocalCloud extends Cloud {
86
225
  };
87
226
  }): Promise<string>;
88
227
  }
228
+ /**
229
+ * LocalStorage is a local storage for the local cloud
230
+ * It stores jobs, tasks, transactions, and data
231
+ * It can be used to test the cloud functionality without deploying to the cloud
232
+ * @param jobs the jobs
233
+ * @param data the data
234
+ * @param transactions the transactions
235
+ * @param tasks the tasks
236
+ */
89
237
  export declare class LocalStorage {
90
238
  static jobs: {
91
239
  [key: string]: JobData;
@@ -102,6 +250,14 @@ export declare class LocalStorage {
102
250
  static tasks: {
103
251
  [key: string]: TaskData;
104
252
  };
253
+ /**
254
+ * Saves the data
255
+ * @param name the name to save the data
256
+ */
105
257
  static saveData(name: string): Promise<void>;
258
+ /**
259
+ * Loads the data
260
+ * @param name the name to load the data
261
+ */
106
262
  static loadData(name: string): Promise<void>;
107
263
  }
@@ -4,7 +4,23 @@ exports.LocalStorage = exports.LocalCloud = void 0;
4
4
  const cloud_1 = require("./cloud");
5
5
  const utils_1 = require("../utils/utils");
6
6
  const files_1 = require("./files");
7
+ /**
8
+ * LocalCloud is a cloud that runs on the local machine for testing and development
9
+ * It uses LocalStorage to store jobs, tasks, transactions, and data
10
+ * It uses a localWorker to execute the tasks
11
+ * It can be used to test the cloud functionality without deploying to the cloud
12
+ * @param localWorker the worker to execute the tasks
13
+ */
7
14
  class LocalCloud extends cloud_1.Cloud {
15
+ /**
16
+ * Constructor for LocalCloud
17
+ * @param params the parameters to create the LocalCloud
18
+ * @param params.job the job data
19
+ * @param params.chain the blockchain to execute the job on, can be any blockchain, not only local
20
+ * @param params.cache the cache folder
21
+ * @param params.stepId the step id
22
+ * @param params.localWorker the worker to execute the tasks
23
+ */
8
24
  constructor(params) {
9
25
  const { job, chain, cache, stepId, localWorker } = params;
10
26
  const { id, jobId, developer, repo, task, userId, args, metadata, taskId } = job;
@@ -25,6 +41,10 @@ class LocalCloud extends cloud_1.Cloud {
25
41
  });
26
42
  this.localWorker = localWorker;
27
43
  }
44
+ /**
45
+ * Provides the deployer key pair for testing and development
46
+ * @returns the deployer key pair
47
+ */
28
48
  async getDeployer() {
29
49
  const privateKey = process.env.DEPLOYER_PRIVATE_KEY;
30
50
  const publicKey = process.env.DEPLOYER_PUBLIC_KEY;
@@ -41,35 +61,68 @@ class LocalCloud extends cloud_1.Cloud {
41
61
  return undefined;
42
62
  }
43
63
  }
64
+ /**
65
+ * Releases the deployer key pair
66
+ */
44
67
  async releaseDeployer(params) {
45
68
  console.log("LocalCloud: releaseDeployer", params);
46
69
  }
47
- async log(msg) {
48
- console.log("LocalCloud:", msg);
49
- }
70
+ /**
71
+ * Gets the data by key
72
+ * @param key the key to get the data
73
+ * @returns the data
74
+ */
50
75
  async getDataByKey(key) {
51
76
  const value = LocalStorage.data[key];
52
77
  return value;
53
78
  }
79
+ /**
80
+ * Saves the data by key
81
+ * @param key the key to save the data
82
+ * @param value the value to save
83
+ */
54
84
  async saveDataByKey(key, value) {
55
85
  if (value !== undefined)
56
86
  LocalStorage.data[key] = value;
57
87
  else
58
88
  delete LocalStorage.data[key];
59
89
  }
90
+ /**
91
+ * Saves the file
92
+ * @param filename the filename to save
93
+ * @param value the value to save
94
+ */
60
95
  async saveFile(filename, value) {
61
96
  await (0, files_1.saveBinaryFile)({ data: value, filename });
62
97
  }
98
+ /**
99
+ * Loads the file
100
+ * @param filename
101
+ * @returns the file data
102
+ */
63
103
  async loadFile(filename) {
64
104
  const data = await (0, files_1.loadBinaryFile)(filename);
65
105
  return data;
66
106
  }
107
+ /**
108
+ * Loads the environment
109
+ * @param password
110
+ */
67
111
  async loadEnvironment(password) {
68
112
  throw new Error("Method not implemented.");
69
113
  }
114
+ /**
115
+ * Generates an id for local cloud
116
+ * @returns generated unique id
117
+ */
70
118
  static generateId() {
71
119
  return "local." + Date.now().toString() + "." + (0, utils_1.makeString)(32);
72
120
  }
121
+ /**
122
+ * Adds transactions to the local cloud
123
+ * @param transactions the transactions to add
124
+ * @returns the transaction ids
125
+ */
73
126
  static async addTransactions(transactions) {
74
127
  const timeReceived = Date.now();
75
128
  const txId = [];
@@ -80,6 +133,10 @@ class LocalCloud extends cloud_1.Cloud {
80
133
  });
81
134
  return txId;
82
135
  }
136
+ /**
137
+ * Deletes a transaction from the local cloud
138
+ * @param txId the transaction id to delete
139
+ */
83
140
  async deleteTransaction(txId) {
84
141
  if (LocalStorage.transactions[txId] === undefined)
85
142
  throw new Error(`deleteTransaction: Transaction ${txId} not found`);
@@ -96,6 +153,22 @@ class LocalCloud extends cloud_1.Cloud {
96
153
  });
97
154
  return txs;
98
155
  }
156
+ /**
157
+ * Runs the worker in the local cloud
158
+ * @param params the parameters to run the worker
159
+ * @param params.command the command to run
160
+ * @param params.data the data to use
161
+ * @param params.data.developer the developer of the repo
162
+ * @param params.data.repo the repo
163
+ * @param params.data.transactions the transactions to process
164
+ * @param params.data.task the task to execute
165
+ * @param params.data.userId the user id
166
+ * @param params.data.args the arguments for the job
167
+ * @param params.data.metadata the metadata for the job
168
+ * @param params.chain the blockchain to execute the job on
169
+ * @param params.localWorker the worker to execute the tasks
170
+ * @returns the job id
171
+ */
99
172
  static async run(params) {
100
173
  const { command, data, chain, localWorker } = params;
101
174
  const { developer, repo, transactions, task, userId, args, metadata } = data;
@@ -148,6 +221,16 @@ class LocalCloud extends cloud_1.Cloud {
148
221
  LocalStorage.jobs[jobId] = job;
149
222
  return jobId;
150
223
  }
224
+ /**
225
+ * Runs the recursive proof in the local cloud
226
+ * @param data the data to use
227
+ * @param data.transactions the transactions to process
228
+ * @param data.task the task to execute
229
+ * @param data.userId the user id
230
+ * @param data.args the arguments for the job
231
+ * @param data.metadata the metadata for the job
232
+ * @returns the job id
233
+ */
151
234
  async recursiveProof(data) {
152
235
  return await LocalCloud.run({
153
236
  command: "recursiveProof",
@@ -164,6 +247,16 @@ class LocalCloud extends cloud_1.Cloud {
164
247
  localWorker: this.localWorker,
165
248
  });
166
249
  }
250
+ /**
251
+ * Executes the task in the local cloud
252
+ * @param data the data to use
253
+ * @param data.transactions the transactions to process
254
+ * @param data.task the task to execute
255
+ * @param data.userId the user id
256
+ * @param data.args the arguments for the job
257
+ * @param data.metadata the metadata for the job
258
+ * @returns the job id
259
+ */
167
260
  async execute(data) {
168
261
  return await LocalCloud.run({
169
262
  command: "execute",
@@ -180,9 +273,24 @@ class LocalCloud extends cloud_1.Cloud {
180
273
  localWorker: this.localWorker,
181
274
  });
182
275
  }
276
+ /**
277
+ * Gets the job result
278
+ * @param jobId the job id
279
+ * @returns the job data
280
+ */
183
281
  async jobResult(jobId) {
184
282
  return LocalStorage.jobs[jobId];
185
283
  }
284
+ /**
285
+ * Adds a task to the local cloud
286
+ * @param data the data to use
287
+ * @param data.task the task to execute
288
+ * @param data.startTime the start time for the task
289
+ * @param data.userId the user id
290
+ * @param data.args the arguments for the job
291
+ * @param data.metadata the metadata for the job
292
+ * @returns the task id
293
+ */
186
294
  async addTask(data) {
187
295
  const taskId = LocalCloud.generateId();
188
296
  LocalStorage.tasks[taskId] = {
@@ -196,11 +304,18 @@ class LocalCloud extends cloud_1.Cloud {
196
304
  };
197
305
  return taskId;
198
306
  }
307
+ /**
308
+ * Deletes a task from the local cloud
309
+ * @param taskId the task id to delete
310
+ */
199
311
  async deleteTask(taskId) {
200
312
  if (LocalStorage.tasks[taskId] === undefined)
201
313
  throw new Error(`deleteTask: Task ${taskId} not found`);
202
314
  delete LocalStorage.tasks[taskId];
203
315
  }
316
+ /**
317
+ * Processes the tasks in the local cloud
318
+ */
204
319
  async processTasks() {
205
320
  await LocalCloud.processLocalTasks({
206
321
  developer: this.developer,
@@ -209,6 +324,14 @@ class LocalCloud extends cloud_1.Cloud {
209
324
  chain: this.chain,
210
325
  });
211
326
  }
327
+ /**
328
+ * Processes the local tasks
329
+ * @param params the parameters to process the local tasks
330
+ * @param params.developer the developer of the repo
331
+ * @param params.repo the repo
332
+ * @param params.localWorker the worker to execute the tasks
333
+ * @param params.chain the blockchain to execute the job on
334
+ */
212
335
  static async processLocalTasks(params) {
213
336
  const { developer, repo, localWorker, chain } = params;
214
337
  for (const taskId in LocalStorage.tasks) {
@@ -258,6 +381,20 @@ class LocalCloud extends cloud_1.Cloud {
258
381
  count++;
259
382
  return count;
260
383
  }
384
+ /**
385
+ * Runs the sequencer in the local cloud
386
+ * @param params the parameters to run the sequencer
387
+ * @param params.worker the worker to execute the tasks
388
+ * @param params.data the data to use
389
+ * @param params.data.developer the developer of the repo
390
+ * @param params.data.repo the repo
391
+ * @param params.data.transactions the transactions to process
392
+ * @param params.data.task the task to execute
393
+ * @param params.data.userId the user id
394
+ * @param params.data.args the arguments for the job
395
+ * @param params.data.metadata the metadata for the job
396
+ * @returns the proof
397
+ */
261
398
  static async sequencer(params) {
262
399
  const { worker, data } = params;
263
400
  const { transactions } = data;
@@ -281,7 +418,20 @@ class LocalCloud extends cloud_1.Cloud {
281
418
  }
282
419
  }
283
420
  exports.LocalCloud = LocalCloud;
421
+ /**
422
+ * LocalStorage is a local storage for the local cloud
423
+ * It stores jobs, tasks, transactions, and data
424
+ * It can be used to test the cloud functionality without deploying to the cloud
425
+ * @param jobs the jobs
426
+ * @param data the data
427
+ * @param transactions the transactions
428
+ * @param tasks the tasks
429
+ */
284
430
  class LocalStorage {
431
+ /**
432
+ * Saves the data
433
+ * @param name the name to save the data
434
+ */
285
435
  static async saveData(name) {
286
436
  const data = {
287
437
  jobs: LocalStorage.jobs,
@@ -292,6 +442,10 @@ class LocalStorage {
292
442
  const filename = name + ".cloud";
293
443
  await (0, files_1.saveFile)({ data, filename });
294
444
  }
445
+ /**
446
+ * Loads the data
447
+ * @param name the name to load the data
448
+ */
295
449
  static async loadData(name) {
296
450
  const filename = name + ".cloud";
297
451
  const data = await (0, files_1.loadFile)(filename);
@@ -1,4 +1,22 @@
1
1
  import { blockchain } from "../networks";
2
+ /**
3
+ * TaskData is the data structure for a task, keeping track of the task status, result, logs, and metadata
4
+ * @param id the id of the user
5
+ * @param taskId the id of the task
6
+ *
7
+ * @param startTime the time the task was started
8
+ * @param timeCreated the time the task was created
9
+ * @param maxAttempts the maximum number of attempts
10
+ * @param attempts the number of attempts
11
+ *
12
+ * @param developer the developer of the repo executing the task
13
+ * @param repo the repo executing the task
14
+ * @param task the task to execute
15
+ * @param userId the id of the user
16
+ * @param args the arguments for the task
17
+ * @param metadata the metadata for the task
18
+ * @param chain the blockchain to execute the task on
19
+ */
2
20
  export interface TaskData {
3
21
  id: string;
4
22
  taskId: string;
@@ -1,5 +1,25 @@
1
1
  export { blockchain, MinaNetwork, networks, Mainnet, Devnet, Zeko, Lightnet, Local, };
2
+ /**
3
+ * blockchain is the type for the chain id
4
+ * @param local the local chain id
5
+ * @param devnet the devnet chain id
6
+ * @param lightnet the lightnet chain id
7
+ * @param mainnet the mainnet chain id
8
+ * @param zeko the zeko chain id
9
+ * @param mainnet the mainnet chain id
10
+ */
2
11
  type blockchain = "local" | "devnet" | "lightnet" | "mainnet" | "zeko" | "mainnet";
12
+ /**
13
+ * MinaNetwork is the data structure for a Mina network, keeping track of the mina and archive endpoints, chain id, name, account manager, explorer account url, explorer transaction url, and faucet
14
+ * @param mina the mina endpoints
15
+ * @param archive the archive endpoints
16
+ * @param chainId the chain id
17
+ * @param name the name of the network
18
+ * @param accountManager the account manager for Lightnet
19
+ * @param explorerAccountUrl the explorer account url
20
+ * @param explorerTransactionUrl the explorer transaction url
21
+ * @param faucet the faucet url
22
+ */
3
23
  interface MinaNetwork {
4
24
  mina: string[];
5
25
  archive: string[];
@@ -1,2 +1,6 @@
1
1
  import { UInt64 } from "o1js";
2
+ /**
3
+ * Calculate the fee for a transaction
4
+ * @returns the fee for a transaction
5
+ */
2
6
  export declare function fee(): Promise<UInt64>;
@@ -6,8 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.fee = void 0;
7
7
  const o1js_1 = require("o1js");
8
8
  const config_1 = __importDefault(require("../config"));
9
+ /**
10
+ * Calculate the fee for a transaction
11
+ * @returns the fee for a transaction
12
+ */
9
13
  async function fee() {
10
- //TODO: update after mainnet launch
14
+ //TODO: update after mainnet launch and resolution of the issue https://github.com/o1-labs/o1js/issues/1626
11
15
  return o1js_1.UInt64.fromJSON(config_1.default.MINAFEE);
12
16
  }
13
17
  exports.fee = fee;
@@ -1,4 +1,12 @@
1
1
  import { PublicKey, Field } from "o1js";
2
+ /**
3
+ * Fetches the Mina account for a given public key with error handling
4
+ * @param params the parameters for fetching the account
5
+ * @param params.publicKey the public key of the account
6
+ * @param params.tokenId the token id of the account
7
+ * @param params.force whether to force the fetch - use it only if you are sure the account exists
8
+ * @returns the account object
9
+ */
2
10
  export declare function fetchMinaAccount(params: {
3
11
  publicKey: string | PublicKey;
4
12
  tokenId?: string | Field | undefined;
@@ -9,10 +17,22 @@ export declare function fetchMinaAccount(params: {
9
17
  account: import("o1js/dist/node/bindings/mina-transaction/gen/transaction").Account;
10
18
  error: undefined;
11
19
  }>;
20
+ /**
21
+ * Fetches the Mina actions for a given public key with error handling
22
+ * @param publicKey the public key of the contract
23
+ * @param fromActionState the starting action state
24
+ * @param endActionState the ending action state
25
+ * @returns the actions array
26
+ */
12
27
  export declare function fetchMinaActions(publicKey: PublicKey, fromActionState: Field, endActionState?: Field): Promise<{
13
28
  actions: string[][];
14
29
  hash: string;
15
30
  }[] | undefined>;
31
+ /**
32
+ * Fetches the Mina transaction for a given hash with error handling
33
+ * @param hash the hash of the transaction
34
+ * @returns the transaction object
35
+ */
16
36
  export declare function checkMinaZkappTransaction(hash: string): Promise<{
17
37
  success: boolean;
18
38
  failureReason: string[][][];
@@ -3,6 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkMinaZkappTransaction = exports.fetchMinaActions = exports.fetchMinaAccount = void 0;
4
4
  const o1js_1 = require("o1js");
5
5
  const utils_1 = require("./utils");
6
+ /**
7
+ * Fetches the Mina account for a given public key with error handling
8
+ * @param params the parameters for fetching the account
9
+ * @param params.publicKey the public key of the account
10
+ * @param params.tokenId the token id of the account
11
+ * @param params.force whether to force the fetch - use it only if you are sure the account exists
12
+ * @returns the account object
13
+ */
6
14
  async function fetchMinaAccount(params) {
7
15
  const { publicKey, tokenId, force } = params;
8
16
  const timeout = 1000 * 60 * 2; // 2 minutes
@@ -48,6 +56,13 @@ async function fetchMinaAccount(params) {
48
56
  return result;
49
57
  }
50
58
  exports.fetchMinaAccount = fetchMinaAccount;
59
+ /**
60
+ * Fetches the Mina actions for a given public key with error handling
61
+ * @param publicKey the public key of the contract
62
+ * @param fromActionState the starting action state
63
+ * @param endActionState the ending action state
64
+ * @returns the actions array
65
+ */
51
66
  async function fetchMinaActions(publicKey, fromActionState, endActionState) {
52
67
  const timeout = 1000 * 60 * 600; // 10 hours
53
68
  const startTime = Date.now();
@@ -71,6 +86,11 @@ async function fetchMinaActions(publicKey, fromActionState, endActionState) {
71
86
  return undefined;
72
87
  }
73
88
  exports.fetchMinaActions = fetchMinaActions;
89
+ /**
90
+ * Fetches the Mina transaction for a given hash with error handling
91
+ * @param hash the hash of the transaction
92
+ * @returns the transaction object
93
+ */
74
94
  async function checkMinaZkappTransaction(hash) {
75
95
  try {
76
96
  const result = await (0, o1js_1.checkZkappTransaction)(hash);
@@ -1,3 +1,13 @@
1
1
  import { Field } from "o1js";
2
+ /**
3
+ * Serialize fields to a string using base64 URL-friendly encoding
4
+ * @param fields the fields array to serialize
5
+ * @returns the serialized string
6
+ */
2
7
  export declare function serializeFields(fields: Field[]): string;
8
+ /**
9
+ * Deserialize fields from a string using base64 URL-friendly encoding
10
+ * @param s the string to deserialize
11
+ * @returns the deserialized fields array
12
+ */
3
13
  export declare function deserializeFields(s: string): Field[];