zkcloudworker 0.5.2 → 0.5.4
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.js +1 -1
- package/lib/ts/src/index.d.ts +3 -2
- package/lib/ts/src/index.js +3 -2
- package/lib/ts/src/utils/base64.d.ts +5 -0
- package/lib/ts/src/utils/base64.js +90 -0
- package/lib/ts/src/{fetch.js → utils/fetch.js} +24 -6
- package/lib/ts/src/utils/fields.d.ts +3 -0
- package/lib/ts/src/utils/fields.js +33 -0
- package/lib/ts/tsconfig.tsbuildinfo +1 -1
- package/lib/web/src/api/api.js +264 -287
- package/lib/web/src/api/api.js.map +1 -1
- package/lib/web/src/cloud/cloud.js +12 -25
- package/lib/web/src/cloud/cloud.js.map +1 -1
- package/lib/web/src/cloud/files.js +59 -68
- package/lib/web/src/cloud/files.js.map +1 -1
- package/lib/web/src/cloud/local.js +221 -259
- package/lib/web/src/cloud/local.js.map +1 -1
- package/lib/web/src/encryption/encryption.js +2 -5
- package/lib/web/src/encryption/encryption.js.map +1 -1
- package/lib/web/src/encryption/messages.js +24 -29
- package/lib/web/src/encryption/messages.js.map +1 -1
- package/lib/web/src/encryption/nats-client.js +67 -83
- package/lib/web/src/encryption/nats-client.js.map +1 -1
- package/lib/web/src/fee.js +3 -6
- package/lib/web/src/fee.js.map +1 -1
- package/lib/web/src/index.d.ts +3 -2
- package/lib/web/src/index.js +3 -2
- package/lib/web/src/index.js.map +1 -1
- package/lib/web/src/mina.js +60 -67
- package/lib/web/src/mina.js.map +1 -1
- package/lib/web/src/utils/base64.d.ts +5 -0
- package/lib/web/src/utils/base64.js +84 -0
- package/lib/web/src/utils/base64.js.map +1 -0
- package/lib/web/src/utils/fetch.js +79 -0
- package/lib/web/src/utils/fetch.js.map +1 -0
- package/lib/web/src/utils/fields.d.ts +3 -0
- package/lib/web/src/utils/fields.js +29 -0
- package/lib/web/src/utils/fields.js.map +1 -0
- package/lib/web/tsconfig.web.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/lib/ts/src/api/client-api.d.ts +0 -147
- package/lib/ts/src/api/client-api.js +0 -122
- package/lib/web/src/api/client-api.d.ts +0 -147
- package/lib/web/src/api/client-api.js +0 -134
- package/lib/web/src/api/client-api.js.map +0 -1
- package/lib/web/src/fetch.js +0 -68
- package/lib/web/src/fetch.js.map +0 -1
- /package/lib/ts/src/{fetch.d.ts → utils/fetch.d.ts} +0 -0
- /package/lib/web/src/{fetch.d.ts → utils/fetch.d.ts} +0 -0
@@ -1,4 +1,3 @@
|
|
1
|
-
import { __awaiter } from "tslib";
|
2
1
|
import { Cache, PrivateKey } from "o1js";
|
3
2
|
import { Cloud } from "./cloud";
|
4
3
|
import { makeString } from "../mina";
|
@@ -10,9 +9,9 @@ export class LocalCloud extends Cloud {
|
|
10
9
|
super({
|
11
10
|
id: id,
|
12
11
|
jobId: jobId,
|
13
|
-
stepId: stepId
|
14
|
-
taskId: taskId
|
15
|
-
cache: cache
|
12
|
+
stepId: stepId ?? "stepId",
|
13
|
+
taskId: taskId ?? "taskId",
|
14
|
+
cache: cache ?? Cache.FileSystem("./cache"),
|
16
15
|
developer: developer,
|
17
16
|
repo: repo,
|
18
17
|
task: task,
|
@@ -24,106 +23,200 @@ export class LocalCloud extends Cloud {
|
|
24
23
|
});
|
25
24
|
this.localWorker = localWorker;
|
26
25
|
}
|
27
|
-
getDeployer() {
|
28
|
-
|
29
|
-
|
30
|
-
return deployer === undefined ? undefined : PrivateKey.fromBase58(deployer);
|
31
|
-
});
|
26
|
+
async getDeployer() {
|
27
|
+
const deployer = process.env.DEPLOYER;
|
28
|
+
return deployer === undefined ? undefined : PrivateKey.fromBase58(deployer);
|
32
29
|
}
|
33
|
-
releaseDeployer(txsHashes) {
|
34
|
-
|
35
|
-
console.log("LocalCloud: releaseDeployer", txsHashes);
|
36
|
-
});
|
30
|
+
async releaseDeployer(txsHashes) {
|
31
|
+
console.log("LocalCloud: releaseDeployer", txsHashes);
|
37
32
|
}
|
38
|
-
log(msg) {
|
39
|
-
|
40
|
-
|
41
|
-
|
33
|
+
async log(msg) {
|
34
|
+
console.log("LocalCloud:", msg);
|
35
|
+
}
|
36
|
+
async getDataByKey(key) {
|
37
|
+
const value = LocalStorage.data[key];
|
38
|
+
return value;
|
39
|
+
}
|
40
|
+
async saveDataByKey(key, value) {
|
41
|
+
if (value !== undefined)
|
42
|
+
LocalStorage.data[key] = value;
|
43
|
+
else
|
44
|
+
delete LocalStorage.data[key];
|
45
|
+
}
|
46
|
+
async saveFile(filename, value) {
|
47
|
+
await saveBinaryFile({ data: value, filename });
|
48
|
+
}
|
49
|
+
async loadFile(filename) {
|
50
|
+
const data = await loadBinaryFile(filename);
|
51
|
+
return data;
|
42
52
|
}
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
53
|
+
async loadEnvironment(password) {
|
54
|
+
throw new Error("Method not implemented.");
|
55
|
+
}
|
56
|
+
static generateId() {
|
57
|
+
return "local." + Date.now().toString() + "." + makeString(32);
|
58
|
+
}
|
59
|
+
static async addTransactions(transactions) {
|
60
|
+
const timeReceived = Date.now();
|
61
|
+
const txId = [];
|
62
|
+
transactions.forEach((tx) => {
|
63
|
+
const id = LocalCloud.generateId();
|
64
|
+
LocalStorage.transactions[id] = { transaction: tx, timeReceived };
|
65
|
+
txId.push(id);
|
47
66
|
});
|
67
|
+
return txId;
|
48
68
|
}
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
69
|
+
async deleteTransaction(txId) {
|
70
|
+
if (LocalStorage.transactions[txId] === undefined)
|
71
|
+
throw new Error(`deleteTransaction: Transaction ${txId} not found`);
|
72
|
+
delete LocalStorage.transactions[txId];
|
73
|
+
}
|
74
|
+
async getTransactions() {
|
75
|
+
const txs = Object.keys(LocalStorage.transactions).map((txId) => {
|
76
|
+
const { transaction, timeReceived } = LocalStorage.transactions[txId];
|
77
|
+
return {
|
78
|
+
txId,
|
79
|
+
transaction,
|
80
|
+
timeReceived,
|
81
|
+
};
|
55
82
|
});
|
83
|
+
return txs;
|
56
84
|
}
|
57
|
-
|
58
|
-
|
59
|
-
|
85
|
+
static async run(params) {
|
86
|
+
const { command, data, chain, localWorker } = params;
|
87
|
+
const { developer, repo, transactions, task, userId, args, metadata } = data;
|
88
|
+
const timeCreated = Date.now();
|
89
|
+
const jobId = LocalCloud.generateId();
|
90
|
+
const job = {
|
91
|
+
id: "local",
|
92
|
+
jobId,
|
93
|
+
developer,
|
94
|
+
repo,
|
95
|
+
task,
|
96
|
+
userId,
|
97
|
+
args,
|
98
|
+
metadata,
|
99
|
+
txNumber: command === "recursiveProof" ? transactions.length : 1,
|
100
|
+
timeCreated,
|
101
|
+
timeCreatedString: new Date(timeCreated).toISOString(),
|
102
|
+
timeStarted: timeCreated,
|
103
|
+
jobStatus: "started",
|
104
|
+
maxAttempts: 0,
|
105
|
+
};
|
106
|
+
const cloud = new LocalCloud({
|
107
|
+
job,
|
108
|
+
chain,
|
109
|
+
localWorker,
|
60
110
|
});
|
111
|
+
const worker = await localWorker(cloud);
|
112
|
+
if (worker === undefined)
|
113
|
+
throw new Error("worker is undefined");
|
114
|
+
const result = command === "recursiveProof"
|
115
|
+
? await LocalCloud.sequencer({
|
116
|
+
worker,
|
117
|
+
data,
|
118
|
+
})
|
119
|
+
: command === "execute"
|
120
|
+
? await worker.execute(transactions)
|
121
|
+
: undefined;
|
122
|
+
const timeFinished = Date.now();
|
123
|
+
if (result !== undefined) {
|
124
|
+
job.jobStatus = "finished";
|
125
|
+
job.timeFinished = timeFinished;
|
126
|
+
job.result = result;
|
127
|
+
}
|
128
|
+
else {
|
129
|
+
job.jobStatus = "failed";
|
130
|
+
job.timeFailed = timeFinished;
|
131
|
+
}
|
132
|
+
job.maxAttempts = 1;
|
133
|
+
job.billedDuration = timeFinished - timeCreated;
|
134
|
+
LocalStorage.jobs[jobId] = job;
|
135
|
+
return jobId;
|
61
136
|
}
|
62
|
-
|
63
|
-
return
|
64
|
-
|
65
|
-
|
137
|
+
async recursiveProof(data) {
|
138
|
+
return await LocalCloud.run({
|
139
|
+
command: "recursiveProof",
|
140
|
+
data: {
|
141
|
+
developer: this.developer,
|
142
|
+
repo: this.repo,
|
143
|
+
transactions: data.transactions,
|
144
|
+
task: data.task ?? "recursiveProof",
|
145
|
+
userId: data.userId,
|
146
|
+
args: data.args,
|
147
|
+
metadata: data.metadata,
|
148
|
+
},
|
149
|
+
chain: this.chain,
|
150
|
+
localWorker: this.localWorker,
|
66
151
|
});
|
67
152
|
}
|
68
|
-
|
69
|
-
return
|
70
|
-
|
153
|
+
async execute(data) {
|
154
|
+
return await LocalCloud.run({
|
155
|
+
command: "execute",
|
156
|
+
data: {
|
157
|
+
developer: this.developer,
|
158
|
+
repo: this.repo,
|
159
|
+
transactions: data.transactions,
|
160
|
+
task: data.task,
|
161
|
+
userId: data.userId,
|
162
|
+
args: data.args,
|
163
|
+
metadata: data.metadata,
|
164
|
+
},
|
165
|
+
chain: this.chain,
|
166
|
+
localWorker: this.localWorker,
|
71
167
|
});
|
72
168
|
}
|
73
|
-
|
74
|
-
return
|
169
|
+
async jobResult(jobId) {
|
170
|
+
return LocalStorage.jobs[jobId];
|
75
171
|
}
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
}
|
172
|
+
async addTask(data) {
|
173
|
+
const taskId = LocalCloud.generateId();
|
174
|
+
LocalStorage.tasks[taskId] = {
|
175
|
+
...data,
|
176
|
+
id: "local",
|
177
|
+
taskId,
|
178
|
+
timeCreated: Date.now(),
|
179
|
+
developer: this.developer,
|
180
|
+
repo: this.repo,
|
181
|
+
chain: this.chain,
|
182
|
+
};
|
183
|
+
return taskId;
|
87
184
|
}
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
delete LocalStorage.transactions[txId];
|
93
|
-
});
|
185
|
+
async deleteTask(taskId) {
|
186
|
+
if (LocalStorage.tasks[taskId] === undefined)
|
187
|
+
throw new Error(`deleteTask: Task ${taskId} not found`);
|
188
|
+
delete LocalStorage.tasks[taskId];
|
94
189
|
}
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
transaction,
|
102
|
-
timeReceived,
|
103
|
-
};
|
104
|
-
});
|
105
|
-
return txs;
|
190
|
+
async processTasks() {
|
191
|
+
await LocalCloud.processLocalTasks({
|
192
|
+
developer: this.developer,
|
193
|
+
repo: this.repo,
|
194
|
+
localWorker: this.localWorker,
|
195
|
+
chain: this.chain,
|
106
196
|
});
|
107
197
|
}
|
108
|
-
static
|
109
|
-
|
110
|
-
|
111
|
-
const
|
112
|
-
const timeCreated = Date.now();
|
198
|
+
static async processLocalTasks(params) {
|
199
|
+
const { developer, repo, localWorker, chain } = params;
|
200
|
+
for (const taskId in LocalStorage.tasks) {
|
201
|
+
const data = LocalStorage.tasks[taskId];
|
113
202
|
const jobId = LocalCloud.generateId();
|
203
|
+
const timeCreated = Date.now();
|
204
|
+
if (data.startTime !== undefined && data.startTime < timeCreated)
|
205
|
+
continue;
|
114
206
|
const job = {
|
115
207
|
id: "local",
|
116
|
-
jobId,
|
208
|
+
jobId: jobId,
|
209
|
+
taskId: taskId,
|
117
210
|
developer,
|
118
211
|
repo,
|
119
|
-
task,
|
120
|
-
userId,
|
121
|
-
args,
|
122
|
-
metadata,
|
123
|
-
txNumber:
|
124
|
-
timeCreated,
|
212
|
+
task: data.task,
|
213
|
+
userId: data.userId,
|
214
|
+
args: data.args,
|
215
|
+
metadata: data.metadata,
|
216
|
+
txNumber: 1,
|
217
|
+
timeCreated: timeCreated,
|
125
218
|
timeCreatedString: new Date(timeCreated).toISOString(),
|
126
|
-
timeStarted:
|
219
|
+
timeStarted: Date.now(),
|
127
220
|
jobStatus: "started",
|
128
221
|
maxAttempts: 0,
|
129
222
|
};
|
@@ -132,198 +225,67 @@ export class LocalCloud extends Cloud {
|
|
132
225
|
chain,
|
133
226
|
localWorker,
|
134
227
|
});
|
135
|
-
const worker =
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
worker,
|
141
|
-
data,
|
142
|
-
})
|
143
|
-
: command === "execute"
|
144
|
-
? yield worker.execute(transactions)
|
145
|
-
: undefined;
|
146
|
-
const timeFinished = Date.now();
|
228
|
+
const worker = await localWorker(cloud);
|
229
|
+
const result = await worker.task();
|
230
|
+
job.timeFinished = Date.now();
|
231
|
+
job.maxAttempts = 1;
|
232
|
+
job.billedDuration = job.timeFinished - timeCreated;
|
147
233
|
if (result !== undefined) {
|
148
234
|
job.jobStatus = "finished";
|
149
|
-
job.timeFinished = timeFinished;
|
150
235
|
job.result = result;
|
151
236
|
}
|
152
237
|
else {
|
153
238
|
job.jobStatus = "failed";
|
154
|
-
job.timeFailed = timeFinished;
|
155
239
|
}
|
156
|
-
job.maxAttempts = 1;
|
157
|
-
job.billedDuration = timeFinished - timeCreated;
|
158
240
|
LocalStorage.jobs[jobId] = job;
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
return
|
164
|
-
var _a;
|
165
|
-
return yield LocalCloud.run({
|
166
|
-
command: "recursiveProof",
|
167
|
-
data: {
|
168
|
-
developer: this.developer,
|
169
|
-
repo: this.repo,
|
170
|
-
transactions: data.transactions,
|
171
|
-
task: (_a = data.task) !== null && _a !== void 0 ? _a : "recursiveProof",
|
172
|
-
userId: data.userId,
|
173
|
-
args: data.args,
|
174
|
-
metadata: data.metadata,
|
175
|
-
},
|
176
|
-
chain: this.chain,
|
177
|
-
localWorker: this.localWorker,
|
178
|
-
});
|
179
|
-
});
|
180
|
-
}
|
181
|
-
execute(data) {
|
182
|
-
return __awaiter(this, void 0, void 0, function* () {
|
183
|
-
return yield LocalCloud.run({
|
184
|
-
command: "execute",
|
185
|
-
data: {
|
186
|
-
developer: this.developer,
|
187
|
-
repo: this.repo,
|
188
|
-
transactions: data.transactions,
|
189
|
-
task: data.task,
|
190
|
-
userId: data.userId,
|
191
|
-
args: data.args,
|
192
|
-
metadata: data.metadata,
|
193
|
-
},
|
194
|
-
chain: this.chain,
|
195
|
-
localWorker: this.localWorker,
|
196
|
-
});
|
197
|
-
});
|
241
|
+
}
|
242
|
+
let count = 0;
|
243
|
+
for (const task in LocalStorage.tasks)
|
244
|
+
count++;
|
245
|
+
return count;
|
198
246
|
}
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
const
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
return __awaiter(this, void 0, void 0, function* () {
|
220
|
-
yield LocalCloud.processLocalTasks({
|
221
|
-
developer: this.developer,
|
222
|
-
repo: this.repo,
|
223
|
-
localWorker: this.localWorker,
|
224
|
-
chain: this.chain,
|
225
|
-
});
|
226
|
-
});
|
227
|
-
}
|
228
|
-
static processLocalTasks(params) {
|
229
|
-
return __awaiter(this, void 0, void 0, function* () {
|
230
|
-
const { developer, repo, localWorker, chain } = params;
|
231
|
-
for (const taskId in LocalStorage.tasks) {
|
232
|
-
const data = LocalStorage.tasks[taskId];
|
233
|
-
const jobId = LocalCloud.generateId();
|
234
|
-
const timeCreated = Date.now();
|
235
|
-
if (data.startTime !== undefined && data.startTime < timeCreated)
|
236
|
-
continue;
|
237
|
-
const job = {
|
238
|
-
id: "local",
|
239
|
-
jobId: jobId,
|
240
|
-
taskId: taskId,
|
241
|
-
developer,
|
242
|
-
repo,
|
243
|
-
task: data.task,
|
244
|
-
userId: data.userId,
|
245
|
-
args: data.args,
|
246
|
-
metadata: data.metadata,
|
247
|
-
txNumber: 1,
|
248
|
-
timeCreated: timeCreated,
|
249
|
-
timeCreatedString: new Date(timeCreated).toISOString(),
|
250
|
-
timeStarted: Date.now(),
|
251
|
-
jobStatus: "started",
|
252
|
-
maxAttempts: 0,
|
253
|
-
};
|
254
|
-
const cloud = new LocalCloud({
|
255
|
-
job,
|
256
|
-
chain,
|
257
|
-
localWorker,
|
258
|
-
});
|
259
|
-
const worker = yield localWorker(cloud);
|
260
|
-
const result = yield worker.task();
|
261
|
-
job.timeFinished = Date.now();
|
262
|
-
job.maxAttempts = 1;
|
263
|
-
job.billedDuration = job.timeFinished - timeCreated;
|
264
|
-
if (result !== undefined) {
|
265
|
-
job.jobStatus = "finished";
|
266
|
-
job.result = result;
|
267
|
-
}
|
268
|
-
else {
|
269
|
-
job.jobStatus = "failed";
|
270
|
-
}
|
271
|
-
LocalStorage.jobs[jobId] = job;
|
272
|
-
}
|
273
|
-
let count = 0;
|
274
|
-
for (const task in LocalStorage.tasks)
|
275
|
-
count++;
|
276
|
-
return count;
|
277
|
-
});
|
278
|
-
}
|
279
|
-
static sequencer(params) {
|
280
|
-
return __awaiter(this, void 0, void 0, function* () {
|
281
|
-
const { worker, data } = params;
|
282
|
-
const { transactions } = data;
|
283
|
-
if (transactions.length === 0)
|
284
|
-
throw new Error("No transactions to process");
|
285
|
-
const proofs = [];
|
286
|
-
for (const transaction of transactions) {
|
287
|
-
const result = yield worker.create(transaction);
|
288
|
-
if (result === undefined)
|
289
|
-
throw new Error("Failed to create proof");
|
290
|
-
proofs.push(result);
|
291
|
-
}
|
292
|
-
let proof = proofs[0];
|
293
|
-
for (let i = 1; i < proofs.length; i++) {
|
294
|
-
const result = yield worker.merge(proof, proofs[i]);
|
295
|
-
if (result === undefined)
|
296
|
-
throw new Error("Failed to merge proofs");
|
297
|
-
proof = result;
|
298
|
-
}
|
299
|
-
return proof;
|
300
|
-
});
|
247
|
+
static async sequencer(params) {
|
248
|
+
const { worker, data } = params;
|
249
|
+
const { transactions } = data;
|
250
|
+
if (transactions.length === 0)
|
251
|
+
throw new Error("No transactions to process");
|
252
|
+
const proofs = [];
|
253
|
+
for (const transaction of transactions) {
|
254
|
+
const result = await worker.create(transaction);
|
255
|
+
if (result === undefined)
|
256
|
+
throw new Error("Failed to create proof");
|
257
|
+
proofs.push(result);
|
258
|
+
}
|
259
|
+
let proof = proofs[0];
|
260
|
+
for (let i = 1; i < proofs.length; i++) {
|
261
|
+
const result = await worker.merge(proof, proofs[i]);
|
262
|
+
if (result === undefined)
|
263
|
+
throw new Error("Failed to merge proofs");
|
264
|
+
proof = result;
|
265
|
+
}
|
266
|
+
return proof;
|
301
267
|
}
|
302
268
|
}
|
303
269
|
export class LocalStorage {
|
304
|
-
static saveData(name) {
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
yield saveFile({ data, filename });
|
314
|
-
});
|
270
|
+
static async saveData(name) {
|
271
|
+
const data = {
|
272
|
+
jobs: LocalStorage.jobs,
|
273
|
+
data: LocalStorage.data,
|
274
|
+
transactions: LocalStorage.transactions,
|
275
|
+
tasks: LocalStorage.tasks,
|
276
|
+
};
|
277
|
+
const filename = name + ".cloud";
|
278
|
+
await saveFile({ data, filename });
|
315
279
|
}
|
316
|
-
static loadData(name) {
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
LocalStorage.tasks = data.tasks;
|
326
|
-
});
|
280
|
+
static async loadData(name) {
|
281
|
+
const filename = name + ".cloud";
|
282
|
+
const data = await loadFile(filename);
|
283
|
+
if (data === undefined)
|
284
|
+
return;
|
285
|
+
LocalStorage.jobs = data.jobs;
|
286
|
+
LocalStorage.data = data.data;
|
287
|
+
LocalStorage.transactions = data.transactions;
|
288
|
+
LocalStorage.tasks = data.tasks;
|
327
289
|
}
|
328
290
|
}
|
329
291
|
LocalStorage.jobs = {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../../../src/cloud/local.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../../../src/cloud/local.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import { __awaiter } from "tslib";
|
2
1
|
import { Field, PublicKey, PrivateKey, Encoding, Group, Encryption, initializeBindings, } from "o1js";
|
3
2
|
export class CipherText {
|
4
3
|
static stringify(cipherText) {
|
@@ -32,10 +31,8 @@ export class CipherText {
|
|
32
31
|
throw Error(`Could not decrypt cipher='${cipherText}'.` + ` Error ${err}`);
|
33
32
|
}
|
34
33
|
}
|
35
|
-
static initialize() {
|
36
|
-
|
37
|
-
yield initializeBindings();
|
38
|
-
});
|
34
|
+
static async initialize() {
|
35
|
+
await initializeBindings();
|
39
36
|
}
|
40
37
|
}
|
41
38
|
//# sourceMappingURL=encryption.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../../../../src/encryption/encryption.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../../../../src/encryption/encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,EACL,UAAU,EACV,kBAAkB,GACnB,MAAM,MAAM,CAAC;AAOd,MAAM,OAAO,UAAU;IACrB,MAAM,CAAC,SAAS,CAAC,UAA4B;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO;YACL,SAAS,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YACnC,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAChE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,QAAgB;QAC9C,IAAI,CAAC;YACH,IAAI,MAAM,GAAY,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,SAAS,GAAG,UAAU,CAAC,OAAO,CAChC,MAAM,EACN,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC/B,CAAC;YACF,OAAO,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,CACT,8BAA8B,OAAO,gBAAgB,QAAQ,IAAI;gBAC/D,UAAU,GAAG,EAAE,CAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,UAAkB,EAAE,UAAkB;QACnD,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,UAAU,CAAC,OAAO,CAC7B,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAC5B,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAClC,CAAC;YACF,IAAI,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAClD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,CACT,6BAA6B,UAAU,IAAI,GAAG,UAAU,GAAG,EAAE,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU;QACrB,MAAM,kBAAkB,EAAE,CAAC;IAC7B,CAAC;CACF"}
|