@prosopo/provider 0.1.15 → 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.
Files changed (44) hide show
  1. package/coverage/tmp/coverage-14066-1690288461446-0.json +1 -0
  2. package/dist/api/admin.d.ts +2 -0
  3. package/dist/api/admin.d.ts.map +1 -0
  4. package/dist/api/admin.js +58 -0
  5. package/dist/api/admin.js.map +1 -0
  6. package/dist/{api.d.ts → api/captcha.d.ts} +1 -1
  7. package/dist/api/captcha.d.ts.map +1 -0
  8. package/dist/{api.js → api/captcha.js} +53 -34
  9. package/dist/api/captcha.js.map +1 -0
  10. package/dist/batch/commitments.d.ts +5 -6
  11. package/dist/batch/commitments.d.ts.map +1 -1
  12. package/dist/batch/commitments.js +57 -58
  13. package/dist/batch/commitments.js.map +1 -1
  14. package/dist/batch/index.d.ts +1 -1
  15. package/dist/batch/index.d.ts.map +1 -1
  16. package/dist/batch/index.js +14 -4
  17. package/dist/batch/index.js.map +1 -1
  18. package/dist/index.d.ts +4 -4
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +5 -8
  21. package/dist/index.js.map +1 -1
  22. package/dist/scheduler.d.ts +2 -1
  23. package/dist/scheduler.d.ts.map +1 -1
  24. package/dist/scheduler.js +26 -12
  25. package/dist/scheduler.js.map +1 -1
  26. package/dist/tasks/calculateSolutions.d.ts +10 -0
  27. package/dist/tasks/calculateSolutions.d.ts.map +1 -0
  28. package/dist/tasks/calculateSolutions.js +90 -0
  29. package/dist/tasks/calculateSolutions.js.map +1 -0
  30. package/dist/tasks/index.d.ts +2 -1
  31. package/dist/tasks/index.d.ts.map +1 -1
  32. package/dist/tasks/index.js +3 -5
  33. package/dist/tasks/index.js.map +1 -1
  34. package/dist/tasks/tasks.d.ts +8 -8
  35. package/dist/tasks/tasks.d.ts.map +1 -1
  36. package/dist/tasks/tasks.js +81 -116
  37. package/dist/tasks/tasks.js.map +1 -1
  38. package/dist/util.d.ts +9 -1
  39. package/dist/util.d.ts.map +1 -1
  40. package/dist/util.js +47 -29
  41. package/dist/util.js.map +1 -1
  42. package/package.json +68 -69
  43. package/dist/api.d.ts.map +0 -1
  44. package/dist/api.js.map +0 -1
@@ -1,8 +1,4 @@
1
- "use strict";
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
- const types_1 = require("@prosopo/types");
19
- const datasets_1 = require("@prosopo/datasets");
20
- const common_1 = require("@prosopo/common");
21
- const contract_1 = require("@prosopo/contract");
22
- const util_1 = require("../util");
23
- const util_2 = require("@polkadot/util");
24
- const util_crypto_1 = require("@polkadot/util-crypto");
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 common_1.ProsopoEnvError('CONTRACT.CONTRACT_UNDEFINED', this.constructor.name, {}, { contractAddress: env.contractAddress });
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 = (0, common_1.logger)(env.config.logLevel, 'Tasks');
40
+ this.logger = getLogger(env.config.logLevel, 'Tasks');
45
41
  }
