@prosopo/provider 0.2.29 → 0.2.32
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/README.md +1 -1
- package/dist/api/admin.d.ts +3 -1
- package/dist/api/admin.d.ts.map +1 -1
- package/dist/api/admin.js +84 -1
- package/dist/api/admin.js.map +1 -1
- package/dist/api/authMiddleware.d.ts +5 -0
- package/dist/api/authMiddleware.d.ts.map +1 -0
- package/dist/api/authMiddleware.js +58 -0
- package/dist/api/authMiddleware.js.map +1 -0
- package/dist/batch/commitments.d.ts +1 -1
- package/dist/batch/commitments.d.ts.map +1 -1
- package/dist/batch/commitments.js +2 -0
- package/dist/batch/commitments.js.map +1 -1
- package/dist/cjs/api/captcha.cjs +27 -33
- package/dist/cjs/batch/commitments.cjs +1 -2
- package/dist/cjs/contracts/captcha/dist/types-returns/captcha.cjs +62 -0
- package/dist/cjs/tasks/calculateSolutions.cjs +1 -1
- package/dist/cjs/tasks/tasks.cjs +69 -100
- package/dist/cjs/util.cjs +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tests/batch/commitments.test.js.map +1 -1
- package/dist/tests/data/captchas.d.ts +37 -0
- package/dist/tests/data/captchas.d.ts.map +1 -0
- package/dist/tests/data/captchas.js +902 -0
- package/dist/tests/data/captchas.js.map +1 -0
- package/dist/tests/data/captchas1.json +53 -0
- package/dist/tests/data/captchas2.json +69 -0
- package/dist/tests/data/captchas3.json +54 -0
- package/dist/tests/data/captchas4.json +53 -0
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts.map +1 -1
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js.map +1 -1
- package/dist/tests/dataUtils/funds.js +1 -1
- package/dist/tests/dataUtils/funds.js.map +1 -1
- package/dist/util.js +2 -2
- package/dist/util.js.map +1 -1
- package/package.json +10 -10
package/dist/cjs/tasks/tasks.cjs
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const datasets = require("@prosopo/datasets");
|
|
4
|
-
const
|
|
4
|
+
const captcha = require("../contracts/captcha/dist/types-returns/captcha.cjs");
|
|
5
5
|
const common = require("@prosopo/common");
|
|
6
6
|
const contract = require("@prosopo/contract");
|
|
7
7
|
const util$1 = require("@prosopo/util");
|
|
8
8
|
const hex = require("@polkadot/util/hex");
|
|
9
9
|
const random = require("@polkadot/util-crypto/random");
|
|
10
|
-
const database = require("@prosopo/database");
|
|
11
10
|
const util = require("../util.cjs");
|
|
12
11
|
const signature = require("@polkadot/util-crypto/signature");
|
|
13
12
|
const string = require("@polkadot/util/string");
|
|
14
13
|
class Tasks {
|
|
15
14
|
constructor(env) {
|
|
16
15
|
if (!env.contractInterface) {
|
|
17
|
-
throw new common.ProsopoEnvError(
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
throw new common.ProsopoEnvError(
|
|
17
|
+
"CONTRACT.CONTRACT_UNDEFINED",
|
|
18
|
+
this.constructor.name,
|
|
19
|
+
{},
|
|
20
|
+
{ contractAddress: env.contractAddress }
|
|
21
|
+
);
|
|
20
22
|
}
|
|
21
23
|
this.config = env.config;
|
|
22
24
|
this.contract = env.contractInterface;
|
|
@@ -33,26 +35,18 @@ class Tasks {
|
|
|
33
35
|
async providerSetDataset(datasetRaw) {
|
|
34
36
|
var _a;
|
|
35
37
|
if (datasetRaw.captchas.length < this.config.captchas.solved.count + this.config.captchas.unsolved.count) {
|
|
36
|
-
throw new common.ProsopoEnvError("DATASET.CAPTCHAS_COUNT_LESS_THAN_CONFIGURED",
|
|
37
|
-
context: { failedFuncName: this.providerSetDataset.name }
|
|
38
|
-
});
|
|
38
|
+
throw new common.ProsopoEnvError("DATASET.CAPTCHAS_COUNT_LESS_THAN_CONFIGURED", this.providerSetDataset.name);
|
|
39
39
|
}
|
|
40
|
-
const solutions = datasetRaw.captchas.map((
|
|
40
|
+
const solutions = datasetRaw.captchas.map((captcha2) => captcha2.solution ? 1 : 0).reduce((partialSum, b) => partialSum + b, 0);
|
|
41
41
|
if (solutions < this.config.captchas.solved.count) {
|
|
42
|
-
throw new common.ProsopoEnvError("DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED",
|
|
43
|
-
context: { failedFuncName: this.providerSetDataset.name }
|
|
44
|
-
});
|
|
42
|
+
throw new common.ProsopoEnvError("DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED", this.providerSetDataset.name);
|
|
45
43
|
}
|
|
46
44
|
if (solutions < this.config.captchas.unsolved.count) {
|
|
47
|
-
throw new common.ProsopoEnvError("DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED",
|
|
48
|
-
context: { failedFuncName: this.providerSetDataset.name }
|
|
49
|
-
});
|
|
45
|
+
throw new common.ProsopoEnvError("DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED", this.providerSetDataset.name);
|
|
50
46
|
}
|
|
51
47
|
const dataset = await datasets.buildDataset(datasetRaw);
|
|
52
48
|
if (!dataset.datasetId || !dataset.datasetContentId) {
|
|
53
|
-
throw new common.ProsopoEnvError("DATASET.DATASET_ID_UNDEFINED",
|
|
54
|
-
context: { failedFuncName: this.providerSetDataset.name }
|
|
55
|
-
});
|
|
49
|
+
throw new common.ProsopoEnvError("DATASET.DATASET_ID_UNDEFINED", this.providerSetDataset.name);
|
|
56
50
|
}
|
|
57
51
|
await ((_a = this.db) == null ? void 0 : _a.storeDataset(dataset));
|
|
58
52
|
await contract.wrapQuery(this.contract.query.providerSetDataset, this.contract.query)(
|
|
@@ -75,22 +69,25 @@ class Tasks {
|
|
|
75
69
|
const captchaDocs = await this.db.getRandomCaptcha(solved, datasetId, size);
|
|
76
70
|
if (captchaDocs) {
|
|
77
71
|
const captchas = [];
|
|
78
|
-
for (const
|
|
72
|
+
for (const captcha2 of captchaDocs) {
|
|
79
73
|
const datasetDetails = await this.db.getDatasetDetails(datasetId);
|
|
80
74
|
const tree = new datasets.CaptchaMerkleTree();
|
|
81
75
|
if (datasetDetails.contentTree) {
|
|
82
76
|
tree.layers = datasetDetails.contentTree;
|
|
83
|
-
const proof = tree.proof(
|
|
84
|
-
delete
|
|
85
|
-
|
|
86
|
-
captchas.push({ captcha, proof });
|
|
77
|
+
const proof = tree.proof(captcha2.captchaContentId);
|
|
78
|
+
delete captcha2.solution;
|
|
79
|
+
captcha2.items = util.shuffleArray(captcha2.items);
|
|
80
|
+
captchas.push({ captcha: captcha2, proof });
|
|
87
81
|
}
|
|
88
82
|
}
|
|
89
83
|
return captchas;
|
|
90
84
|
}
|
|
91
|
-
throw new common.ProsopoEnvError(
|
|
92
|
-
|
|
93
|
-
|
|
85
|
+
throw new common.ProsopoEnvError(
|
|
86
|
+
"DATABASE.CAPTCHA_GET_FAILED",
|
|
87
|
+
this.getCaptchaWithProof.name,
|
|
88
|
+
{},
|
|
89
|
+
{ datasetId, solved, size }
|
|
90
|
+
);
|
|
94
91
|
}
|
|
95
92
|
/**
|
|
96
93
|
* Validate and store the text captcha solution(s) from the Dapp User in a web2 environment
|
|
@@ -103,15 +100,11 @@ class Tasks {
|
|
|
103
100
|
*/
|
|
104
101
|
async dappUserSolution(userAccount, dappAccount, requestHash, captchas, signature$1) {
|
|
105
102
|
if (!await this.dappIsActive(dappAccount)) {
|
|
106
|
-
throw new common.ProsopoEnvError("CONTRACT.DAPP_NOT_ACTIVE", {
|
|
107
|
-
context: { failedFuncName: this.getPaymentInfo.name, dappAccount }
|
|
108
|
-
});
|
|
103
|
+
throw new common.ProsopoEnvError("CONTRACT.DAPP_NOT_ACTIVE", this.getPaymentInfo.name, {}, { dappAccount });
|
|
109
104
|
}
|
|
110
105
|
const verification = signature.signatureVerify(string.stringToHex(requestHash), signature$1, userAccount);
|
|
111
106
|
if (!verification.isValid) {
|
|
112
|
-
throw new common.ProsopoEnvError("GENERAL.INVALID_SIGNATURE", {
|
|
113
|
-
context: { failedFuncName: this.dappUserSolution.name, userAccount }
|
|
114
|
-
});
|
|
107
|
+
throw new common.ProsopoEnvError("GENERAL.INVALID_SIGNATURE", this.dappUserSolution.name, {}, { userAccount });
|
|
115
108
|
}
|
|
116
109
|
let response = {
|
|
117
110
|
captchas: [],
|
|
@@ -136,7 +129,7 @@ class Tasks {
|
|
|
136
129
|
dappContract: dappAccount,
|
|
137
130
|
providerAccount: this.contract.pair.address,
|
|
138
131
|
datasetId: provider.datasetId.toString(),
|
|
139
|
-
status:
|
|
132
|
+
status: captcha.CaptchaStatus.pending,
|
|
140
133
|
userSignature: Array.from(userSignature),
|
|
141
134
|
requestedAt: pendingRecord.requestedAtBlock,
|
|
142
135
|
// TODO is this correct or should it be block number?
|
|
@@ -193,23 +186,23 @@ class Tasks {
|
|
|
193
186
|
*/
|
|
194
187
|
async validateReceivedCaptchasAgainstStoredCaptchas(captchas) {
|
|
195
188
|
const receivedCaptchas = datasets.parseAndSortCaptchaSolutions(captchas);
|
|
196
|
-
const captchaIds = receivedCaptchas.map((
|
|
189
|
+
const captchaIds = receivedCaptchas.map((captcha2) => captcha2.captchaId);
|
|
197
190
|
const storedCaptchas = await this.db.getCaptchaById(captchaIds);
|
|
198
191
|
if (!storedCaptchas || receivedCaptchas.length !== storedCaptchas.length) {
|
|
199
|
-
throw new common.ProsopoEnvError(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
192
|
+
throw new common.ProsopoEnvError(
|
|
193
|
+
"CAPTCHA.INVALID_CAPTCHA_ID",
|
|
194
|
+
this.validateReceivedCaptchasAgainstStoredCaptchas.name,
|
|
195
|
+
{},
|
|
196
|
+
captchas
|
|
197
|
+
);
|
|
205
198
|
}
|
|
206
|
-
if (!storedCaptchas.every((
|
|
207
|
-
throw new common.ProsopoEnvError(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
199
|
+
if (!storedCaptchas.every((captcha2) => captcha2.datasetId === util$1.at(storedCaptchas, 0).datasetId)) {
|
|
200
|
+
throw new common.ProsopoEnvError(
|
|
201
|
+
"CAPTCHA.DIFFERENT_DATASET_IDS",
|
|
202
|
+
this.validateReceivedCaptchasAgainstStoredCaptchas.name,
|
|
203
|
+
{},
|
|
204
|
+
captchas
|
|
205
|
+
);
|
|
213
206
|
}
|
|
214
207
|
return { storedCaptchas, receivedCaptchas, captchaIds };
|
|
215
208
|
}
|
|
@@ -221,16 +214,16 @@ class Tasks {
|
|
|
221
214
|
async buildTreeAndGetCommitmentId(captchaSolutions) {
|
|
222
215
|
var _a;
|
|
223
216
|
const tree = new datasets.CaptchaMerkleTree();
|
|
224
|
-
const solutionsHashed = captchaSolutions.map((
|
|
217
|
+
const solutionsHashed = captchaSolutions.map((captcha2) => datasets.computeCaptchaSolutionHash(captcha2));
|
|
225
218
|
tree.build(solutionsHashed);
|
|
226
219
|
const commitmentId = (_a = tree.root) == null ? void 0 : _a.hash;
|
|
227
220
|
if (!commitmentId) {
|
|
228
|
-
throw new common.ProsopoEnvError(
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
|
|
221
|
+
throw new common.ProsopoEnvError(
|
|
222
|
+
"CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST",
|
|
223
|
+
this.buildTreeAndGetCommitmentId.name,
|
|
224
|
+
{},
|
|
225
|
+
{ commitmentId }
|
|
226
|
+
);
|
|
234
227
|
}
|
|
235
228
|
return { tree, commitmentId };
|
|
236
229
|
}
|
|
@@ -281,7 +274,7 @@ class Tasks {
|
|
|
281
274
|
salt
|
|
282
275
|
);
|
|
283
276
|
const currentTime = Date.now();
|
|
284
|
-
const timeLimit = captchas.map((
|
|
277
|
+
const timeLimit = captchas.map((captcha2) => captcha2.captcha.timeLimitMs || 3e4).reduce((a, b) => a + b, 0);
|
|
285
278
|
const deadlineTs = timeLimit + currentTime;
|
|
286
279
|
const currentBlockNumber = await contract.getBlockNumber(this.contract.api);
|
|
287
280
|
await this.db.storeDappUserPending(userAccount, requestHash, salt, deadlineTs, currentBlockNumber.toNumber());
|
|
@@ -311,23 +304,23 @@ class Tasks {
|
|
|
311
304
|
async validateProviderWasRandomlyChosen(userAccount, dappContractAccount, datasetId, blockNumber) {
|
|
312
305
|
const contract2 = await this.contract.contract;
|
|
313
306
|
if (!contract2) {
|
|
314
|
-
throw new common.ProsopoEnvError("CONTRACT.CONTRACT_UNDEFINED",
|
|
315
|
-
context: { failedFuncName: this.validateProviderWasRandomlyChosen.name }
|
|
316
|
-
});
|
|
307
|
+
throw new common.ProsopoEnvError("CONTRACT.CONTRACT_UNDEFINED", this.validateProviderWasRandomlyChosen.name);
|
|
317
308
|
}
|
|
318
309
|
const header = await contract2.api.rpc.chain.getHeader();
|
|
319
310
|
const isBlockNoValid = await this.isRecentBlock(contract2, header, blockNumber);
|
|
320
311
|
if (!isBlockNoValid) {
|
|
321
|
-
throw new common.ProsopoEnvError(
|
|
322
|
-
|
|
323
|
-
|
|
312
|
+
throw new common.ProsopoEnvError(
|
|
313
|
+
"CAPTCHA.INVALID_BLOCK_NO",
|
|
314
|
+
this.validateProviderWasRandomlyChosen.name,
|
|
315
|
+
{},
|
|
316
|
+
{
|
|
324
317
|
userAccount,
|
|
325
318
|
dappContractAccount,
|
|
326
319
|
datasetId,
|
|
327
320
|
header,
|
|
328
321
|
blockNumber
|
|
329
322
|
}
|
|
330
|
-
|
|
323
|
+
);
|
|
331
324
|
}
|
|
332
325
|
const block = await contract2.api.rpc.chain.getBlockHash(blockNumber);
|
|
333
326
|
const randomProviderAndBlockNo = await this.contract.queryAtBlock(
|
|
@@ -336,12 +329,12 @@ class Tasks {
|
|
|
336
329
|
[userAccount, dappContractAccount]
|
|
337
330
|
);
|
|
338
331
|
if (datasetId.toString().localeCompare(randomProviderAndBlockNo.provider.datasetId.toString())) {
|
|
339
|
-
throw new common.ProsopoEnvError(
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
332
|
+
throw new common.ProsopoEnvError(
|
|
333
|
+
"DATASET.INVALID_DATASET_ID",
|
|
334
|
+
this.validateProviderWasRandomlyChosen.name,
|
|
335
|
+
{},
|
|
336
|
+
randomProviderAndBlockNo
|
|
337
|
+
);
|
|
345
338
|
}
|
|
346
339
|
}
|
|
347
340
|
/**
|
|
@@ -375,12 +368,12 @@ class Tasks {
|
|
|
375
368
|
async getDappUserCommitmentById(commitmentId) {
|
|
376
369
|
const dappUserSolution = await this.db.getDappUserCommitmentById(commitmentId);
|
|
377
370
|
if (!dappUserSolution) {
|
|
378
|
-
throw new common.ProsopoEnvError(
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
}
|
|
383
|
-
|
|
371
|
+
throw new common.ProsopoEnvError(
|
|
372
|
+
"CAPTCHA.DAPP_USER_SOLUTION_NOT_FOUND",
|
|
373
|
+
this.getDappUserCommitmentById.name,
|
|
374
|
+
{},
|
|
375
|
+
{ commitmentId }
|
|
376
|
+
);
|
|
384
377
|
}
|
|
385
378
|
return dappUserSolution;
|
|
386
379
|
}
|
|
@@ -389,7 +382,7 @@ class Tasks {
|
|
|
389
382
|
const dappUserSolutions = await this.db.getDappUserCommitmentByAccount(userAccount);
|
|
390
383
|
if (dappUserSolutions.length > 0) {
|
|
391
384
|
for (const dappUserSolution of dappUserSolutions) {
|
|
392
|
-
if (dappUserSolution.status ===
|
|
385
|
+
if (dappUserSolution.status === captcha.CaptchaStatus.approved) {
|
|
393
386
|
return dappUserSolution;
|
|
394
387
|
}
|
|
395
388
|
}
|
|
@@ -398,35 +391,11 @@ class Tasks {
|
|
|
398
391
|
}
|
|
399
392
|
/* Returns public details of provider */
|
|
400
393
|
async getProviderDetails() {
|
|
401
|
-
|
|
402
|
-
this.contract.query.getProvider,
|
|
403
|
-
this.contract.query
|
|
404
|
-
)(this.contract.pair.address);
|
|
405
|
-
const dbConnectionOk = await this.getCaptchaWithProof(provider.datasetId, true, 1).then(() => true).catch(() => false);
|
|
406
|
-
return { provider, dbConnectionOk };
|
|
394
|
+
return await contract.wrapQuery(this.contract.query.getProvider, this.contract.query)(this.contract.pair.address);
|
|
407
395
|
}
|
|
408
396
|
/** Get the dataset from the databse */
|
|
409
397
|
async getProviderDataset(datasetId) {
|
|
410
398
|
return await this.db.getDataset(datasetId);
|
|
411
399
|
}
|
|
412
|
-
/**
|
|
413
|
-
* Get the current block number
|
|
414
|
-
*/
|
|
415
|
-
async getCurrentBlockNumber() {
|
|
416
|
-
return (await contract.getBlockNumber(this.contract.api)).toNumber();
|
|
417
|
-
}
|
|
418
|
-
/**
|
|
419
|
-
* Get the current block time in milliseconds
|
|
420
|
-
*/
|
|
421
|
-
async getBlockTimeMs() {
|
|
422
|
-
const blockTime = this.contract.api.consts.babe.expectedBlockTime;
|
|
423
|
-
return blockTime.toNumber();
|
|
424
|
-
}
|
|
425
|
-
async saveCaptchaEvent(events, accountId) {
|
|
426
|
-
if (!this.config.mongoAtlasUri) {
|
|
427
|
-
return;
|
|
428
|
-
}
|
|
429
|
-
await database.saveCaptchaEvent(events, accountId, this.config.mongoAtlasUri);
|
|
430
|
-
}
|
|
431
400
|
}
|
|
432
401
|
exports.Tasks = Tasks;
|
package/dist/cjs/util.cjs
CHANGED
|
@@ -10,8 +10,8 @@ const pl = require("nodejs-polars");
|
|
|
10
10
|
function encodeStringAddress(address$1) {
|
|
11
11
|
try {
|
|
12
12
|
return address.encodeAddress(is.isHex(address$1) ? hex.hexToU8a(address$1) : address.decodeAddress(address$1));
|
|
13
|
-
} catch (
|
|
14
|
-
throw new common.
|
|
13
|
+
} catch (error) {
|
|
14
|
+
throw new common.ProsopoEnvError(error, "CONTRACT.INVALID_ADDRESS", {}, address$1);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
function shuffleArray(array) {
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitments.test.js","sourceRoot":"","sources":["../../../src/tests/batch/commitments.test.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAmB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACjG,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACtE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACzC,MAAM,YAAY,GAAG,IAAI,EAAE,CAAC,IAAK,CAAC,CAAA;AAClC,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;AAEzC,SAAS,YAAY,CAAC,GAAe;IACjC,OAAO,KAAK,CACR,KAAK,EAEL,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB;QAE9B,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe;QAEtC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB;QAEtC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;YAC/C,CAAC;gBACC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"commitments.test.js","sourceRoot":"","sources":["../../../src/tests/batch/commitments.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare const captchaData: {
|
|
2
|
+
datasetId: string;
|
|
3
|
+
captchas: ({
|
|
4
|
+
salt: string;
|
|
5
|
+
solution: number[];
|
|
6
|
+
timeLimit: number;
|
|
7
|
+
items: {
|
|
8
|
+
hash: string;
|
|
9
|
+
data: string;
|
|
10
|
+
type: string;
|
|
11
|
+
}[];
|
|
12
|
+
target: string;
|
|
13
|
+
} | {
|
|
14
|
+
salt: string;
|
|
15
|
+
solution: number[];
|
|
16
|
+
items: {
|
|
17
|
+
hash: string;
|
|
18
|
+
data: string;
|
|
19
|
+
type: string;
|
|
20
|
+
}[];
|
|
21
|
+
target: string;
|
|
22
|
+
timeLimit?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
salt: string;
|
|
25
|
+
items: {
|
|
26
|
+
hash: string;
|
|
27
|
+
data: string;
|
|
28
|
+
type: string;
|
|
29
|
+
}[];
|
|
30
|
+
target: string;
|
|
31
|
+
solution?: undefined;
|
|
32
|
+
timeLimit?: undefined;
|
|
33
|
+
})[];
|
|
34
|
+
format: string;
|
|
35
|
+
timeLimit: number;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=captchas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captchas.d.ts","sourceRoot":"","sources":["../../../src/tests/data/captchas.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAu3BvB,CAAA"}
|