zkcloudworker 0.2.9 → 0.2.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.
- package/lib/ts/src/api/api.d.ts +2 -0
- package/lib/ts/src/api/api.js +6 -74
- package/lib/ts/src/cloud/cloud.d.ts +3 -2
- package/lib/ts/src/cloud/cloud.js +1 -1
- package/lib/ts/src/cloud/local.d.ts +18 -2
- package/lib/ts/src/cloud/local.js +66 -57
- package/lib/ts/src/mina.d.ts +2 -1
- package/lib/ts/src/mina.js +8 -1
- package/lib/ts/tsconfig.tsbuildinfo +1 -1
- package/lib/web/src/api/api.d.ts +2 -0
- package/lib/web/src/api/api.js +6 -74
- package/lib/web/src/api/api.js.map +1 -1
- package/lib/web/src/cloud/cloud.d.ts +3 -2
- package/lib/web/src/cloud/cloud.js +1 -1
- package/lib/web/src/cloud/cloud.js.map +1 -1
- package/lib/web/src/cloud/local.d.ts +18 -2
- package/lib/web/src/cloud/local.js +70 -58
- package/lib/web/src/cloud/local.js.map +1 -1
- package/lib/web/src/mina.d.ts +2 -1
- package/lib/web/src/mina.js +7 -1
- package/lib/web/src/mina.js.map +1 -1
- package/lib/web/tsconfig.web.tsbuildinfo +1 -1
- package/package.json +1 -1
package/lib/ts/src/api/api.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import { zkCloudWorker, Cloud } from "../cloud/cloud";
|
2
2
|
import { blockchain } from "../networks";
|
3
|
+
export type ApiCommand = "recursiveProof" | "execute" | "jobResult" | "deploy" | "queryBilling";
|
3
4
|
/**
|
4
5
|
* API class for interacting with the zkCloudWorker
|
5
6
|
* @property jwt The jwt token for authentication, get it at https://t.me/minanft_bot?start=auth
|
@@ -63,6 +64,7 @@ export declare class zkCloudWorkerClient {
|
|
63
64
|
execute(data: {
|
64
65
|
developer: string;
|
65
66
|
repo: string;
|
67
|
+
transactions: string[];
|
66
68
|
task: string;
|
67
69
|
userId?: string;
|
68
70
|
args?: string;
|
package/lib/ts/src/api/api.js
CHANGED
@@ -227,92 +227,24 @@ class zkCloudWorkerClient {
|
|
227
227
|
throw new Error("localWorker is undefined");
|
228
228
|
switch (command) {
|
229
229
|
case "recursiveProof": {
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
const job = {
|
234
|
-
id: "local",
|
235
|
-
jobId: jobId,
|
236
|
-
developer: data.developer,
|
237
|
-
repo: data.repo,
|
238
|
-
task: data.task,
|
239
|
-
userId: data.userId,
|
240
|
-
args: data.args,
|
241
|
-
metadata: data.metadata,
|
242
|
-
filename: "recursiveProof.json",
|
243
|
-
txNumber: data.transactions.length,
|
244
|
-
timeCreated,
|
245
|
-
timeCreatedString: new Date(timeCreated).toISOString(),
|
246
|
-
timeStarted: timeCreated,
|
247
|
-
jobStatus: "started",
|
248
|
-
maxAttempts: 0,
|
249
|
-
};
|
250
|
-
const cloud = new local_1.LocalCloud({
|
251
|
-
job,
|
230
|
+
const jobId = await local_1.LocalCloud.run({
|
231
|
+
command: "recursiveProof",
|
232
|
+
data,
|
252
233
|
chain: this.chain,
|
253
234
|
localWorker: this.localWorker,
|
254
235
|
});
|
255
|
-
const worker = await this.localWorker(cloud);
|
256
|
-
if (worker === undefined)
|
257
|
-
throw new Error("worker is undefined");
|
258
|
-
const proof = await local_1.LocalCloud.sequencer({
|
259
|
-
worker,
|
260
|
-
data,
|
261
|
-
});
|
262
|
-
job.timeFinished = Date.now();
|
263
|
-
job.maxAttempts = 1;
|
264
|
-
if (proof !== undefined) {
|
265
|
-
job.jobStatus = "finished";
|
266
|
-
job.result = proof;
|
267
|
-
}
|
268
|
-
else {
|
269
|
-
job.jobStatus = "failed";
|
270
|
-
}
|
271
|
-
local_1.LocalStorage.jobs[jobId] = job;
|
272
236
|
return {
|
273
237
|
success: true,
|
274
238
|
data: jobId,
|
275
239
|
};
|
276
240
|
}
|
277
241
|
case "execute": {
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
const job = {
|
282
|
-
id: "local",
|
283
|
-
jobId: jobId,
|
284
|
-
developer: data.developer,
|
285
|
-
repo: data.repo,
|
286
|
-
task: data.task,
|
287
|
-
userId: data.userId,
|
288
|
-
args: data.args,
|
289
|
-
metadata: data.metadata,
|
290
|
-
txNumber: 1,
|
291
|
-
timeCreated,
|
292
|
-
timeCreatedString: new Date(timeCreated).toISOString(),
|
293
|
-
timeStarted: timeCreated,
|
294
|
-
jobStatus: "started",
|
295
|
-
maxAttempts: 0,
|
296
|
-
};
|
297
|
-
const cloud = new local_1.LocalCloud({
|
298
|
-
job,
|
242
|
+
const jobId = await local_1.LocalCloud.run({
|
243
|
+
command: "execute",
|
244
|
+
data,
|
299
245
|
chain: this.chain,
|
300
246
|
localWorker: this.localWorker,
|
301
247
|
});
|
302
|
-
const worker = await this.localWorker(cloud);
|
303
|
-
if (worker === undefined)
|
304
|
-
throw new Error("worker is undefined");
|
305
|
-
const result = await worker.execute();
|
306
|
-
job.timeFinished = Date.now();
|
307
|
-
job.maxAttempts = 1;
|
308
|
-
if (result !== undefined) {
|
309
|
-
job.jobStatus = "finished";
|
310
|
-
job.result = result;
|
311
|
-
}
|
312
|
-
else {
|
313
|
-
job.jobStatus = "failed";
|
314
|
-
}
|
315
|
-
local_1.LocalStorage.jobs[jobId] = job;
|
316
248
|
return {
|
317
249
|
success: true,
|
318
250
|
data: jobId,
|
@@ -31,7 +31,7 @@ export declare abstract class Cloud {
|
|
31
31
|
isLocalCloud?: boolean;
|
32
32
|
chain: blockchain;
|
33
33
|
});
|
34
|
-
abstract getDeployer(): Promise<PrivateKey>;
|
34
|
+
abstract getDeployer(): Promise<PrivateKey | undefined>;
|
35
35
|
abstract log(msg: string): void;
|
36
36
|
abstract getDataByKey(key: string): Promise<string | undefined>;
|
37
37
|
abstract saveDataByKey(key: string, value: string): Promise<void>;
|
@@ -46,6 +46,7 @@ export declare abstract class Cloud {
|
|
46
46
|
metadata?: string;
|
47
47
|
}): Promise<string>;
|
48
48
|
abstract execute(data: {
|
49
|
+
transactions: string[];
|
49
50
|
task: string;
|
50
51
|
userId?: string;
|
51
52
|
args?: string;
|
@@ -71,7 +72,7 @@ export declare abstract class zkCloudWorker {
|
|
71
72
|
deployedContracts(): Promise<DeployedSmartContract[]>;
|
72
73
|
create(transaction: string): Promise<string | undefined>;
|
73
74
|
merge(proof1: string, proof2: string): Promise<string | undefined>;
|
74
|
-
execute(): Promise<string | undefined>;
|
75
|
+
execute(transactions: string[]): Promise<string | undefined>;
|
75
76
|
processTransactions(transactions: CloudTransaction[]): Promise<void>;
|
76
77
|
task(): Promise<string | undefined>;
|
77
78
|
}
|
@@ -34,7 +34,7 @@ class zkCloudWorker {
|
|
34
34
|
return undefined;
|
35
35
|
}
|
36
36
|
// Those methods should be implemented for anything except for recursive proofs
|
37
|
-
async execute() {
|
37
|
+
async execute(transactions) {
|
38
38
|
return undefined;
|
39
39
|
}
|
40
40
|
// process the transactions received by the cloud
|
@@ -4,6 +4,7 @@ import { Cloud, zkCloudWorker } from "./cloud";
|
|
4
4
|
import { JobData } from "./job";
|
5
5
|
import { TaskData } from "./task";
|
6
6
|
import { blockchain } from "../networks";
|
7
|
+
import { ApiCommand } from "../api/api";
|
7
8
|
export declare class LocalCloud extends Cloud {
|
8
9
|
readonly localWorker: (cloud: Cloud) => Promise<zkCloudWorker>;
|
9
10
|
constructor(params: {
|
@@ -13,14 +14,28 @@ export declare class LocalCloud extends Cloud {
|
|
13
14
|
stepId?: string;
|
14
15
|
localWorker: (cloud: Cloud) => Promise<zkCloudWorker>;
|
15
16
|
});
|
16
|
-
getDeployer(): Promise<PrivateKey>;
|
17
|
+
getDeployer(): Promise<PrivateKey | undefined>;
|
17
18
|
log(msg: string): Promise<void>;
|
18
19
|
getDataByKey(key: string): Promise<string | undefined>;
|
19
20
|
saveDataByKey(key: string, value: string): Promise<void>;
|
20
21
|
saveFile(filename: string, value: Buffer): Promise<void>;
|
21
22
|
loadFile(filename: string): Promise<Buffer | undefined>;
|
22
23
|
loadEnvironment(password: string): Promise<void>;
|
23
|
-
private generateId;
|
24
|
+
private static generateId;
|
25
|
+
static run(params: {
|
26
|
+
command: ApiCommand;
|
27
|
+
data: {
|
28
|
+
developer: string;
|
29
|
+
repo: string;
|
30
|
+
transactions: string[];
|
31
|
+
task: string;
|
32
|
+
userId?: string;
|
33
|
+
args?: string;
|
34
|
+
metadata?: string;
|
35
|
+
};
|
36
|
+
chain: blockchain;
|
37
|
+
localWorker: (cloud: Cloud) => Promise<zkCloudWorker>;
|
38
|
+
}): Promise<string>;
|
24
39
|
recursiveProof(data: {
|
25
40
|
transactions: string[];
|
26
41
|
task?: string;
|
@@ -29,6 +44,7 @@ export declare class LocalCloud extends Cloud {
|
|
29
44
|
metadata?: string;
|
30
45
|
}): Promise<string>;
|
31
46
|
execute(data: {
|
47
|
+
transactions: string[];
|
32
48
|
task: string;
|
33
49
|
userId?: string;
|
34
50
|
args?: string;
|
@@ -25,7 +25,7 @@ class LocalCloud extends cloud_1.Cloud {
|
|
25
25
|
this.localWorker = localWorker;
|
26
26
|
}
|
27
27
|
async getDeployer() {
|
28
|
-
|
28
|
+
return (0, mina_1.getDeployer)();
|
29
29
|
}
|
30
30
|
async log(msg) {
|
31
31
|
console.log("LocalCloud:", msg);
|
@@ -47,24 +47,25 @@ class LocalCloud extends cloud_1.Cloud {
|
|
47
47
|
async loadEnvironment(password) {
|
48
48
|
throw new Error("Method not implemented.");
|
49
49
|
}
|
50
|
-
generateId() {
|
50
|
+
static generateId() {
|
51
51
|
return "local." + Date.now().toString() + "." + (0, mina_1.makeString)(32);
|
52
52
|
}
|
53
|
-
async
|
54
|
-
|
53
|
+
static async run(params) {
|
54
|
+
const { command, data, chain, localWorker } = params;
|
55
|
+
console.log("executing locally command", command);
|
56
|
+
const { developer, repo, transactions, task, userId, args, metadata } = data;
|
55
57
|
const timeCreated = Date.now();
|
56
|
-
const jobId =
|
58
|
+
const jobId = LocalCloud.generateId();
|
57
59
|
const job = {
|
58
60
|
id: "local",
|
59
|
-
jobId
|
60
|
-
developer
|
61
|
-
repo
|
62
|
-
task
|
63
|
-
userId
|
64
|
-
args
|
65
|
-
metadata
|
66
|
-
|
67
|
-
txNumber: data.transactions.length,
|
61
|
+
jobId,
|
62
|
+
developer,
|
63
|
+
repo,
|
64
|
+
task,
|
65
|
+
userId,
|
66
|
+
args,
|
67
|
+
metadata,
|
68
|
+
txNumber: command === "recursiveProof" ? transactions.length : 1,
|
68
69
|
timeCreated,
|
69
70
|
timeCreatedString: new Date(timeCreated).toISOString(),
|
70
71
|
timeStarted: timeCreated,
|
@@ -73,61 +74,69 @@ class LocalCloud extends cloud_1.Cloud {
|
|
73
74
|
};
|
74
75
|
const cloud = new LocalCloud({
|
75
76
|
job,
|
76
|
-
chain
|
77
|
-
localWorker
|
77
|
+
chain,
|
78
|
+
localWorker,
|
78
79
|
});
|
79
|
-
const worker = await
|
80
|
+
const worker = await localWorker(cloud);
|
80
81
|
if (worker === undefined)
|
81
82
|
throw new Error("worker is undefined");
|
82
|
-
const
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
83
|
+
const result = command === "recursiveProof"
|
84
|
+
? await LocalCloud.sequencer({
|
85
|
+
worker,
|
86
|
+
data,
|
87
|
+
})
|
88
|
+
: command === "execute"
|
89
|
+
? await worker.execute(transactions)
|
90
|
+
: undefined;
|
91
|
+
const timeFinished = Date.now();
|
92
|
+
if (result !== undefined) {
|
93
|
+
job.jobStatus = "finished";
|
94
|
+
job.timeFinished = timeFinished;
|
95
|
+
job.result = result;
|
96
|
+
}
|
97
|
+
else {
|
98
|
+
job.jobStatus = "failed";
|
99
|
+
job.timeFailed = timeFinished;
|
100
|
+
}
|
89
101
|
job.maxAttempts = 1;
|
102
|
+
job.billedDuration = timeFinished - timeCreated;
|
90
103
|
LocalStorage.jobs[jobId] = job;
|
91
104
|
return jobId;
|
92
105
|
}
|
106
|
+
async recursiveProof(data) {
|
107
|
+
return await LocalCloud.run({
|
108
|
+
command: "recursiveProof",
|
109
|
+
data: {
|
110
|
+
developer: this.developer,
|
111
|
+
repo: this.repo,
|
112
|
+
transactions: data.transactions,
|
113
|
+
task: data.task ?? "recursiveProof",
|
114
|
+
userId: data.userId,
|
115
|
+
args: data.args,
|
116
|
+
metadata: data.metadata,
|
117
|
+
},
|
118
|
+
chain: this.chain,
|
119
|
+
localWorker: this.localWorker,
|
120
|
+
});
|
121
|
+
}
|
93
122
|
async execute(data) {
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
metadata: data.metadata,
|
106
|
-
txNumber: 1,
|
107
|
-
timeCreated,
|
108
|
-
timeCreatedString: new Date(timeCreated).toISOString(),
|
109
|
-
timeStarted: timeCreated,
|
110
|
-
jobStatus: "started",
|
111
|
-
maxAttempts: 0,
|
112
|
-
};
|
113
|
-
const cloud = new LocalCloud({
|
114
|
-
job,
|
123
|
+
return await LocalCloud.run({
|
124
|
+
command: "execute",
|
125
|
+
data: {
|
126
|
+
developer: this.developer,
|
127
|
+
repo: this.repo,
|
128
|
+
transactions: data.transactions,
|
129
|
+
task: data.task,
|
130
|
+
userId: data.userId,
|
131
|
+
args: data.args,
|
132
|
+
metadata: data.metadata,
|
133
|
+
},
|
115
134
|
chain: this.chain,
|
116
135
|
localWorker: this.localWorker,
|
117
136
|
});
|
118
|
-
const worker = await this.localWorker(cloud);
|
119
|
-
if (worker === undefined)
|
120
|
-
throw new Error("worker is undefined");
|
121
|
-
const result = await worker.execute();
|
122
|
-
job.timeFinished = Date.now();
|
123
|
-
job.jobStatus = "finished";
|
124
|
-
job.result = result;
|
125
|
-
job.maxAttempts = 1;
|
126
|
-
LocalStorage.jobs[jobId] = job;
|
127
|
-
return jobId;
|
128
137
|
}
|
129
138
|
async addTask(data) {
|
130
|
-
const taskId =
|
139
|
+
const taskId = LocalCloud.generateId();
|
131
140
|
LocalStorage.tasks[taskId] = {
|
132
141
|
...data,
|
133
142
|
id: "local",
|
@@ -143,7 +152,7 @@ class LocalCloud extends cloud_1.Cloud {
|
|
143
152
|
async processTasks() {
|
144
153
|
for (const taskId in LocalStorage.tasks) {
|
145
154
|
const data = LocalStorage.tasks[taskId];
|
146
|
-
const jobId =
|
155
|
+
const jobId = LocalCloud.generateId();
|
147
156
|
const timeCreated = Date.now();
|
148
157
|
const job = {
|
149
158
|
id: "local",
|
package/lib/ts/src/mina.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export { initBlockchain, Memory, makeString, sleep, accountBalance, accountBalanceMina, formatTime, MinaNetworkInstance, currentNetwork, getNetworkIdHash, };
|
1
|
+
export { initBlockchain, Memory, makeString, sleep, accountBalance, accountBalanceMina, formatTime, MinaNetworkInstance, currentNetwork, getNetworkIdHash, getDeployer, };
|
2
2
|
import { PublicKey, PrivateKey, UInt64, Field } from "o1js";
|
3
3
|
import { blockchain, MinaNetwork } from "./networks";
|
4
4
|
interface MinaNetworkInstance {
|
@@ -11,6 +11,7 @@ interface MinaNetworkInstance {
|
|
11
11
|
}
|
12
12
|
declare let currentNetwork: MinaNetworkInstance | undefined;
|
13
13
|
declare function getNetworkIdHash(): Field;
|
14
|
+
declare function getDeployer(): PrivateKey;
|
14
15
|
declare function initBlockchain(instance: blockchain, deployersNumber?: number): MinaNetworkInstance;
|
15
16
|
declare function accountBalance(address: PublicKey): Promise<UInt64>;
|
16
17
|
declare function accountBalanceMina(address: PublicKey): Promise<number>;
|
package/lib/ts/src/mina.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getNetworkIdHash = exports.currentNetwork = exports.formatTime = exports.accountBalanceMina = exports.accountBalance = exports.sleep = exports.makeString = exports.Memory = exports.initBlockchain = void 0;
|
3
|
+
exports.getDeployer = exports.getNetworkIdHash = exports.currentNetwork = exports.formatTime = exports.accountBalanceMina = exports.accountBalance = exports.sleep = exports.makeString = exports.Memory = exports.initBlockchain = void 0;
|
4
4
|
const o1js_1 = require("o1js");
|
5
5
|
const networks_1 = require("./networks");
|
6
6
|
let currentNetwork = undefined;
|
@@ -12,6 +12,13 @@ function getNetworkIdHash() {
|
|
12
12
|
return currentNetwork.networkIdHash;
|
13
13
|
}
|
14
14
|
exports.getNetworkIdHash = getNetworkIdHash;
|
15
|
+
function getDeployer() {
|
16
|
+
if (currentNetwork === undefined) {
|
17
|
+
throw new Error("Network is not initialized");
|
18
|
+
}
|
19
|
+
return currentNetwork.keys[0].privateKey;
|
20
|
+
}
|
21
|
+
exports.getDeployer = getDeployer;
|
15
22
|
/*function getNetworkIdHash(params: {
|
16
23
|
chainId?: blockchain;
|
17
24
|
verbose?: boolean;
|