46
42
  async providerSetDatasetFromFile(file) {
47
- const datasetRaw = (0, datasets_1.parseCaptchaDataset)(file);
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
- const dataset = await (0, datasets_1.buildDataset)(datasetRaw);
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 common_1.ProsopoEnvError('DATASET.DATASET_ID_UNDEFINED', this.providerSetDataset.name);
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 datasets_1.CaptchaMerkleTree();
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 = (0, util_1.shuffleArray)(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 common_1.ProsopoEnvError('DATABASE.CAPTCHA_GET_FAILED', this.getCaptchaWithProof.name, {}, { datasetId, solved, size });
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 common_1.ProsopoEnvError('CONTRACT.DAPP_NOT_ACTIVE', this.getPaymentInfo.name, {}, { dappAccount });
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 = (0, util_crypto_1.signatureVerify)((0, util_2.stringToHex)(requestHash), signature, userAccount);
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 common_1.ProsopoEnvError('GENERAL.INVALID_SIGNATURE', this.dappUserSolution.name, {}, { userAccount });
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 = (0, util_2.hexToU8a)(signature);
121
- const blockNumber = (await (0, contract_1.getBlockNumber)(this.contract.api)).toNumber();
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: types_1.CaptchaStatus.pending,
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 ((0, datasets_1.compareCaptchaSolutions)(receivedCaptchas, storedCaptchas)) {
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 (0, contract_2.wrapQuery)(this.contract.query.getDapp, this.contract.query)(dappAccount);
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
- * Validate that the provider is active in the contract
180
+ * Gets provider status in contract
168
181
  */
169
- async providerIsActive(providerAccount) {
170
- const provider = await (0, contract_2.wrapQuery)(this.contract.query.getProvider, this.contract.query)(providerAccount);
171
- return provider.status.toString() === 'Active';
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 = (0, datasets_1.parseAndSortCaptchaSolutions)(captchas);
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 common_1.ProsopoEnvError('CAPTCHA.INVALID_CAPTCHA_ID', this.validateReceivedCaptchasAgainstStoredCaptchas.name, {}, captchas);
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 common_1.ProsopoEnvError('CAPTCHA.DIFFERENT_DATASET_IDS', this.validateReceivedCaptchasAgainstStoredCaptchas.name, {}, captchas);
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 datasets_1.CaptchaMerkleTree();
196
- const solutionsHashed = captchaSolutions.map((captcha) => (0, datasets_1.computeCaptchaSolutionHash)(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 common_1.ProsopoEnvError('CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST', this.buildTreeAndGetCommitmentId.name, {}, { commitmentId: commitmentId });
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 = (0, datasets_1.computePendingRequestHash)(captchaIds, userAccount, pendingRecord.salt);
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 common_1.ProsopoEnvError('DATABASE.DATASET_GET_FAILED');
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 common_1.ProsopoEnvError('CONFIG.INVALID_CAPTCHA_NUMBER');
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 = (0, util_1.shuffleArray)([...solved, ...unsolved]);
245
- const salt = (0, util_crypto_1.randomAsHex)();
246
- const requestHash = (0, datasets_1.computePendingRequestHash)(captchas.map((c) => c.captcha.captchaId), userAccount, salt);
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 (0, contract_1.getBlockNumber)(this.contract.api);
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.toNumber();
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.toHuman().block.header, blockNo, depth - 1);
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 common_1.ProsopoEnvError('CONTRACT.CONTRACT_UNDEFINED', this.validateProviderWasRandomlyChosen.name);
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 common_1.ProsopoEnvError('CAPTCHA.INVALID_BLOCK_NO', this.validateProviderWasRandomlyChosen.name, {}, {
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 common_1.ProsopoEnvError('DATASET.INVALID_DATASET_ID', this.validateProviderWasRandomlyChosen.name, {}, randomProviderAndBlockNo);
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 common_1.ProsopoEnvError('CAPTCHA.DAPP_USER_SOLUTION_NOT_FOUND', this.getDappUserCommitmentById.name, {}, { commitmentId: commitmentId });
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 === types_1.ArgumentTypes.CaptchaStatus.approved) {
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
@@ -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
@@ -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;AACzD,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"}
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateSolutions = exports.calculateNewSolutions = exports.parseBlockNumber = exports.promiseQueue = exports.shuffleArray = exports.encodeStringAddress = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@prosopo/common");
6
- const common_2 = require("@prosopo/common");
7
- const keyring_1 = require("@polkadot/keyring");
8
- const util_1 = require("@polkadot/util");
9
- const nodejs_polars_1 = tslib_1.__importDefault(require("nodejs-polars"));
10
- function encodeStringAddress(address) {
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 (0, keyring_1.encodeAddress)((0, util_1.isHex)(address) ? (0, util_1.hexToU8a)(address) : (0, keyring_1.decodeAddress)(address));
22
+ return encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address));
13
23
  }
14
24
  catch (error) {
15
- throw new common_1.ProsopoEnvError(error, 'CONTRACT.INVALID_ADDRESS', {}, address);
25
+ throw new ProsopoEnvError(error, 'CONTRACT.INVALID_ADDRESS', {}, address);
16
26
  }
17
27
  }
18
- exports.encodeStringAddress = encodeStringAddress;
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
- exports.promiseQueue = promiseQueue;
51
- function parseBlockNumber(blockNumberString) {
58
+ export function parseBlockNumber(blockNumberString) {
52
59
  return parseInt(blockNumberString.replace(/,/g, ''));
53
60
  }
54
- exports.parseBlockNumber = parseBlockNumber;
55
- function calculateNewSolutions(solutions, winningNumberOfSolutions) {
61
+ export function calculateNewSolutions(solutions, winningNumberOfSolutions) {
56
62
  if (solutions.length === 0) {
57
- return nodejs_polars_1.default.DataFrame([]);
63
+ return pl.DataFrame([]);
58
64
  }
59
65
  const solutionsNoEmptyArrays = solutions.map(({ solution, ...otherAttrs }) => {
60
- return { solutionKey: (0, common_2.arrayJoin)(solution, ','), ...otherAttrs };
66
+ return { solutionKey: arrayJoin(solution, ','), ...otherAttrs };
61
67
  });
62
- let df = nodejs_polars_1.default.readRecords(solutionsNoEmptyArrays);
68
+ let df = pl.readRecords(solutionsNoEmptyArrays);
63
69
  df = df.drop('salt');
64
- const group = df.groupBy(['captchaId', 'solutionKey']).agg(nodejs_polars_1.default.count('captchaContentId').alias('count'));
65
- const filtered = group.filter(nodejs_polars_1.default.col('count').gt(winningNumberOfSolutions));
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
- exports.calculateNewSolutions = calculateNewSolutions;
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(nodejs_polars_1.default.col('captchaId').eq(nodejs_polars_1.default.lit(captcha.captchaId)))['solution'].values(),
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
- exports.updateSolutions = updateSolutions;
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":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}