@prosopo/provider 0.1.16 → 0.1.17
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/coverage/tmp/coverage-14066-1690288461446-0.json +1 -0
- package/dist/api/admin.d.ts +2 -0
- package/dist/api/admin.d.ts.map +1 -0
- package/dist/api/admin.js +58 -0
- package/dist/api/admin.js.map +1 -0
- package/dist/{api.d.ts → api/captcha.d.ts} +1 -1
- package/dist/api/captcha.d.ts.map +1 -0
- package/dist/{api.js → api/captcha.js} +53 -34
- package/dist/api/captcha.js.map +1 -0
- package/dist/batch/commitments.d.ts +5 -6
- package/dist/batch/commitments.d.ts.map +1 -1
- package/dist/batch/commitments.js +57 -58
- package/dist/batch/commitments.js.map +1 -1
- package/dist/batch/index.d.ts +1 -1
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +14 -4
- package/dist/batch/index.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -8
- package/dist/index.js.map +1 -1
- package/dist/scheduler.d.ts +2 -1
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +26 -12
- package/dist/scheduler.js.map +1 -1
- package/dist/tasks/calculateSolutions.d.ts +10 -0
- package/dist/tasks/calculateSolutions.d.ts.map +1 -0
- package/dist/tasks/calculateSolutions.js +90 -0
- package/dist/tasks/calculateSolutions.js.map +1 -0
- package/dist/tasks/index.d.ts +2 -1
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +3 -5
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/tasks.d.ts +8 -8
- package/dist/tasks/tasks.d.ts.map +1 -1
- package/dist/tasks/tasks.js +81 -116
- package/dist/tasks/tasks.js.map +1 -1
- package/dist/util.d.ts +9 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +47 -29
- package/dist/util.js.map +1 -1
- package/package.json +68 -69
- package/dist/api.d.ts.map +0 -1
- package/dist/api.js.map +0 -1
package/dist/tasks/tasks.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Tasks = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
// Copyright 2021-2022 Prosopo (UK) Ltd.
|
|
1
|
+
// Copyright 2021-2023 Prosopo (UK) Ltd.
|
|
6
2
|
//
|
|
7
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -15,44 +11,60 @@ const tslib_1 = require("tslib");
|
|
|
15
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
12
|
// See the License for the specific language governing permissions and
|
|
17
13
|
// limitations under the License.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const contract_2 = require("@prosopo/contract");
|
|
26
|
-
const consola_1 = tslib_1.__importDefault(require("consola"));
|
|
14
|
+
import { ArgumentTypes, CaptchaStatus, } from '@prosopo/types';
|
|
15
|
+
import { CaptchaMerkleTree, buildDataset, compareCaptchaSolutions, computeCaptchaSolutionHash, computePendingRequestHash, parseAndSortCaptchaSolutions, parseCaptchaDataset, } from '@prosopo/datasets';
|
|
16
|
+
import { ProsopoEnvError, getLogger } from '@prosopo/common';
|
|
17
|
+
import { getBlockNumber, wrapQuery } from '@prosopo/contract';
|
|
18
|
+
import { hexToU8a, stringToHex } from '@polkadot/util';
|
|
19
|
+
import { randomAsHex, signatureVerify } from '@polkadot/util-crypto';
|
|
20
|
+
import { shuffleArray } from '../util.js';
|
|
27
21
|
/**
|
|
28
22
|
* @description Tasks that are shared by the API and CLI
|
|
29
23
|
*/
|
|
30
|
-
class Tasks {
|
|
24
|
+
export class Tasks {
|
|
31
25
|
contract;
|
|
32
26
|
db;
|
|
33
27
|
captchaConfig;
|
|
34
28
|
captchaSolutionConfig;
|
|
35
29
|
logger;
|
|
30
|
+
config;
|
|
36
31
|
constructor(env) {
|
|
37
32
|
if (!env.contractInterface) {
|
|
38
|
-
throw new
|
|
33
|
+
throw new ProsopoEnvError('CONTRACT.CONTRACT_UNDEFINED', this.constructor.name, {}, { contractAddress: env.contractAddress });
|
|
39
34
|
}
|
|
35
|
+
this.config = env.config;
|
|
40
36
|
this.contract = env.contractInterface;
|
|
41
37
|
this.db = env.db;
|
|
42
38
|
this.captchaConfig = env.config.captchas;
|
|
43
39
|
this.captchaSolutionConfig = env.config.captchaSolutions;
|
|
44
|
-
this.logger = (
|
|
40
|
+
this.logger = getLogger(env.config.logLevel, 'Tasks');
|
|
45
41
|
}
|
|
46
42
|
async providerSetDatasetFromFile(file) {
|
|
47
|
-
const datasetRaw =
|
|
43
|
+
const datasetRaw = parseCaptchaDataset(file);
|
|
44
|
+
this.logger.debug('Parsed raw data set');
|
|
48
45
|
return await this.providerSetDataset(datasetRaw);
|
|
49
46
|
}
|
|
50
47
|
async providerSetDataset(datasetRaw) {
|
|
51
|
-
|
|
48
|
+
// check that the number of captchas contained within dataset.captchas is greater than or equal to the total
|
|
49
|
+
// number of captchas that must be served
|
|
50
|
+
if (datasetRaw.captchas.length < this.config.captchas.solved.count + this.config.captchas.unsolved.count) {
|
|
51
|
+
throw new ProsopoEnvError('DATASET.CAPTCHAS_COUNT_LESS_THAN_CONFIGURED', this.providerSetDataset.name);
|
|
52
|
+
}
|
|
53
|
+
// check that the number of solutions contained within dataset.captchas is greater than or equal to the number
|
|
54
|
+
// of solved captchas that must be served
|
|
55
|
+
const solutions = datasetRaw.captchas
|
|
56
|
+
.map((captcha) => (captcha.solution ? 1 : 0))
|
|
57
|
+
.reduce((partialSum, b) => partialSum + b, 0);
|
|
58
|
+
if (solutions < this.config.captchas.solved.count) {
|
|
59
|
+
throw new ProsopoEnvError('DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED', this.providerSetDataset.name);
|
|
60
|
+
}
|
|
61
|
+
const dataset = await buildDataset(datasetRaw);
|
|
52
62
|
if (!dataset.datasetId || !dataset.datasetContentId) {
|
|
53
|
-
throw new
|
|
63
|
+
throw new ProsopoEnvError('DATASET.DATASET_ID_UNDEFINED', this.providerSetDataset.name);
|
|
54
64
|
}
|
|
55
65
|
await this.db?.storeDataset(dataset);
|
|
66
|
+
// catch any errors before running the tx
|
|
67
|
+
await wrapQuery(this.contract.query.providerSetDataset, this.contract.query)(dataset.datasetId, dataset.datasetContentId);
|
|
56
68
|
const txResult = await this.contract.methods.providerSetDataset(dataset.datasetId, dataset.datasetContentId, {
|
|
57
69
|
value: 0,
|
|
58
70
|
});
|
|
@@ -71,19 +83,19 @@ class Tasks {
|
|
|
71
83
|
const captchas = [];
|
|
72
84
|
for (const captcha of captchaDocs) {
|
|
73
85
|
const datasetDetails = await this.db.getDatasetDetails(datasetId);
|
|
74
|
-
const tree = new
|
|
86
|
+
const tree = new CaptchaMerkleTree();
|
|
75
87
|
if (datasetDetails.contentTree) {
|
|
76
88
|
tree.layers = datasetDetails.contentTree;
|
|
77
89
|
const proof = tree.proof(captcha.captchaContentId);
|
|
78
90
|
// cannot pass solution to dapp user as they are required to solve the captcha!
|
|
79
91
|
delete captcha.solution;
|
|
80
|
-
captcha.items =
|
|
92
|
+
captcha.items = shuffleArray(captcha.items);
|
|
81
93
|
captchas.push({ captcha, proof });
|
|
82
94
|
}
|
|
83
95
|
}
|
|
84
96
|
return captchas;
|
|
85
97
|
}
|
|
86
|
-
throw new
|
|
98
|
+
throw new ProsopoEnvError('DATABASE.CAPTCHA_GET_FAILED', this.getCaptchaWithProof.name, {}, { datasetId, solved, size });
|
|
87
99
|
}
|
|
88
100
|
/**
|
|
89
101
|
* Validate and store the text captcha solution(s) from the Dapp User in a web2 environment
|
|
@@ -97,13 +109,13 @@ class Tasks {
|
|
|
97
109
|
async dappUserSolution(userAccount, dappAccount, requestHash, captchas, signature // the signature to indicate ownership of account (web2 only)
|
|
98
110
|
) {
|
|
99
111
|
if (!(await this.dappIsActive(dappAccount))) {
|
|
100
|
-
throw new
|
|
112
|
+
throw new ProsopoEnvError('CONTRACT.DAPP_NOT_ACTIVE', this.getPaymentInfo.name, {}, { dappAccount });
|
|
101
113
|
}
|
|
102
114
|
// check that the signature is valid (i.e. the web2 user has signed the message with their private key, proving they own their account)
|
|
103
|
-
const verification =
|
|
115
|
+
const verification = signatureVerify(stringToHex(requestHash), signature, userAccount);
|
|
104
116
|
if (!verification.isValid) {
|
|
105
117
|
// the signature is not valid, so the user is not the owner of the account. May have given a false account address with good reputation in an attempt to impersonate
|
|
106
|
-
throw new
|
|
118
|
+
throw new ProsopoEnvError('GENERAL.INVALID_SIGNATURE', this.dappUserSolution.name, {}, { userAccount });
|
|
107
119
|
}
|
|
108
120
|
let response = {
|
|
109
121
|
captchas: [],
|
|
@@ -117,8 +129,8 @@ class Tasks {
|
|
|
117
129
|
const pendingRecord = await this.db.getDappUserPending(requestHash);
|
|
118
130
|
const pendingRequest = await this.validateDappUserSolutionRequestIsPending(requestHash, pendingRecord, userAccount, captchaIds);
|
|
119
131
|
// Only do stuff if the request is in the local DB
|
|
120
|
-
const userSignature =
|
|
121
|
-
const blockNumber = (await
|
|
132
|
+
const userSignature = hexToU8a(signature);
|
|
133
|
+
const blockNumber = (await getBlockNumber(this.contract.api)).toNumber();
|
|
122
134
|
if (pendingRequest) {
|
|
123
135
|
const commit = {
|
|
124
136
|
id: commitmentId,
|
|
@@ -126,14 +138,15 @@ class Tasks {
|
|
|
126
138
|
dappContract: dappAccount,
|
|
127
139
|
providerAccount: this.contract.pair.address,
|
|
128
140
|
datasetId: provider.datasetId.toString(),
|
|
129
|
-
status:
|
|
141
|
+
status: CaptchaStatus.pending,
|
|
130
142
|
userSignature: Array.from(userSignature),
|
|
131
143
|
requestedAt: pendingRecord.requestedAtBlock,
|
|
132
144
|
completedAt: blockNumber,
|
|
133
145
|
processed: false,
|
|
146
|
+
batched: false,
|
|
134
147
|
};
|
|
135
148
|
await this.db.storeDappUserSolution(receivedCaptchas, commit);
|
|
136
|
-
if (
|
|
149
|
+
if (compareCaptchaSolutions(receivedCaptchas, storedCaptchas)) {
|
|
137
150
|
response = {
|
|
138
151
|
captchas: captchaIds.map((id) => ({
|
|
139
152
|
captchaId: id,
|
|
@@ -159,30 +172,35 @@ class Tasks {
|
|
|
159
172
|
* Validate that the dapp is active in the contract
|
|
160
173
|
*/
|
|
161
174
|
async dappIsActive(dappAccount) {
|
|
162
|
-
const dapp = await
|
|
175
|
+
const dapp = await wrapQuery(this.contract.query.getDapp, this.contract.query)(dappAccount);
|
|
163
176
|
//dapp.status.isActive doesn't work: https://substrate.stackexchange.com/questions/6333/how-do-we-work-with-polkadot-js-enums-in-typescript
|
|
164
177
|
return dapp.status.toString() === 'Active';
|
|
165
178
|
}
|
|
166
179
|
/**
|
|
167
|
-
*
|
|
180
|
+
* Gets provider status in contract
|
|
168
181
|
*/
|
|
169
|
-
async
|
|
170
|
-
|
|
171
|
-
|
|
182
|
+
async providerStatus() {
|
|
183
|
+
try {
|
|
184
|
+
const provider = await wrapQuery(this.contract.query.getProvider, this.contract.query)(this.contract.pair.address);
|
|
185
|
+
return { status: provider.status ? 'Registered' : 'Unregistered' };
|
|
186
|
+
}
|
|
187
|
+
catch (e) {
|
|
188
|
+
return { status: 'Unregistered' };
|
|
189
|
+
}
|
|
172
190
|
}
|
|
173
191
|
/**
|
|
174
192
|
* Validate length of received captchas array matches length of captchas found in database
|
|
175
193
|
* Validate that the datasetId is the same for all captchas and is equal to the datasetId on the stored captchas
|
|
176
194
|
*/
|
|
177
195
|
async validateReceivedCaptchasAgainstStoredCaptchas(captchas) {
|
|
178
|
-
const receivedCaptchas =
|
|
196
|
+
const receivedCaptchas = parseAndSortCaptchaSolutions(captchas);
|
|
179
197
|
const captchaIds = receivedCaptchas.map((captcha) => captcha.captchaId);
|
|
180
198
|
const storedCaptchas = await this.db.getCaptchaById(captchaIds);
|
|
181
199
|
if (!storedCaptchas || receivedCaptchas.length !== storedCaptchas.length) {
|
|
182
|
-
throw new
|
|
200
|
+
throw new ProsopoEnvError('CAPTCHA.INVALID_CAPTCHA_ID', this.validateReceivedCaptchasAgainstStoredCaptchas.name, {}, captchas);
|
|
183
201
|
}
|
|
184
202
|
if (!storedCaptchas.every((captcha) => captcha.datasetId === storedCaptchas[0].datasetId)) {
|
|
185
|
-
throw new
|
|
203
|
+
throw new ProsopoEnvError('CAPTCHA.DIFFERENT_DATASET_IDS', this.validateReceivedCaptchasAgainstStoredCaptchas.name, {}, captchas);
|
|
186
204
|
}
|
|
187
205
|
return { storedCaptchas, receivedCaptchas, captchaIds };
|
|
188
206
|
}
|
|
@@ -192,12 +210,12 @@ class Tasks {
|
|
|
192
210
|
* @returns {Promise<{ tree: CaptchaMerkleTree, commitment: CaptchaSolutionCommitment, commitmentId: string }>}
|
|
193
211
|
*/
|
|
194
212
|
async buildTreeAndGetCommitmentId(captchaSolutions) {
|
|
195
|
-
const tree = new
|
|
196
|
-
const solutionsHashed = captchaSolutions.map((captcha) =>
|
|
213
|
+
const tree = new CaptchaMerkleTree();
|
|
214
|
+
const solutionsHashed = captchaSolutions.map((captcha) => computeCaptchaSolutionHash(captcha));
|
|
197
215
|
tree.build(solutionsHashed);
|
|
198
216
|
const commitmentId = tree.root?.hash;
|
|
199
217
|
if (!commitmentId) {
|
|
200
|
-
throw new
|
|
218
|
+
throw new ProsopoEnvError('CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST', this.buildTreeAndGetCommitmentId.name, {}, { commitmentId: commitmentId });
|
|
201
219
|
}
|
|
202
220
|
return { tree, commitmentId };
|
|
203
221
|
}
|
|
@@ -216,7 +234,7 @@ class Tasks {
|
|
|
216
234
|
return false;
|
|
217
235
|
}
|
|
218
236
|
if (pendingRecord) {
|
|
219
|
-
const pendingHashComputed =
|
|
237
|
+
const pendingHashComputed = computePendingRequestHash(captchaIds, userAccount, pendingRecord.salt);
|
|
220
238
|
return requestHash === pendingHashComputed;
|
|
221
239
|
}
|
|
222
240
|
return false;
|
|
@@ -229,88 +247,28 @@ class Tasks {
|
|
|
229
247
|
async getRandomCaptchasAndRequestHash(datasetId, userAccount) {
|
|
230
248
|
const dataset = await this.db.getDatasetDetails(datasetId);
|
|
231
249
|
if (!dataset) {
|
|
232
|
-
throw new
|
|
250
|
+
throw new ProsopoEnvError('DATABASE.DATASET_GET_FAILED');
|
|
233
251
|
}
|
|
234
252
|
const unsolvedCount = Math.abs(Math.trunc(this.captchaConfig.unsolved.count));
|
|
235
253
|
const solvedCount = Math.abs(Math.trunc(this.captchaConfig.solved.count));
|
|
236
254
|
if (!solvedCount) {
|
|
237
|
-
throw new
|
|
255
|
+
throw new ProsopoEnvError('CONFIG.INVALID_CAPTCHA_NUMBER');
|
|
238
256
|
}
|
|
239
257
|
const solved = await this.getCaptchaWithProof(datasetId, true, solvedCount);
|
|
240
258
|
let unsolved = [];
|
|
241
259
|
if (unsolvedCount) {
|
|
242
260
|
unsolved = await this.getCaptchaWithProof(datasetId, false, unsolvedCount);
|
|
243
261
|
}
|
|
244
|
-
const captchas =
|
|
245
|
-
const salt =
|
|
246
|
-
const requestHash =
|
|
262
|
+
const captchas = shuffleArray([...solved, ...unsolved]);
|
|
263
|
+
const salt = randomAsHex();
|
|
264
|
+
const requestHash = computePendingRequestHash(captchas.map((c) => c.captcha.captchaId), userAccount, salt);
|
|
247
265
|
const currentTime = Date.now();
|
|
248
266
|
const timeLimit = captchas.map((captcha) => captcha.captcha.timeLimitMs || 30000).reduce((a, b) => a + b, 0);
|
|
249
267
|
const deadlineTs = timeLimit + currentTime;
|
|
250
|
-
const currentBlockNumber = await
|
|
268
|
+
const currentBlockNumber = await getBlockNumber(this.contract.api);
|
|
251
269
|
await this.db.storeDappUserPending(userAccount, requestHash, salt, deadlineTs, currentBlockNumber.toNumber());
|
|
252
270
|
return { captchas, requestHash };
|
|
253
271
|
}
|
|
254
|
-
/**
|
|
255
|
-
* Apply new captcha solutions to captcha dataset and recalculate merkle tree
|
|
256
|
-
*/
|
|
257
|
-
async calculateCaptchaSolutions() {
|
|
258
|
-
try {
|
|
259
|
-
// Get the current datasetId from the contract
|
|
260
|
-
const provider = (await this.contract.methods.getProvider(this.contract.pair.address, {})).value
|
|
261
|
-
.unwrap()
|
|
262
|
-
.unwrap();
|
|
263
|
-
// Get any unsolved CAPTCHA challenges from the database for this datasetId
|
|
264
|
-
const unsolvedCaptchas = await this.db.getAllCaptchasByDatasetId(provider.datasetId.toString(), types_1.CaptchaStates.Unsolved);
|
|
265
|
-
// edge case when a captcha dataset contains no unsolved CAPTCHA challenges
|
|
266
|
-
if (!unsolvedCaptchas) {
|
|
267
|
-
return 0;
|
|
268
|
-
}
|
|
269
|
-
// Sort the unsolved CAPTCHA challenges by their captchaId
|
|
270
|
-
const unsolvedSorted = unsolvedCaptchas.sort(datasets_1.captchaSort);
|
|
271
|
-
consola_1.default.info(`There are ${unsolvedSorted.length} unsolved CAPTCHA challenges`);
|
|
272
|
-
// Get the solution configuration from the config file
|
|
273
|
-
const requiredNumberOfSolutions = this.captchaSolutionConfig.requiredNumberOfSolutions;
|
|
274
|
-
const winningPercentage = this.captchaSolutionConfig.solutionWinningPercentage;
|
|
275
|
-
const winningNumberOfSolutions = Math.round(requiredNumberOfSolutions * (winningPercentage / 100));
|
|
276
|
-
if (unsolvedSorted && unsolvedSorted.length > 0) {
|
|
277
|
-
const captchaIds = unsolvedSorted.map((captcha) => captcha.captchaId);
|
|
278
|
-
const solutions = (await this.db.getAllDappUserSolutions(captchaIds)) || [];
|
|
279
|
-
const solutionsToUpdate = (0, util_1.calculateNewSolutions)(solutions, winningNumberOfSolutions);
|
|
280
|
-
if (solutionsToUpdate.rows().length > 0) {
|
|
281
|
-
consola_1.default.info(`There are ${solutionsToUpdate.rows().length} CAPTCHA challenges to update with solutions`);
|
|
282
|
-
try {
|
|
283
|
-
const captchaIdsToUpdate = [...solutionsToUpdate['captchaId'].values()];
|
|
284
|
-
const commitmentIds = solutions
|
|
285
|
-
.filter((s) => captchaIdsToUpdate.indexOf(s.captchaId) > -1)
|
|
286
|
-
.map((s) => s.commitmentId);
|
|
287
|
-
const dataset = await this.db.getDataset(provider.datasetId.toString());
|
|
288
|
-
dataset.captchas = (0, util_1.updateSolutions)(solutionsToUpdate, dataset.captchas, this.logger);
|
|
289
|
-
// store new solutions in database
|
|
290
|
-
await this.providerSetDataset(dataset);
|
|
291
|
-
// mark user solutions as used to calculate new solutions
|
|
292
|
-
await this.db.flagUsedDappUserSolutions(captchaIdsToUpdate);
|
|
293
|
-
// mark user commitments as used to calculate new solutions
|
|
294
|
-
await this.db.flagUsedDappUserCommitments(commitmentIds);
|
|
295
|
-
// remove old captcha challenges from database
|
|
296
|
-
await this.db.removeCaptchas(captchaIdsToUpdate);
|
|
297
|
-
return solutionsToUpdate.rows().length;
|
|
298
|
-
}
|
|
299
|
-
catch (error) {
|
|
300
|
-
consola_1.default.error(error);
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
return 0;
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
consola_1.default.info(`There are no CAPTCHA challenges that require their solutions to be updated`);
|
|
307
|
-
return 0;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
catch (error) {
|
|
311
|
-
throw new common_1.ProsopoEnvError(error, 'GENERAL.CALCULATE_CAPTCHA_SOLUTION');
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
272
|
/**
|
|
315
273
|
* Block by block search for blockNo
|
|
316
274
|
*/
|
|
@@ -318,12 +276,12 @@ class Tasks {
|
|
|
318
276
|
if (depth == 0) {
|
|
319
277
|
return false;
|
|
320
278
|
}
|
|
321
|
-
const headerBlockNo = header.number.
|
|
279
|
+
const headerBlockNo = header.number.toPrimitive();
|
|
322
280
|
if (headerBlockNo === blockNo) {
|
|
323
281
|
return true;
|
|
324
282
|
}
|
|
325
283
|
const parent = await contract.api.rpc.chain.getBlock(header.parentHash);
|
|
326
|
-
return this.isRecentBlock(contract, parent.
|
|
284
|
+
return this.isRecentBlock(contract, parent.block.header, blockNo, depth - 1);
|
|
327
285
|
}
|
|
328
286
|
/**
|
|
329
287
|
* Validate that provided `datasetId` was a result of calling `get_random_provider` method
|
|
@@ -335,12 +293,12 @@ class Tasks {
|
|
|
335
293
|
async validateProviderWasRandomlyChosen(userAccount, dappContractAccount, datasetId, blockNumber) {
|
|
336
294
|
const contract = await this.contract.contract;
|
|
337
295
|
if (!contract) {
|
|
338
|
-
throw new
|
|
296
|
+
throw new ProsopoEnvError('CONTRACT.CONTRACT_UNDEFINED', this.validateProviderWasRandomlyChosen.name);
|
|
339
297
|
}
|
|
340
298
|
const header = await contract.api.rpc.chain.getHeader();
|
|
341
299
|
const isBlockNoValid = await this.isRecentBlock(contract, header, blockNumber);
|
|
342
300
|
if (!isBlockNoValid) {
|
|
343
|
-
throw new
|
|
301
|
+
throw new ProsopoEnvError('CAPTCHA.INVALID_BLOCK_NO', this.validateProviderWasRandomlyChosen.name, {}, {
|
|
344
302
|
userAccount,
|
|
345
303
|
dappContractAccount,
|
|
346
304
|
datasetId,
|
|
@@ -351,7 +309,7 @@ class Tasks {
|
|
|
351
309
|
const block = (await contract.api.rpc.chain.getBlockHash(blockNumber));
|
|
352
310
|
const randomProviderAndBlockNo = await this.contract.queryAtBlock(block, 'getRandomActiveProvider', [userAccount, dappContractAccount]);
|
|
353
311
|
if (datasetId.toString().localeCompare(randomProviderAndBlockNo.provider.datasetId.toString())) {
|
|
354
|
-
throw new
|
|
312
|
+
throw new ProsopoEnvError('DATASET.INVALID_DATASET_ID', this.validateProviderWasRandomlyChosen.name, {}, randomProviderAndBlockNo);
|
|
355
313
|
}
|
|
356
314
|
}
|
|
357
315
|
/**
|
|
@@ -384,7 +342,7 @@ class Tasks {
|
|
|
384
342
|
async getDappUserCommitmentById(commitmentId) {
|
|
385
343
|
const dappUserSolution = await this.db.getDappUserCommitmentById(commitmentId);
|
|
386
344
|
if (!dappUserSolution) {
|
|
387
|
-
throw new
|
|
345
|
+
throw new ProsopoEnvError('CAPTCHA.DAPP_USER_SOLUTION_NOT_FOUND', this.getDappUserCommitmentById.name, {}, { commitmentId: commitmentId });
|
|
388
346
|
}
|
|
389
347
|
return dappUserSolution;
|
|
390
348
|
}
|
|
@@ -393,13 +351,20 @@ class Tasks {
|
|
|
393
351
|
const dappUserSolutions = await this.db.getDappUserCommitmentByAccount(userAccount);
|
|
394
352
|
if (dappUserSolutions.length > 0) {
|
|
395
353
|
for (const dappUserSolution of dappUserSolutions) {
|
|
396
|
-
if (dappUserSolution.status ===
|
|
354
|
+
if (dappUserSolution.status === ArgumentTypes.CaptchaStatus.approved) {
|
|
397
355
|
return dappUserSolution;
|
|
398
356
|
}
|
|
399
357
|
}
|
|
400
358
|
}
|
|
401
359
|
return undefined;
|
|
402
360
|
}
|
|
361
|
+
/* Returns public details of provider */
|
|
362
|
+
async getProviderDetails() {
|
|
363
|
+
return await wrapQuery(this.contract.query.getProvider, this.contract.query)(this.contract.pair.address);
|
|
364
|
+
}
|
|
365
|
+
/** Get the dataset from the databse */
|
|
366
|
+
async getProviderDataset(datasetId) {
|
|
367
|
+
return await this.db.getDataset(datasetId);
|
|
368
|
+
}
|
|
403
369
|
}
|
|
404
|
-
exports.Tasks = Tasks;
|
|
405
370
|
//# sourceMappingURL=tasks.js.map
|
package/dist/tasks/tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Captcha, CaptchaSolution } from '@prosopo/types';
|
|
1
|
+
import { Captcha, CaptchaSolution, ScheduledTaskNames } from '@prosopo/types';
|
|
2
|
+
import { Database } from '@prosopo/types-database';
|
|
2
3
|
import { Logger } from '@prosopo/common';
|
|
3
4
|
import pl from 'nodejs-polars';
|
|
4
5
|
export declare function encodeStringAddress(address: string): string;
|
|
@@ -16,5 +17,12 @@ export declare function promiseQueue<T>(array: (() => Promise<T>)[]): Promise<Pr
|
|
|
16
17
|
export declare function parseBlockNumber(blockNumberString: string): number;
|
|
17
18
|
export declare function calculateNewSolutions(solutions: CaptchaSolution[], winningNumberOfSolutions: number): pl.DataFrame;
|
|
18
19
|
export declare function updateSolutions(solutions: pl.DataFrame, captchas: Captcha[], logger: Logger): Captcha[];
|
|
20
|
+
/**
|
|
21
|
+
* Check if there is a batch running.
|
|
22
|
+
* If the batch task is running and not completed, return true.
|
|
23
|
+
* If the batch task is running and completed, return false.
|
|
24
|
+
* Otherwise, the batch task is not running, return false.
|
|
25
|
+
*/
|
|
26
|
+
export declare function checkIfTaskIsRunning(taskName: ScheduledTaskNames, db: Database): Promise<boolean>;
|
|
19
27
|
export {};
|
|
20
28
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAuB,MAAM,gBAAgB,CAAA;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAmB,MAAM,iBAAiB,CAAA;AAIzD,OAAO,EAAE,MAAM,eAAe,CAAA;AAE9B,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,UAMlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAM/C;AAED,KAAK,eAAe,CAAC,CAAC,IAAI;IACtB,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB,EAAE,CAAA;AAEH;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAmB9F;AAED,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,UAEzD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,wBAAwB,EAAE,MAAM,gBAYnG;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAoBvG;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvG"}
|
package/dist/util.js
CHANGED
|
@@ -1,35 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
// Copyright 2021-2023 Prosopo (UK) Ltd.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { ScheduledTaskStatus } from '@prosopo/types';
|
|
15
|
+
import { ProsopoEnvError } from '@prosopo/common';
|
|
16
|
+
import { arrayJoin } from '@prosopo/common';
|
|
17
|
+
import { decodeAddress, encodeAddress } from '@polkadot/keyring';
|
|
18
|
+
import { hexToU8a, isHex } from '@polkadot/util';
|
|
19
|
+
import pl from 'nodejs-polars';
|
|
20
|
+
export function encodeStringAddress(address) {
|
|
11
21
|
try {
|
|
12
|
-
return
|
|
22
|
+
return encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address));
|
|
13
23
|
}
|
|
14
24
|
catch (error) {
|
|
15
|
-
throw new
|
|
25
|
+
throw new ProsopoEnvError(error, 'CONTRACT.INVALID_ADDRESS', {}, address);
|
|
16
26
|
}
|
|
17
27
|
}
|
|
18
|
-
|
|
19
|
-
function shuffleArray(array) {
|
|
28
|
+
export function shuffleArray(array) {
|
|
20
29
|
for (let arrayIndex = array.length - 1; arrayIndex > 0; arrayIndex--) {
|
|
21
30
|
const randIndex = Math.floor(Math.random() * (arrayIndex + 1));
|
|
22
31
|
[array[arrayIndex], array[randIndex]] = [array[randIndex], array[arrayIndex]];
|
|
23
32
|
}
|
|
24
33
|
return array;
|
|
25
34
|
}
|
|
26
|
-
exports.shuffleArray = shuffleArray;
|
|
27
35
|
/**
|
|
28
36
|
* Executes promises in order
|
|
29
37
|
* @param array - array of promises
|
|
30
38
|
* @returns PromiseQueueRes\<T\>
|
|
31
39
|
*/
|
|
32
|
-
async function promiseQueue(array) {
|
|
40
|
+
export async function promiseQueue(array) {
|
|
33
41
|
const ret = [];
|
|
34
42
|
await [...array, () => Promise.resolve(undefined)].reduce((promise, curr, i) => {
|
|
35
43
|
return promise
|
|
@@ -47,26 +55,23 @@ async function promiseQueue(array) {
|
|
|
47
55
|
}, Promise.resolve(undefined));
|
|
48
56
|
return ret;
|
|
49
57
|
}
|
|
50
|
-
|
|
51
|
-
function parseBlockNumber(blockNumberString) {
|
|
58
|
+
export function parseBlockNumber(blockNumberString) {
|
|
52
59
|
return parseInt(blockNumberString.replace(/,/g, ''));
|
|
53
60
|
}
|
|
54
|
-
|
|
55
|
-
function calculateNewSolutions(solutions, winningNumberOfSolutions) {
|
|
61
|
+
export function calculateNewSolutions(solutions, winningNumberOfSolutions) {
|
|
56
62
|
if (solutions.length === 0) {
|
|
57
|
-
return
|
|
63
|
+
return pl.DataFrame([]);
|
|
58
64
|
}
|
|
59
65
|
const solutionsNoEmptyArrays = solutions.map(({ solution, ...otherAttrs }) => {
|
|
60
|
-
return { solutionKey:
|
|
66
|
+
return { solutionKey: arrayJoin(solution, ','), ...otherAttrs };
|
|
61
67
|
});
|
|
62
|
-
let df =
|
|
68
|
+
let df = pl.readRecords(solutionsNoEmptyArrays);
|
|
63
69
|
df = df.drop('salt');
|
|
64
|
-
const group = df.groupBy(['captchaId', 'solutionKey']).agg(
|
|
65
|
-
const filtered = group.filter(
|
|
70
|
+
const group = df.groupBy(['captchaId', 'solutionKey']).agg(pl.count('captchaContentId').alias('count'));
|
|
71
|
+
const filtered = group.filter(pl.col('count').gt(winningNumberOfSolutions));
|
|
66
72
|
return filtered.withColumn(filtered['solutionKey'].str.split(',').rename('solution'));
|
|
67
73
|
}
|
|
68
|
-
|
|
69
|
-
function updateSolutions(solutions, captchas, logger) {
|
|
74
|
+
export function updateSolutions(solutions, captchas, logger) {
|
|
70
75
|
// Note - loading the dataset in nodejs-polars doesn't work because of nested objects, which is why this is done in
|
|
71
76
|
// a map instead of a join
|
|
72
77
|
return captchas.map((captcha) => {
|
|
@@ -74,7 +79,7 @@ function updateSolutions(solutions, captchas, logger) {
|
|
|
74
79
|
if (!captcha.solution) {
|
|
75
80
|
try {
|
|
76
81
|
const captchaSolutions = [
|
|
77
|
-
...solutions.filter(
|
|
82
|
+
...solutions.filter(pl.col('captchaId').eq(pl.lit(captcha.captchaId)))['solution'].values(),
|
|
78
83
|
];
|
|
79
84
|
if (captchaSolutions.length > 0) {
|
|
80
85
|
captcha.solution = captchaSolutions[0];
|
|
@@ -88,5 +93,18 @@ function updateSolutions(solutions, captchas, logger) {
|
|
|
88
93
|
return captcha;
|
|
89
94
|
});
|
|
90
95
|
}
|
|
91
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Check if there is a batch running.
|
|
98
|
+
* If the batch task is running and not completed, return true.
|
|
99
|
+
* If the batch task is running and completed, return false.
|
|
100
|
+
* Otherwise, the batch task is not running, return false.
|
|
101
|
+
*/
|
|
102
|
+
export async function checkIfTaskIsRunning(taskName, db) {
|
|
103
|
+
const runningTask = await db.getLastScheduledTaskStatus(taskName, ScheduledTaskStatus.Running);
|
|
104
|
+
if (runningTask) {
|
|
105
|
+
const completedTask = await db.getScheduledTaskStatus(runningTask.taskId, ScheduledTaskStatus.Completed);
|
|
106
|
+
return !completedTask;
|
|
107
|
+
}
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
92
110
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|