@silvana-one/mina-prover 0.2.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/LICENSE +201 -0
- package/README.md +1 -0
- package/dist/node/api/api.d.ts +211 -0
- package/dist/node/api/api.js +472 -0
- package/dist/node/api/api.js.map +1 -0
- package/dist/node/index.cjs +1161 -0
- package/dist/node/index.d.ts +4 -0
- package/dist/node/index.js +5 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/local/local.d.ts +292 -0
- package/dist/node/local/local.js +528 -0
- package/dist/node/local/local.js.map +1 -0
- package/dist/node/tokens/index.d.ts +2 -0
- package/dist/node/tokens/index.js +3 -0
- package/dist/node/tokens/index.js.map +1 -0
- package/dist/node/tokens/nft.d.ts +29 -0
- package/dist/node/tokens/nft.js +107 -0
- package/dist/node/tokens/nft.js.map +1 -0
- package/dist/node/tokens/token.d.ts +29 -0
- package/dist/node/tokens/token.js +99 -0
- package/dist/node/tokens/token.js.map +1 -0
- package/dist/node/verification/index.d.ts +1 -0
- package/dist/node/verification/index.js +2 -0
- package/dist/node/verification/index.js.map +1 -0
- package/dist/node/verification/verification.d.ts +21 -0
- package/dist/node/verification/verification.js +2 -0
- package/dist/node/verification/verification.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/tsconfig.web.tsbuildinfo +1 -0
- package/dist/web/api/api.d.ts +211 -0
- package/dist/web/api/api.js +472 -0
- package/dist/web/api/api.js.map +1 -0
- package/dist/web/index.d.ts +4 -0
- package/dist/web/index.js +5 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/local/local.d.ts +292 -0
- package/dist/web/local/local.js +528 -0
- package/dist/web/local/local.js.map +1 -0
- package/dist/web/tokens/index.d.ts +2 -0
- package/dist/web/tokens/index.js +3 -0
- package/dist/web/tokens/index.js.map +1 -0
- package/dist/web/tokens/nft.d.ts +29 -0
- package/dist/web/tokens/nft.js +107 -0
- package/dist/web/tokens/nft.js.map +1 -0
- package/dist/web/tokens/token.d.ts +29 -0
- package/dist/web/tokens/token.js +99 -0
- package/dist/web/tokens/token.js.map +1 -0
- package/dist/web/verification/index.d.ts +1 -0
- package/dist/web/verification/index.js +2 -0
- package/dist/web/verification/index.js.map +1 -0
- package/dist/web/verification/verification.d.ts +21 -0
- package/dist/web/verification/verification.js +2 -0
- package/dist/web/verification/verification.js.map +1 -0
- package/package.json +68 -0
- package/src/api/api.ts +613 -0
- package/src/index.ts +4 -0
- package/src/local/local.ts +651 -0
- package/src/tokens/index.ts +2 -0
- package/src/tokens/nft.ts +147 -0
- package/src/tokens/token.ts +140 -0
- package/src/verification/index.ts +1 -0
- package/src/verification/verification.ts +23 -0
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
import { Cloud, } from "@silvana-one/prover";
|
|
2
|
+
import { makeString } from "@silvana-one/mina-utils";
|
|
3
|
+
/**
|
|
4
|
+
* LocalCloud is a cloud that runs on the local machine for testing and development
|
|
5
|
+
* It uses LocalStorage to store jobs, tasks, transactions, and data
|
|
6
|
+
* It uses a localWorker to execute the tasks
|
|
7
|
+
* It can be used to test the cloud functionality without deploying to the cloud
|
|
8
|
+
* @param localWorker the worker to execute the tasks
|
|
9
|
+
*/
|
|
10
|
+
export class LocalCloud extends Cloud {
|
|
11
|
+
/**
|
|
12
|
+
* Constructor for LocalCloud
|
|
13
|
+
* @param params the parameters to create the LocalCloud
|
|
14
|
+
* @param params.job the job data
|
|
15
|
+
* @param params.chain the blockchain to execute the job on, can be any blockchain, not only local
|
|
16
|
+
* @param params.cache the cache folder
|
|
17
|
+
* @param params.stepId the step id
|
|
18
|
+
* @param params.localWorker the worker to execute the tasks
|
|
19
|
+
*/
|
|
20
|
+
constructor(params) {
|
|
21
|
+
const { job, chain, cache, stepId, localWorker } = params;
|
|
22
|
+
const { id, jobId, developer, repo, task, userId, args, metadata, taskId } = job;
|
|
23
|
+
super({
|
|
24
|
+
id: id,
|
|
25
|
+
jobId: jobId,
|
|
26
|
+
stepId: stepId ?? "stepId",
|
|
27
|
+
taskId: taskId ?? "taskId",
|
|
28
|
+
cache: cache ?? "./cache",
|
|
29
|
+
developer: developer,
|
|
30
|
+
repo: repo,
|
|
31
|
+
task: task,
|
|
32
|
+
userId: userId,
|
|
33
|
+
args: args,
|
|
34
|
+
metadata: metadata,
|
|
35
|
+
isLocalCloud: true,
|
|
36
|
+
chain,
|
|
37
|
+
});
|
|
38
|
+
this.localWorker = localWorker;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Provides the deployer key pair for testing and development
|
|
42
|
+
* @returns the deployer key pair
|
|
43
|
+
*/
|
|
44
|
+
async getDeployer() {
|
|
45
|
+
const privateKey = process.env.DEPLOYER_PRIVATE_KEY;
|
|
46
|
+
const publicKey = process.env.DEPLOYER_PUBLIC_KEY;
|
|
47
|
+
try {
|
|
48
|
+
return privateKey === undefined || publicKey === undefined
|
|
49
|
+
? undefined
|
|
50
|
+
: {
|
|
51
|
+
privateKey,
|
|
52
|
+
publicKey,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error(`getDeployer: error getting deployer key pair: ${error}`, error);
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Releases the deployer key pair
|
|
62
|
+
*/
|
|
63
|
+
async releaseDeployer(params) {
|
|
64
|
+
console.log("LocalCloud: releaseDeployer", params);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Gets the data by key
|
|
68
|
+
* @param key the key to get the data
|
|
69
|
+
* @returns the data
|
|
70
|
+
*/
|
|
71
|
+
async getDataByKey(key) {
|
|
72
|
+
const value = LocalStorage.data[key];
|
|
73
|
+
return value;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Saves the data by key
|
|
77
|
+
* @param key the key to save the data
|
|
78
|
+
* @param value the value to save
|
|
79
|
+
*/
|
|
80
|
+
async saveDataByKey(key, value) {
|
|
81
|
+
if (value !== undefined)
|
|
82
|
+
LocalStorage.data[key] = value;
|
|
83
|
+
else
|
|
84
|
+
delete LocalStorage.data[key];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Saves the file
|
|
88
|
+
* @param filename the filename to save
|
|
89
|
+
* @param value the value to save
|
|
90
|
+
*/
|
|
91
|
+
async saveFile(filename, value) {
|
|
92
|
+
LocalStorage.files[filename] = value;
|
|
93
|
+
//throw new Error("Method not implemented.");
|
|
94
|
+
//await saveBinaryFile({ data: value, filename });
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Loads the file
|
|
98
|
+
* @param filename
|
|
99
|
+
* @returns the file data
|
|
100
|
+
*/
|
|
101
|
+
async loadFile(filename) {
|
|
102
|
+
return LocalStorage.files[filename];
|
|
103
|
+
//throw new Error("Method not implemented.");
|
|
104
|
+
//const data = await loadBinaryFile(filename);
|
|
105
|
+
//return data;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Encrypts the data
|
|
109
|
+
* @param params
|
|
110
|
+
* @param params.data the data
|
|
111
|
+
* @param params.context the context
|
|
112
|
+
* @param params.keyId the key id, optional
|
|
113
|
+
* @returns encrypted data
|
|
114
|
+
*/
|
|
115
|
+
async encrypt(params) {
|
|
116
|
+
return JSON.stringify(params);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Decrypts the data
|
|
120
|
+
* @param params
|
|
121
|
+
* @param params.data the data
|
|
122
|
+
* @param params.context the context
|
|
123
|
+
* @param params.keyId the key id, optional
|
|
124
|
+
* @returns
|
|
125
|
+
*/
|
|
126
|
+
async decrypt(params) {
|
|
127
|
+
const { data, context, keyId } = JSON.parse(params.data);
|
|
128
|
+
if (context !== params.context) {
|
|
129
|
+
console.error("decrypt: context mismatch");
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
if (keyId !== params.keyId) {
|
|
133
|
+
console.error("decrypt: keyId mismatch");
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
return data;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Generates an id for local cloud
|
|
140
|
+
* @returns generated unique id
|
|
141
|
+
*/
|
|
142
|
+
static generateId(tx = undefined) {
|
|
143
|
+
//const data =
|
|
144
|
+
// tx ?? JSON.stringify({ time: Date.now(), data: makeString(32) });
|
|
145
|
+
//return stringHash(data);
|
|
146
|
+
return Date.now() + "." + makeString(32);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Send transactions to the local cloud
|
|
150
|
+
* @param transactions the transactions to add
|
|
151
|
+
* @returns the transaction ids
|
|
152
|
+
*/
|
|
153
|
+
async sendTransactions(transactions) {
|
|
154
|
+
return await LocalCloud.addTransactions(transactions);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Adds transactions to the local cloud
|
|
158
|
+
* @param transactions the transactions to add
|
|
159
|
+
* @returns the transaction ids
|
|
160
|
+
*/
|
|
161
|
+
static async addTransactions(transactions) {
|
|
162
|
+
const timeReceived = Date.now();
|
|
163
|
+
const txs = [];
|
|
164
|
+
transactions.forEach((tx) => {
|
|
165
|
+
if (typeof tx === "string") {
|
|
166
|
+
const txId = LocalCloud.generateId(JSON.stringify({ tx, time: timeReceived }));
|
|
167
|
+
const transaction = {
|
|
168
|
+
txId,
|
|
169
|
+
transaction: tx,
|
|
170
|
+
timeReceived,
|
|
171
|
+
status: "accepted",
|
|
172
|
+
};
|
|
173
|
+
LocalStorage.transactions[txId] = transaction;
|
|
174
|
+
txs.push(transaction);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
LocalStorage.transactions[tx.txId] = tx;
|
|
178
|
+
txs.push(tx);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
return txs;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Deletes a transaction from the local cloud
|
|
185
|
+
* @param txId the transaction id to delete
|
|
186
|
+
*/
|
|
187
|
+
async deleteTransaction(txId) {
|
|
188
|
+
if (LocalStorage.transactions[txId] === undefined)
|
|
189
|
+
throw new Error(`deleteTransaction: Transaction ${txId} not found`);
|
|
190
|
+
delete LocalStorage.transactions[txId];
|
|
191
|
+
}
|
|
192
|
+
async getTransactions() {
|
|
193
|
+
const txs = Object.keys(LocalStorage.transactions).map((txId) => {
|
|
194
|
+
return LocalStorage.transactions[txId];
|
|
195
|
+
});
|
|
196
|
+
return txs;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Publish the transaction metadata in human-readable format
|
|
200
|
+
* @param params
|
|
201
|
+
* @param params.txId the transaction id
|
|
202
|
+
* @param params.metadata the metadata
|
|
203
|
+
*/
|
|
204
|
+
async publishTransactionMetadata(params) {
|
|
205
|
+
console.log("publishTransactionMetadata:", params);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Runs the worker in the local cloud
|
|
209
|
+
* @param params the parameters to run the worker
|
|
210
|
+
* @param params.command the command to run
|
|
211
|
+
* @param params.data the data to use
|
|
212
|
+
* @param params.chain the blockchain to execute the job on
|
|
213
|
+
* @param params.localWorker the worker to execute the tasks
|
|
214
|
+
* @returns the job id
|
|
215
|
+
*/
|
|
216
|
+
static async run(params) {
|
|
217
|
+
const { command, data, chain, localWorker } = params;
|
|
218
|
+
const { developer, repo, transactions, task, userId, args, metadata } = data;
|
|
219
|
+
const timeCreated = Date.now();
|
|
220
|
+
const jobId = LocalCloud.generateId();
|
|
221
|
+
const job = {
|
|
222
|
+
id: "local",
|
|
223
|
+
jobId,
|
|
224
|
+
developer,
|
|
225
|
+
repo,
|
|
226
|
+
task,
|
|
227
|
+
userId,
|
|
228
|
+
args,
|
|
229
|
+
metadata,
|
|
230
|
+
txNumber: command === "recursiveProof" ? transactions.length : 1,
|
|
231
|
+
timeCreated,
|
|
232
|
+
timeStarted: timeCreated,
|
|
233
|
+
chain,
|
|
234
|
+
};
|
|
235
|
+
const cloud = new LocalCloud({
|
|
236
|
+
job,
|
|
237
|
+
chain,
|
|
238
|
+
localWorker,
|
|
239
|
+
});
|
|
240
|
+
const worker = await localWorker(cloud);
|
|
241
|
+
if (worker === undefined)
|
|
242
|
+
throw new Error("worker is undefined");
|
|
243
|
+
const result = command === "recursiveProof"
|
|
244
|
+
? await LocalCloud.sequencer({
|
|
245
|
+
worker,
|
|
246
|
+
data,
|
|
247
|
+
})
|
|
248
|
+
: command === "execute"
|
|
249
|
+
? await worker.execute(transactions)
|
|
250
|
+
: undefined;
|
|
251
|
+
const timeFinished = Date.now();
|
|
252
|
+
if (result !== undefined) {
|
|
253
|
+
LocalStorage.jobEvents[jobId] = {
|
|
254
|
+
jobId,
|
|
255
|
+
jobStatus: "finished",
|
|
256
|
+
eventTime: timeFinished,
|
|
257
|
+
result,
|
|
258
|
+
};
|
|
259
|
+
job.timeFinished = timeFinished;
|
|
260
|
+
job.jobStatus = "finished";
|
|
261
|
+
job.result = result;
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
LocalStorage.jobEvents[jobId] = {
|
|
265
|
+
jobId,
|
|
266
|
+
jobStatus: "failed",
|
|
267
|
+
eventTime: timeFinished,
|
|
268
|
+
};
|
|
269
|
+
job.timeFailed = timeFinished;
|
|
270
|
+
job.jobStatus = "failed";
|
|
271
|
+
}
|
|
272
|
+
job.billedDuration = timeFinished - timeCreated;
|
|
273
|
+
LocalStorage.jobs[jobId] = job;
|
|
274
|
+
return jobId;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Runs the recursive proof in the local cloud
|
|
278
|
+
* @param data the data to use
|
|
279
|
+
* @param data.transactions the transactions to process
|
|
280
|
+
* @param data.task the task to execute
|
|
281
|
+
* @param data.userId the user id
|
|
282
|
+
* @param data.args the arguments for the job
|
|
283
|
+
* @param data.metadata the metadata for the job
|
|
284
|
+
* @returns the job id
|
|
285
|
+
*/
|
|
286
|
+
async recursiveProof(data) {
|
|
287
|
+
return await LocalCloud.run({
|
|
288
|
+
command: "recursiveProof",
|
|
289
|
+
data: {
|
|
290
|
+
developer: this.developer,
|
|
291
|
+
repo: this.repo,
|
|
292
|
+
transactions: data.transactions,
|
|
293
|
+
task: data.task ?? "recursiveProof",
|
|
294
|
+
userId: data.userId,
|
|
295
|
+
args: data.args,
|
|
296
|
+
metadata: data.metadata,
|
|
297
|
+
},
|
|
298
|
+
chain: this.chain,
|
|
299
|
+
localWorker: this.localWorker,
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Executes the task in the local cloud
|
|
304
|
+
* @param data the data to use
|
|
305
|
+
* @param data.transactions the transactions to process
|
|
306
|
+
* @param data.task the task to execute
|
|
307
|
+
* @param data.userId the user id
|
|
308
|
+
* @param data.args the arguments for the job
|
|
309
|
+
* @param data.metadata the metadata for the job
|
|
310
|
+
* @returns the job id
|
|
311
|
+
*/
|
|
312
|
+
async execute(data) {
|
|
313
|
+
return await LocalCloud.run({
|
|
314
|
+
command: "execute",
|
|
315
|
+
data: {
|
|
316
|
+
developer: this.developer,
|
|
317
|
+
repo: this.repo,
|
|
318
|
+
transactions: data.transactions,
|
|
319
|
+
task: data.task,
|
|
320
|
+
userId: data.userId,
|
|
321
|
+
args: data.args,
|
|
322
|
+
metadata: data.metadata,
|
|
323
|
+
},
|
|
324
|
+
chain: this.chain,
|
|
325
|
+
localWorker: this.localWorker,
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Gets the job result
|
|
330
|
+
* @param jobId the job id
|
|
331
|
+
* @returns the job data
|
|
332
|
+
*/
|
|
333
|
+
async jobResult(jobId) {
|
|
334
|
+
return LocalStorage.jobs[jobId];
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Adds a task to the local cloud
|
|
338
|
+
* @param data the data to use
|
|
339
|
+
* @param data.task the task to execute
|
|
340
|
+
* @param data.startTime the start time for the task
|
|
341
|
+
* @param data.userId the user id
|
|
342
|
+
* @param data.args the arguments for the job
|
|
343
|
+
* @param data.metadata the metadata for the job
|
|
344
|
+
* @returns the task id
|
|
345
|
+
*/
|
|
346
|
+
async addTask(data) {
|
|
347
|
+
const taskId = LocalCloud.generateId();
|
|
348
|
+
LocalStorage.tasks[taskId] = {
|
|
349
|
+
...data,
|
|
350
|
+
id: "local",
|
|
351
|
+
taskId,
|
|
352
|
+
timeCreated: Date.now(),
|
|
353
|
+
developer: this.developer,
|
|
354
|
+
repo: this.repo,
|
|
355
|
+
chain: this.chain,
|
|
356
|
+
};
|
|
357
|
+
return taskId;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Deletes a task from the local cloud
|
|
361
|
+
* @param taskId the task id to delete
|
|
362
|
+
*/
|
|
363
|
+
async deleteTask(taskId) {
|
|
364
|
+
if (LocalStorage.tasks[taskId] === undefined)
|
|
365
|
+
throw new Error(`deleteTask: Task ${taskId} not found`);
|
|
366
|
+
delete LocalStorage.tasks[taskId];
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Processes the tasks in the local cloud
|
|
370
|
+
*/
|
|
371
|
+
async processTasks() {
|
|
372
|
+
await LocalCloud.processLocalTasks({
|
|
373
|
+
developer: this.developer,
|
|
374
|
+
repo: this.repo,
|
|
375
|
+
localWorker: this.localWorker,
|
|
376
|
+
chain: this.chain,
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Processes the local tasks
|
|
381
|
+
* @param params the parameters to process the local tasks
|
|
382
|
+
* @param params.developer the developer of the repo
|
|
383
|
+
* @param params.repo the repo
|
|
384
|
+
* @param params.localWorker the worker to execute the tasks
|
|
385
|
+
* @param params.chain the blockchain to execute the job on
|
|
386
|
+
*/
|
|
387
|
+
static async processLocalTasks(params) {
|
|
388
|
+
const { developer, repo, localWorker, chain } = params;
|
|
389
|
+
for (const taskId in LocalStorage.tasks) {
|
|
390
|
+
const data = LocalStorage.tasks[taskId];
|
|
391
|
+
const jobId = LocalCloud.generateId();
|
|
392
|
+
const timeCreated = Date.now();
|
|
393
|
+
if (data.startTime !== undefined && data.startTime < timeCreated)
|
|
394
|
+
continue;
|
|
395
|
+
const job = {
|
|
396
|
+
id: "local",
|
|
397
|
+
jobId: jobId,
|
|
398
|
+
taskId: taskId,
|
|
399
|
+
developer,
|
|
400
|
+
repo,
|
|
401
|
+
task: data.task,
|
|
402
|
+
userId: data.userId,
|
|
403
|
+
args: data.args,
|
|
404
|
+
metadata: data.metadata,
|
|
405
|
+
txNumber: 1,
|
|
406
|
+
timeCreated: timeCreated,
|
|
407
|
+
};
|
|
408
|
+
const cloud = new LocalCloud({
|
|
409
|
+
job,
|
|
410
|
+
chain,
|
|
411
|
+
localWorker,
|
|
412
|
+
});
|
|
413
|
+
const worker = await localWorker(cloud);
|
|
414
|
+
const result = await worker.task();
|
|
415
|
+
const timeFinished = Date.now();
|
|
416
|
+
if (result !== undefined) {
|
|
417
|
+
LocalStorage.jobEvents[jobId] = {
|
|
418
|
+
jobId,
|
|
419
|
+
jobStatus: "finished",
|
|
420
|
+
eventTime: timeFinished,
|
|
421
|
+
result,
|
|
422
|
+
};
|
|
423
|
+
job.timeFinished = timeFinished;
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
LocalStorage.jobEvents[jobId] = {
|
|
427
|
+
jobId,
|
|
428
|
+
jobStatus: "failed",
|
|
429
|
+
eventTime: timeFinished,
|
|
430
|
+
};
|
|
431
|
+
job.timeFailed = timeFinished;
|
|
432
|
+
}
|
|
433
|
+
job.billedDuration = timeFinished - timeCreated;
|
|
434
|
+
LocalStorage.jobs[jobId] = job;
|
|
435
|
+
}
|
|
436
|
+
let count = 0;
|
|
437
|
+
for (const task in LocalStorage.tasks)
|
|
438
|
+
count++;
|
|
439
|
+
return count;
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Runs the sequencer in the local cloud
|
|
443
|
+
* @param params the parameters to run the sequencer
|
|
444
|
+
* @param params.worker the worker to execute the tasks
|
|
445
|
+
* @param params.data the data to use
|
|
446
|
+
* @returns the proof
|
|
447
|
+
*/
|
|
448
|
+
static async sequencer(params) {
|
|
449
|
+
const { worker, data } = params;
|
|
450
|
+
const { transactions } = data;
|
|
451
|
+
if (transactions.length === 0)
|
|
452
|
+
throw new Error("No transactions to process");
|
|
453
|
+
const proofs = [];
|
|
454
|
+
for (const transaction of transactions) {
|
|
455
|
+
const result = await worker.create(transaction);
|
|
456
|
+
if (result === undefined)
|
|
457
|
+
throw new Error("Failed to create proof");
|
|
458
|
+
proofs.push(result);
|
|
459
|
+
}
|
|
460
|
+
let proof = proofs[0];
|
|
461
|
+
for (let i = 1; i < proofs.length; i++) {
|
|
462
|
+
const result = await worker.merge(proof, proofs[i]);
|
|
463
|
+
if (result === undefined)
|
|
464
|
+
throw new Error("Failed to merge proofs");
|
|
465
|
+
proof = result;
|
|
466
|
+
}
|
|
467
|
+
return proof;
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* forces the worker to restart
|
|
471
|
+
*/
|
|
472
|
+
async forceWorkerRestart() {
|
|
473
|
+
throw new Error("forceWorkerRestart called in LocalCloud");
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* LocalStorage is a local storage for the local cloud.
|
|
478
|
+
* It stores jobs, tasks, transactions, and data.
|
|
479
|
+
* It can be used to test the cloud functionality without deploying to the cloud.
|
|
480
|
+
*/
|
|
481
|
+
export class LocalStorage {
|
|
482
|
+
/** The jobs */
|
|
483
|
+
static { this.jobs = {}; }
|
|
484
|
+
/** The job events */
|
|
485
|
+
static { this.jobEvents = {}; }
|
|
486
|
+
/** The data */
|
|
487
|
+
static { this.data = {}; }
|
|
488
|
+
/** The files */
|
|
489
|
+
static { this.files = {}; }
|
|
490
|
+
/** The transactions */
|
|
491
|
+
static { this.transactions = {}; }
|
|
492
|
+
/** The tasks */
|
|
493
|
+
static { this.tasks = {}; }
|
|
494
|
+
/**
|
|
495
|
+
* Saves the data.
|
|
496
|
+
* @param name The name to save the data under.
|
|
497
|
+
* @throws Error Method not implemented to keep web compatibility.
|
|
498
|
+
*/
|
|
499
|
+
static async saveData(name) {
|
|
500
|
+
throw new Error("Method not implemented to keep web compatibility.");
|
|
501
|
+
const data = {
|
|
502
|
+
jobs: LocalStorage.jobs,
|
|
503
|
+
data: LocalStorage.data,
|
|
504
|
+
transactions: LocalStorage.transactions,
|
|
505
|
+
tasks: LocalStorage.tasks,
|
|
506
|
+
};
|
|
507
|
+
const filename = name + ".cloud";
|
|
508
|
+
// await saveFile({ data, filename });
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Loads the data.
|
|
512
|
+
* @param name The name to load the data from.
|
|
513
|
+
* @throws Error Method not implemented to keep web compatibility.
|
|
514
|
+
*/
|
|
515
|
+
static async loadData(name) {
|
|
516
|
+
throw new Error("Method not implemented to keep web compatibility.");
|
|
517
|
+
const filename = name + ".cloud";
|
|
518
|
+
/*
|
|
519
|
+
const data = await loadFile(filename);
|
|
520
|
+
if (data === undefined) return;
|
|
521
|
+
LocalStorage.jobs = data.jobs;
|
|
522
|
+
LocalStorage.data = data.data;
|
|
523
|
+
LocalStorage.transactions = data.transactions;
|
|
524
|
+
LocalStorage.tasks = data.tasks;
|
|
525
|
+
*/
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
//# sourceMappingURL=local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/local/local.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { blockchain, Cloud, JobStatus, zkCloudWorker } from "@silvana-one/prover";
|
|
2
|
+
import { zkCloudWorkerClient } from "../api/api.js";
|
|
3
|
+
import { NftTransaction, JobResult } from "@silvana-one/api";
|
|
4
|
+
export declare class NftAPI {
|
|
5
|
+
readonly client: zkCloudWorkerClient;
|
|
6
|
+
constructor(params: {
|
|
7
|
+
jwt: string;
|
|
8
|
+
zkcloudworker?: (cloud: Cloud) => Promise<zkCloudWorker>;
|
|
9
|
+
chain: blockchain;
|
|
10
|
+
});
|
|
11
|
+
proveTransaction(params: NftTransaction): Promise<string | undefined>;
|
|
12
|
+
proveTransactions(params: NftTransaction[], name?: string): Promise<string | undefined>;
|
|
13
|
+
waitForJobResults(params: {
|
|
14
|
+
jobId: string;
|
|
15
|
+
maxAttempts?: number;
|
|
16
|
+
interval?: number;
|
|
17
|
+
maxErrors?: number;
|
|
18
|
+
printLogs?: boolean;
|
|
19
|
+
}): Promise<(string | undefined)[]>;
|
|
20
|
+
getResults(jobId: string): Promise<{
|
|
21
|
+
success: true;
|
|
22
|
+
results?: JobResult[];
|
|
23
|
+
jobStatus?: JobStatus;
|
|
24
|
+
} | {
|
|
25
|
+
success: false;
|
|
26
|
+
error?: string;
|
|
27
|
+
jobStatus?: JobStatus;
|
|
28
|
+
}>;
|
|
29
|
+
}
|