zkcloudworker 0.1.19 → 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/{dist/lib/web → lib/ts}/src/api/api.d.ts +34 -6
- package/{dist/lib → lib}/ts/src/api/api.js +35 -6
- package/lib/ts/src/cloud/cloud.d.ts +38 -0
- package/lib/ts/src/cloud/cloud.js +24 -0
- package/{dist/lib → lib}/ts/src/cloud/local.d.ts +13 -3
- package/{dist/lib → lib}/ts/src/cloud/local.js +16 -3
- package/{dist/lib → lib}/ts/src/index.d.ts +3 -3
- package/{dist/lib → lib}/ts/src/index.js +5 -4
- package/lib/ts/tsconfig.tsbuildinfo +1 -0
- package/{dist/lib/ts → lib/web}/src/api/api.d.ts +34 -6
- package/{dist/lib → lib}/web/src/api/api.js +35 -4
- package/lib/web/src/api/api.js.map +1 -0
- package/lib/web/src/cloud/cloud.d.ts +38 -0
- package/lib/web/src/cloud/cloud.js +20 -0
- package/lib/web/src/cloud/cloud.js.map +1 -0
- package/{dist/lib → lib}/web/src/cloud/local.d.ts +13 -3
- package/{dist/lib → lib}/web/src/cloud/local.js +16 -3
- package/lib/web/src/cloud/local.js.map +1 -0
- package/{dist/lib → lib}/web/src/index.d.ts +3 -3
- package/{dist/lib → lib}/web/src/index.js +3 -3
- package/lib/web/src/index.js.map +1 -0
- package/lib/web/tsconfig.web.tsbuildinfo +1 -0
- package/package.json +40 -50
- package/LICENSE +0 -201
- package/dist/README.md +0 -79
- package/dist/lib/ts/src/cloud/cloud.d.ts +0 -12
- package/dist/lib/ts/src/cloud/cloud.js +0 -9
- package/dist/lib/ts/src/custom/backend.d.ts +0 -20
- package/dist/lib/ts/src/custom/backend.js +0 -13
- package/dist/lib/ts/tsconfig.tsbuildinfo +0 -1
- package/dist/lib/web/src/api/api.js.map +0 -1
- package/dist/lib/web/src/cloud/cloud.d.ts +0 -12
- package/dist/lib/web/src/cloud/cloud.js +0 -6
- package/dist/lib/web/src/cloud/cloud.js.map +0 -1
- package/dist/lib/web/src/cloud/local.js.map +0 -1
- package/dist/lib/web/src/custom/backend.d.ts +0 -20
- package/dist/lib/web/src/custom/backend.js +0 -11
- package/dist/lib/web/src/custom/backend.js.map +0 -1
- package/dist/lib/web/src/index.js.map +0 -1
- package/dist/lib/web/tsconfig.web.tsbuildinfo +0 -1
- package/dist/package.json +0 -49
- package/dist/yarn.lock +0 -94
- package/jest-config.ts +0 -32
- package/src/api/api.ts +0 -250
- package/src/api/client-api.ts +0 -186
- package/src/cloud/cloud.ts +0 -22
- package/src/cloud/local.ts +0 -34
- package/src/config.ts +0 -9
- package/src/custom/backend.ts +0 -30
- package/src/fee.ts +0 -7
- package/src/index.ts +0 -38
- package/src/mina.ts +0 -230
- package/src/networks.ts +0 -88
- package/tsconfig.json +0 -41
- package/tsconfig.web.json +0 -29
- /package/{dist/lib → lib}/ts/src/api/client-api.d.ts +0 -0
- /package/{dist/lib → lib}/ts/src/api/client-api.js +0 -0
- /package/{dist/lib → lib}/ts/src/config.d.ts +0 -0
- /package/{dist/lib → lib}/ts/src/config.js +0 -0
- /package/{dist/lib → lib}/ts/src/fee.d.ts +0 -0
- /package/{dist/lib → lib}/ts/src/fee.js +0 -0
- /package/{dist/lib → lib}/ts/src/mina.d.ts +0 -0
- /package/{dist/lib → lib}/ts/src/mina.js +0 -0
- /package/{dist/lib → lib}/ts/src/networks.d.ts +0 -0
- /package/{dist/lib → lib}/ts/src/networks.js +0 -0
- /package/{dist/lib → lib}/web/src/api/client-api.d.ts +0 -0
- /package/{dist/lib → lib}/web/src/api/client-api.js +0 -0
- /package/{dist/lib → lib}/web/src/api/client-api.js.map +0 -0
- /package/{dist/lib → lib}/web/src/config.d.ts +0 -0
- /package/{dist/lib → lib}/web/src/config.js +0 -0
- /package/{dist/lib → lib}/web/src/config.js.map +0 -0
- /package/{dist/lib → lib}/web/src/fee.d.ts +0 -0
- /package/{dist/lib → lib}/web/src/fee.js +0 -0
- /package/{dist/lib → lib}/web/src/fee.js.map +0 -0
- /package/{dist/lib → lib}/web/src/mina.d.ts +0 -0
- /package/{dist/lib → lib}/web/src/mina.js +0 -0
- /package/{dist/lib → lib}/web/src/mina.js.map +0 -0
- /package/{dist/lib → lib}/web/src/networks.d.ts +0 -0
- /package/{dist/lib → lib}/web/src/networks.js +0 -0
- /package/{dist/lib → lib}/web/src/networks.js.map +0 -0
package/src/api/api.ts
DELETED
@@ -1,250 +0,0 @@
|
|
1
|
-
import axios from "axios";
|
2
|
-
import { sleep } from "../mina";
|
3
|
-
import config from "../config";
|
4
|
-
const { ZKCLOUDWORKER_AUTH, ZKCLOUDWORKER_API } = config;
|
5
|
-
|
6
|
-
/**
|
7
|
-
* API class for interacting with the zkCloudWorker
|
8
|
-
* @property jwt The jwt token for authentication, get it at https://t.me/minanft_bot?start=auth
|
9
|
-
* @property endpoint The endpoint of the serverless api
|
10
|
-
*/
|
11
|
-
export class zkCloudWorker {
|
12
|
-
jwt: string;
|
13
|
-
endpoint: string;
|
14
|
-
|
15
|
-
/**
|
16
|
-
* Constructor for the API class
|
17
|
-
* @param jwt The jwt token for authentication, get it at https://t.me/minanft_bot?start=auth
|
18
|
-
*/
|
19
|
-
constructor(jwt: string) {
|
20
|
-
this.jwt = jwt;
|
21
|
-
this.endpoint = ZKCLOUDWORKER_API;
|
22
|
-
}
|
23
|
-
|
24
|
-
/**
|
25
|
-
* Starts a new job for the proof calculation using serverless api call
|
26
|
-
* The developer and name should correspond to the BackupPlugin of the API
|
27
|
-
* All other parameters should correspond to the parameters of the BackupPlugin
|
28
|
-
* @param data the data for the proof call
|
29
|
-
* @param data.transactions the transactions
|
30
|
-
* @param data.developer the developer
|
31
|
-
* @param data.name the name of the job
|
32
|
-
* @param data.task the task of the job
|
33
|
-
* @param data.args the arguments of the job
|
34
|
-
* @returns { success: boolean, error?: string, jobId?: string }
|
35
|
-
* where jonId is the jobId of the job
|
36
|
-
*/
|
37
|
-
public async createJob(data: {
|
38
|
-
transactions: string[];
|
39
|
-
developer: string;
|
40
|
-
name: string;
|
41
|
-
task: string;
|
42
|
-
args: string[];
|
43
|
-
metadata?: string;
|
44
|
-
}): Promise<{
|
45
|
-
success: boolean;
|
46
|
-
error?: string;
|
47
|
-
jobId?: string;
|
48
|
-
}> {
|
49
|
-
const result = await this.apiHub("createJob", data);
|
50
|
-
if (result.data === "error")
|
51
|
-
return {
|
52
|
-
success: false,
|
53
|
-
error: result.error,
|
54
|
-
};
|
55
|
-
else
|
56
|
-
return {
|
57
|
-
success: result.success,
|
58
|
-
jobId: result.data,
|
59
|
-
error: result.error,
|
60
|
-
};
|
61
|
-
}
|
62
|
-
|
63
|
-
/**
|
64
|
-
* Gets the result of the job using serverless api call
|
65
|
-
* @param data the data for the jobResult call
|
66
|
-
* @param data.jobId the jobId of the job
|
67
|
-
* @returns { success: boolean, error?: string, result?: any }
|
68
|
-
* where result is the result of the job
|
69
|
-
* if the job is not finished yet, the result will be undefined
|
70
|
-
* if the job failed, the result will be undefined and error will be set
|
71
|
-
* if the job is finished, the result will be set and error will be undefined
|
72
|
-
* if the job is not found, the result will be undefined and error will be set
|
73
|
-
*/
|
74
|
-
public async jobResult(data: { jobId: string }): Promise<{
|
75
|
-
success: boolean;
|
76
|
-
error?: string;
|
77
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
78
|
-
result?: any;
|
79
|
-
}> {
|
80
|
-
const result = await this.apiHub("jobResult", data);
|
81
|
-
if (this.isError(result.data))
|
82
|
-
return {
|
83
|
-
success: false,
|
84
|
-
error: result.error,
|
85
|
-
result: result.data,
|
86
|
-
};
|
87
|
-
else
|
88
|
-
return {
|
89
|
-
success: result.success,
|
90
|
-
error: result.error,
|
91
|
-
result: result.data,
|
92
|
-
};
|
93
|
-
}
|
94
|
-
|
95
|
-
/**
|
96
|
-
* Gets the result of the job using serverless api call
|
97
|
-
* @param data the data for the deploy call
|
98
|
-
* @param data.packageName the name of the zip file with the code to be deployed
|
99
|
-
* @returns { success: boolean, error?: string, result?: any }
|
100
|
-
* where result is the result of the job
|
101
|
-
* if the job is not finished yet, the result will be undefined
|
102
|
-
* if the job failed, the result will be undefined and error will be set
|
103
|
-
* if the job is finished, the result will be set and error will be undefined
|
104
|
-
* if the job is not found, the result will be undefined and error will be set
|
105
|
-
*/
|
106
|
-
public async deploy(data: { packageName: string }): Promise<{
|
107
|
-
success: boolean;
|
108
|
-
error?: string;
|
109
|
-
jobId?: string;
|
110
|
-
}> {
|
111
|
-
const result = await this.apiHub("deploy", data);
|
112
|
-
if (result.data === "error")
|
113
|
-
return {
|
114
|
-
success: false,
|
115
|
-
error: result.error,
|
116
|
-
};
|
117
|
-
else
|
118
|
-
return {
|
119
|
-
success: result.success,
|
120
|
-
jobId: result.data,
|
121
|
-
error: result.error,
|
122
|
-
};
|
123
|
-
}
|
124
|
-
|
125
|
-
/**
|
126
|
-
* Gets the billing report for the jobs sent using JWT
|
127
|
-
* @returns { success: boolean, error?: string, result?: any }
|
128
|
-
* where result is the billing report
|
129
|
-
*/
|
130
|
-
public async queryBilling(): Promise<{
|
131
|
-
success: boolean;
|
132
|
-
error?: string;
|
133
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
134
|
-
result?: any;
|
135
|
-
}> {
|
136
|
-
const result = await this.apiHub("queryBilling", {});
|
137
|
-
if (this.isError(result.data))
|
138
|
-
return {
|
139
|
-
success: false,
|
140
|
-
error: result.error,
|
141
|
-
result: result.data,
|
142
|
-
};
|
143
|
-
else
|
144
|
-
return {
|
145
|
-
success: result.success,
|
146
|
-
error: result.error,
|
147
|
-
result: result.data,
|
148
|
-
};
|
149
|
-
}
|
150
|
-
|
151
|
-
/**
|
152
|
-
* Waits for the job to finish
|
153
|
-
* @param data the data for the waitForJobResult call
|
154
|
-
* @param data.jobId the jobId of the job
|
155
|
-
* @param data.maxAttempts the maximum number of attempts, default is 360 (2 hours)
|
156
|
-
* @param data.interval the interval between attempts, default is 20000 (20 seconds)
|
157
|
-
* @param data.maxErrors the maximum number of network errors, default is 10
|
158
|
-
* @returns { success: boolean, error?: string, result?: any }
|
159
|
-
* where result is the result of the job
|
160
|
-
*/
|
161
|
-
public async waitForJobResult(data: {
|
162
|
-
jobId: string;
|
163
|
-
maxAttempts?: number;
|
164
|
-
interval?: number;
|
165
|
-
maxErrors?: number;
|
166
|
-
}): Promise<{
|
167
|
-
success: boolean;
|
168
|
-
error?: string;
|
169
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
170
|
-
result?: any;
|
171
|
-
}> {
|
172
|
-
const maxAttempts = data?.maxAttempts ?? 360; // 2 hours
|
173
|
-
const interval = data?.interval ?? 20000;
|
174
|
-
const maxErrors = data?.maxErrors ?? 10;
|
175
|
-
const errorDelay = 30000; // 30 seconds
|
176
|
-
let attempts = 0;
|
177
|
-
let errors = 0;
|
178
|
-
while (attempts < maxAttempts) {
|
179
|
-
const result = await this.apiHub("jobResult", data);
|
180
|
-
if (result.success === false) {
|
181
|
-
errors++;
|
182
|
-
if (errors > maxErrors) {
|
183
|
-
return {
|
184
|
-
success: false,
|
185
|
-
error: "Too many network errors",
|
186
|
-
result: undefined,
|
187
|
-
};
|
188
|
-
}
|
189
|
-
await sleep(errorDelay * errors);
|
190
|
-
} else {
|
191
|
-
if (this.isError(result.data))
|
192
|
-
return {
|
193
|
-
success: false,
|
194
|
-
error: result.error,
|
195
|
-
result: result.data,
|
196
|
-
};
|
197
|
-
else if (result.data?.result !== undefined) {
|
198
|
-
return {
|
199
|
-
success: result.success,
|
200
|
-
error: result.error,
|
201
|
-
result: result.data,
|
202
|
-
};
|
203
|
-
}
|
204
|
-
await sleep(interval);
|
205
|
-
}
|
206
|
-
attempts++;
|
207
|
-
}
|
208
|
-
return {
|
209
|
-
success: false,
|
210
|
-
error: "Timeout",
|
211
|
-
result: undefined,
|
212
|
-
};
|
213
|
-
}
|
214
|
-
|
215
|
-
/**
|
216
|
-
* Calls the serverless API
|
217
|
-
* @param command the command of the API
|
218
|
-
* @param data the data of the API
|
219
|
-
* */
|
220
|
-
private async apiHub(
|
221
|
-
command: string,
|
222
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
223
|
-
data: any
|
224
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
225
|
-
): Promise<{ success: boolean; data?: any; error?: any }> {
|
226
|
-
const apiData = {
|
227
|
-
auth: ZKCLOUDWORKER_AUTH,
|
228
|
-
command: command,
|
229
|
-
jwtToken: this.jwt,
|
230
|
-
data: data,
|
231
|
-
};
|
232
|
-
|
233
|
-
try {
|
234
|
-
const response = await axios.post(this.endpoint, apiData);
|
235
|
-
return { success: true, data: response.data };
|
236
|
-
} catch (error: any) {
|
237
|
-
console.error("apiHub error:", error.message ?? error);
|
238
|
-
return { success: false, error: error };
|
239
|
-
}
|
240
|
-
}
|
241
|
-
|
242
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
243
|
-
private isError(data: any): boolean {
|
244
|
-
if (data === "error") return true;
|
245
|
-
if (data?.jobStatus === "failed") return true;
|
246
|
-
if (typeof data === "string" && data.toLowerCase().startsWith("error"))
|
247
|
-
return true;
|
248
|
-
return false;
|
249
|
-
}
|
250
|
-
}
|
package/src/api/client-api.ts
DELETED
@@ -1,186 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Client API for calling the zkCloudWorker
|
3
|
-
*/
|
4
|
-
export {
|
5
|
-
TxnPayload,
|
6
|
-
IsError,
|
7
|
-
SerializedTxn,
|
8
|
-
SignedSerializedTxn,
|
9
|
-
TxnResult,
|
10
|
-
JobPayload,
|
11
|
-
JobResult,
|
12
|
-
zkCloudWorkerAPI,
|
13
|
-
};
|
14
|
-
|
15
|
-
interface TxnPayload {
|
16
|
-
data: object;
|
17
|
-
options?: object;
|
18
|
-
}
|
19
|
-
|
20
|
-
interface IsError {
|
21
|
-
code: number;
|
22
|
-
message: string;
|
23
|
-
exception: any;
|
24
|
-
}
|
25
|
-
|
26
|
-
interface SerializedTxn {
|
27
|
-
hash: string | null;
|
28
|
-
transaction: any | null;
|
29
|
-
error: IsError | null;
|
30
|
-
}
|
31
|
-
|
32
|
-
interface SignedSerializedTxn {
|
33
|
-
hash: string | null;
|
34
|
-
transaction: any | null;
|
35
|
-
error: IsError | null;
|
36
|
-
}
|
37
|
-
|
38
|
-
interface TxnResult {
|
39
|
-
hash: string | null;
|
40
|
-
data: any | null;
|
41
|
-
error: IsError | null;
|
42
|
-
}
|
43
|
-
|
44
|
-
interface JobPayload {
|
45
|
-
data: object;
|
46
|
-
options?: object;
|
47
|
-
}
|
48
|
-
|
49
|
-
interface JobResult {
|
50
|
-
data: any | null;
|
51
|
-
error: IsError | null;
|
52
|
-
}
|
53
|
-
|
54
|
-
class zkCloudWorkerAPI {
|
55
|
-
private API_KEY: string = "";
|
56
|
-
|
57
|
-
constructor(apiKey: string) {
|
58
|
-
this.API_KEY = apiKey;
|
59
|
-
}
|
60
|
-
|
61
|
-
/**
|
62
|
-
* prove() sign() and send()
|
63
|
-
*
|
64
|
-
* The called cloud worker is expected to compile the needed Contract,
|
65
|
-
* create the transaction, prove it and send it back serialized.
|
66
|
-
*
|
67
|
-
* Then the serialized transaction can be signed locally using AuroWallet
|
68
|
-
* and finally send it to MINA using the cloud worker.
|
69
|
-
*
|
70
|
-
* IMPORTANT: the transaction fee will be paid by the local sender, using
|
71
|
-
* the Auro Wallet at the moment of signing the serialized transaction.
|
72
|
-
*
|
73
|
-
* We only need the sender public key to create and prove the transaction.
|
74
|
-
* The sender private key NEVER leaves the local wallet.
|
75
|
-
*
|
76
|
-
* Example:
|
77
|
-
* ~~~
|
78
|
-
* let zkWorker = new ZKRunner(API_KEY);
|
79
|
-
*
|
80
|
-
* let serializedTxn = await zkWorker.prove('batch-voting-...', {
|
81
|
-
* data: {
|
82
|
-
* claimUid: '012345...789',
|
83
|
-
* // ...
|
84
|
-
* },
|
85
|
-
* options: {
|
86
|
-
* senderAddress: 'B62...',
|
87
|
-
* fee: MIN_FEE // MAX_FEE | AUTO_FEE | number
|
88
|
-
* }
|
89
|
-
* });
|
90
|
-
* if (serializedTxn.error)
|
91
|
-
* // treat error here
|
92
|
-
*
|
93
|
-
* let signedTxn = await zkWorker.sign(signerAddress, serializedTxn);
|
94
|
-
* if (signedTxn.error)
|
95
|
-
* // treat error here
|
96
|
-
*
|
97
|
-
* let txnResult = await zkWorker.send(signedTxn) ;
|
98
|
-
* if (txnResult.error)
|
99
|
-
* // treat error here
|
100
|
-
* ~~~
|
101
|
-
*/
|
102
|
-
async prove(
|
103
|
-
jobName: string,
|
104
|
-
payload: TxnPayload //: Promise < SerializedTxn > {
|
105
|
-
) {}
|
106
|
-
|
107
|
-
async sign(
|
108
|
-
signerAddress: string,
|
109
|
-
serializedTxn: SerializedTxn //: Promise<SignedSerializedTxn> {
|
110
|
-
) {}
|
111
|
-
|
112
|
-
async send(
|
113
|
-
txn: SignedSerializedTxn //: Promise<TxnResult> {
|
114
|
-
) {}
|
115
|
-
|
116
|
-
/**
|
117
|
-
* proveAndSend()
|
118
|
-
*
|
119
|
-
* The called cloud worker is expected to do all: compile the needed Contract,
|
120
|
-
* create the transaction, prove it, sign it using one of the available
|
121
|
-
* fee payers, and finally send it to MINA.
|
122
|
-
*
|
123
|
-
* IMPORTANT: the transaction fee will be paid by the first fee payer
|
124
|
-
* available from the list of fee payers provided by the ZKRunner service.
|
125
|
-
* Also the fee will be set by the cloud worker using some optimal algorithm
|
126
|
-
* that minimizes fees.
|
127
|
-
*
|
128
|
-
* In this case the sender public key to create and prove the transaction
|
129
|
-
* will be the selected ZKRunner fee payer previously mentioned.
|
130
|
-
*
|
131
|
-
* Example:
|
132
|
-
* ~~~
|
133
|
-
* let zkWorker = new ZKRunner(API_KEY);
|
134
|
-
*
|
135
|
-
* let txnResult = await zkWorker.proveAndSend('batch-voting-...', {
|
136
|
-
* data: {
|
137
|
-
* claimUid: '012345...789',
|
138
|
-
* // ...
|
139
|
-
* }
|
140
|
-
* });
|
141
|
-
*
|
142
|
-
* if (txnResult.error)
|
143
|
-
* // treat error here
|
144
|
-
* ~~~
|
145
|
-
*/
|
146
|
-
async proveAndSend(
|
147
|
-
jobName: string,
|
148
|
-
payload: TxnPayload //: Promise<TxnResult> {
|
149
|
-
) {}
|
150
|
-
|
151
|
-
/**
|
152
|
-
* runJob()
|
153
|
-
*
|
154
|
-
* The called cloud worker can also be used to easily run jobs not related to
|
155
|
-
* a MINA transaction, and will act just like any serverless function.
|
156
|
-
*
|
157
|
-
* This "generic" job can benefit from the easy to use deploy and call service
|
158
|
-
* already implemented for cloud proving without no extra costs.
|
159
|
-
*
|
160
|
-
* IMPORTANT: there will be a small fee that needs to be paid for service usage,
|
161
|
-
* but no MINA fees need to be paid.
|
162
|
-
*
|
163
|
-
* Example:
|
164
|
-
* ~~~
|
165
|
-
* let zkWorker = new ZKRunner(API_KEY);
|
166
|
-
*
|
167
|
-
* let jobResult = await zkWorker.runJob('send-email-to-judges', {
|
168
|
-
* data: {
|
169
|
-
* judges: [
|
170
|
-
* // ...
|
171
|
-
* ],
|
172
|
-
* },
|
173
|
-
* options: {
|
174
|
-
* // ...
|
175
|
-
* }
|
176
|
-
* });
|
177
|
-
*
|
178
|
-
* if (txnResult.error)
|
179
|
-
* // treat error here
|
180
|
-
* ~~~
|
181
|
-
*/
|
182
|
-
async runJob(
|
183
|
-
jobName: string,
|
184
|
-
payload: JobPayload //: Promise<JobResult> {
|
185
|
-
) {}
|
186
|
-
}
|
package/src/cloud/cloud.ts
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
import { Cache, PrivateKey } from "o1js";
|
2
|
-
|
3
|
-
export abstract class Cloud {
|
4
|
-
cache: Cache;
|
5
|
-
constructor(cache: Cache) {
|
6
|
-
this.cache = cache;
|
7
|
-
}
|
8
|
-
// TODO: change it to the sign method to protect the private key
|
9
|
-
abstract getDeployer(): Promise<PrivateKey>;
|
10
|
-
abstract log(msg: string): void;
|
11
|
-
|
12
|
-
/* TODO: add more methods
|
13
|
-
-getDataByKey
|
14
|
-
-saveDataByKey
|
15
|
-
-saveFile
|
16
|
-
-loadFile
|
17
|
-
*/
|
18
|
-
abstract getDataByKey(key: string): Promise<string | undefined>;
|
19
|
-
abstract saveDataByKey(key: string, value: string): Promise<void>;
|
20
|
-
abstract saveFile(filename: string, value: Buffer): Promise<void>;
|
21
|
-
abstract loadFile(filename: string): Promise<Buffer | undefined>;
|
22
|
-
}
|
package/src/cloud/local.ts
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
import { Cache, PrivateKey } from "o1js";
|
2
|
-
import { Cloud } from "./cloud";
|
3
|
-
|
4
|
-
export class LocalCloud extends Cloud {
|
5
|
-
cache: Cache;
|
6
|
-
data: Map<string, string> = new Map<string, string>();
|
7
|
-
|
8
|
-
constructor() {
|
9
|
-
const cache = Cache.FileSystem("./cache");
|
10
|
-
super(cache);
|
11
|
-
}
|
12
|
-
public async getDeployer(): Promise<PrivateKey> {
|
13
|
-
throw new Error("Method not implemented.");
|
14
|
-
}
|
15
|
-
public async log(msg: string): Promise<void> {
|
16
|
-
console.log("LocalCloud:", msg);
|
17
|
-
}
|
18
|
-
|
19
|
-
public async getDataByKey(key: string): Promise<string | undefined> {
|
20
|
-
const value = this.data.get(key);
|
21
|
-
return value;
|
22
|
-
}
|
23
|
-
|
24
|
-
public async saveDataByKey(key: string, value: string): Promise<void> {
|
25
|
-
this.data.set(key, value);
|
26
|
-
}
|
27
|
-
|
28
|
-
public async saveFile(filename: string, value: Buffer): Promise<void> {
|
29
|
-
throw new Error("Method not implemented.");
|
30
|
-
}
|
31
|
-
public async loadFile(filename: string): Promise<Buffer | undefined> {
|
32
|
-
throw new Error("Method not implemented.");
|
33
|
-
}
|
34
|
-
}
|
package/src/config.ts
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
const config = {
|
2
|
-
MINAFEE: "200000000",
|
3
|
-
ZKCLOUDWORKER_AUTH:
|
4
|
-
"M6t4jtbBAFFXhLERHQWyEB9JA9xi4cWqmYduaCXtbrFjb7yaY7TyaXDunKDJNiUTBEcyUomNXJgC",
|
5
|
-
ZKCLOUDWORKER_API:
|
6
|
-
"https://cuq99yahhi.execute-api.eu-west-1.amazonaws.com/dev/zkcloudworker",
|
7
|
-
};
|
8
|
-
|
9
|
-
export default config;
|
package/src/custom/backend.ts
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
export { BackendPlugin };
|
2
|
-
import type { Cache } from "o1js";
|
3
|
-
|
4
|
-
abstract class BackendPlugin {
|
5
|
-
name: string;
|
6
|
-
task: string;
|
7
|
-
args: string[];
|
8
|
-
jobId?: string;
|
9
|
-
|
10
|
-
constructor(params: {
|
11
|
-
name: string;
|
12
|
-
task: string;
|
13
|
-
args: string[];
|
14
|
-
jobId?: string;
|
15
|
-
}) {
|
16
|
-
const { name, task, args, jobId } = params;
|
17
|
-
this.name = name;
|
18
|
-
this.task = task;
|
19
|
-
this.args = args;
|
20
|
-
this.jobId = jobId;
|
21
|
-
}
|
22
|
-
|
23
|
-
abstract compile(cache: Cache): Promise<void>;
|
24
|
-
abstract create(transaction: string): Promise<string | undefined>;
|
25
|
-
abstract merge(proof1: string, proof2: string): Promise<string | undefined>;
|
26
|
-
|
27
|
-
abstract send(transaction: string): Promise<string | undefined>;
|
28
|
-
abstract mint(transaction: string): Promise<string | undefined>;
|
29
|
-
abstract verify(proof: string): Promise<string | undefined>;
|
30
|
-
}
|
package/src/fee.ts
DELETED
package/src/index.ts
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
export { zkCloudWorker } from "./api/api";
|
2
|
-
export { Cloud } from "./cloud/cloud";
|
3
|
-
export { LocalCloud } from "./cloud/local";
|
4
|
-
export {
|
5
|
-
initBlockchain,
|
6
|
-
Memory,
|
7
|
-
makeString,
|
8
|
-
sleep,
|
9
|
-
accountBalance,
|
10
|
-
accountBalanceMina,
|
11
|
-
formatTime,
|
12
|
-
MinaNetworkInstance,
|
13
|
-
currentNetwork,
|
14
|
-
getNetworkIdHash,
|
15
|
-
} from "./mina";
|
16
|
-
export { fee } from "./fee";
|
17
|
-
export {
|
18
|
-
blockchain,
|
19
|
-
MinaNetwork,
|
20
|
-
networks,
|
21
|
-
Mainnet,
|
22
|
-
Berkeley,
|
23
|
-
Zeko,
|
24
|
-
TestWorld2,
|
25
|
-
Lightnet,
|
26
|
-
Local,
|
27
|
-
} from "./networks";
|
28
|
-
export {
|
29
|
-
TxnPayload,
|
30
|
-
IsError,
|
31
|
-
SerializedTxn,
|
32
|
-
SignedSerializedTxn,
|
33
|
-
TxnResult,
|
34
|
-
JobPayload,
|
35
|
-
JobResult,
|
36
|
-
zkCloudWorkerAPI,
|
37
|
-
} from "./api/client-api";
|
38
|
-
export { BackendPlugin } from "./custom/backend";
|