@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
package/dist/scheduler.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  // Copyright 2021-2022 Prosopo (UK) Ltd.
3
2
  //
4
3
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,21 +13,36 @@
14
13
  // limitations under the License.
15
14
  // [object Object]
16
15
  // SPDX-License-Identifier: Apache-2.0
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- const cron_1 = require("cron");
19
- const env_1 = require("@prosopo/env");
20
- const tasks_1 = require("./tasks/tasks");
21
- async function default_1(pair, config) {
22
- const env = new env_1.ProviderEnvironment(pair, config);
16
+ import { BatchCommitmentsTask } from './batch/commitments.js';
17
+ import { CalculateSolutionsTask } from './tasks/calculateSolutions.js';
18
+ import { CronJob } from 'cron';
19
+ import { ProsopoEnvError } from '@prosopo/common';
20
+ import { ProviderEnvironment } from '@prosopo/env';
21
+ export async function calculateSolutionsScheduler(pair, config) {
22
+ const env = new ProviderEnvironment(pair, config);
23
23
  await env.isReady();
24
- const tasks = new tasks_1.Tasks(env);
25
- const job = new cron_1.CronJob(process.argv[2], () => {
26
- env.logger.debug('It works....');
27
- tasks.calculateCaptchaSolutions().catch((err) => {
24
+ const tasks = new CalculateSolutionsTask(env);
25
+ const job = new CronJob(process.argv[2], () => {
26
+ env.logger.debug('CalculateSolutionsTask....');
27
+ tasks.run().catch((err) => {
28
+ env.logger.error(err);
29
+ });
30
+ });
31
+ job.start();
32
+ }
33
+ export async function batchCommitScheduler(pair, config) {
34
+ const env = new ProviderEnvironment(pair, config);
35
+ await env.isReady();
36
+ if (env.db === undefined) {
37
+ throw new ProsopoEnvError('DATABASE.DATABASE_UNDEFINED');
38
+ }
39
+ const tasks = new BatchCommitmentsTask(config.batchCommit, env.contractInterface, env.db, 0n, env.logger);
40
+ const job = new CronJob(process.argv[2], () => {
41
+ env.logger.debug('BatchCommitmentsTask....');
42
+ tasks.run().catch((err) => {
28
43
  env.logger.error(err);
29
44
  });
30
45
  });
31
46
  job.start();
32
47
  }
33
- exports.default = default_1;
34
48
  //# sourceMappingURL=scheduler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,kBAAkB;AAClB,sCAAsC;;AAEtC,+BAA8B;AAI9B,sCAAkD;AAClD,yCAAqC;AAEtB,KAAK,oBAAW,IAAiB,EAAE,MAAqB;IACnE,MAAM,GAAG,GAAG,IAAI,yBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAEjD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;IAEnB,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,GAAG,GAAG,IAAI,cAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;QAC1C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAChC,KAAK,CAAC,yBAAyB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,KAAK,EAAE,CAAA;AACf,CAAC;AAdD,4BAcC"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,kBAAkB;AAClB,sCAAsC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAiB,EAAE,MAAqB;IACtF,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACjD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;IACnB,MAAM,KAAK,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;QAC1C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC9C,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,KAAK,EAAE,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAiB,EAAE,MAAqB;IAC/E,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACjD,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;IACnB,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,eAAe,CAAC,6BAA6B,CAAC,CAAA;KAC3D;IACD,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzG,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;QAC1C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC5C,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,KAAK,EAAE,CAAA;AACf,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ProviderEnvironment } from '@prosopo/types-env';
2
+ import { Tasks } from './tasks.js';
3
+ export declare class CalculateSolutionsTask extends Tasks {
4
+ constructor(env: ProviderEnvironment);
5
+ /**
6
+ * Apply new captcha solutions to captcha dataset and recalculate merkle tree
7
+ */
8
+ run(): Promise<number>;
9
+ }
10
+ //# sourceMappingURL=calculateSolutions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateSolutions.d.ts","sourceRoot":"","sources":["../../src/tasks/calculateSolutions.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,qBAAa,sBAAuB,SAAQ,KAAK;gBACjC,GAAG,EAAE,mBAAmB;IAKpC;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;CAmE/B"}
@@ -0,0 +1,90 @@
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 { CaptchaStates } from '@prosopo/types';
15
+ import { ProsopoEnvError, getLogger } from '@prosopo/common';
16
+ import { ScheduledTaskNames } from '@prosopo/types';
17
+ import { Tasks } from './tasks.js';
18
+ import { calculateNewSolutions, checkIfTaskIsRunning, updateSolutions } from '../util.js';
19
+ import { captchaSort } from '@prosopo/datasets';
20
+ export class CalculateSolutionsTask extends Tasks {
21
+ constructor(env) {
22
+ super(env);
23
+ this.logger = getLogger(env.config.logLevel, 'CalculateSolutionsTask');
24
+ }
25
+ /**
26
+ * Apply new captcha solutions to captcha dataset and recalculate merkle tree
27
+ */
28
+ async run() {
29
+ try {
30
+ const taskRunning = await checkIfTaskIsRunning(ScheduledTaskNames.CalculateSolution, this.db);
31
+ if (!taskRunning) {
32
+ // Get the current datasetId from the contract
33
+ const provider = (await this.contract.methods.getProvider(this.contract.pair.address, {})).value
34
+ .unwrap()
35
+ .unwrap();
36
+ // Get any unsolved CAPTCHA challenges from the database for this datasetId
37
+ const unsolvedCaptchas = await this.db.getAllCaptchasByDatasetId(provider.datasetId.toString(), CaptchaStates.Unsolved);
38
+ // edge case when a captcha dataset contains no unsolved CAPTCHA challenges
39
+ if (!unsolvedCaptchas) {
40
+ return 0;
41
+ }
42
+ // Sort the unsolved CAPTCHA challenges by their captchaId
43
+ const unsolvedSorted = unsolvedCaptchas.sort(captchaSort);
44
+ this.logger.info(`There are ${unsolvedSorted.length} unsolved CAPTCHA challenges`);
45
+ // Get the solution configuration from the config file
46
+ const requiredNumberOfSolutions = this.captchaSolutionConfig.requiredNumberOfSolutions;
47
+ const winningPercentage = this.captchaSolutionConfig.solutionWinningPercentage;
48
+ const winningNumberOfSolutions = Math.round(requiredNumberOfSolutions * (winningPercentage / 100));
49
+ if (unsolvedSorted && unsolvedSorted.length > 0) {
50
+ const captchaIds = unsolvedSorted.map((captcha) => captcha.captchaId);
51
+ const solutions = (await this.db.getAllDappUserSolutions(captchaIds)) || [];
52
+ const solutionsToUpdate = calculateNewSolutions(solutions, winningNumberOfSolutions);
53
+ if (solutionsToUpdate.rows().length > 0) {
54
+ this.logger.info(`There are ${solutionsToUpdate.rows().length} CAPTCHA challenges to update with solutions`);
55
+ try {
56
+ const captchaIdsToUpdate = [...solutionsToUpdate['captchaId'].values()];
57
+ const commitmentIds = solutions
58
+ .filter((s) => captchaIdsToUpdate.indexOf(s.captchaId) > -1)
59
+ .map((s) => s.commitmentId);
60
+ const dataset = await this.db.getDataset(provider.datasetId.toString());
61
+ dataset.captchas = updateSolutions(solutionsToUpdate, dataset.captchas, this.logger);
62
+ // store new solutions in database
63
+ await this.providerSetDataset(dataset);
64
+ // mark user solutions as used to calculate new solutions
65
+ await this.db.flagProcessedDappUserSolutions(captchaIdsToUpdate);
66
+ // mark user commitments as used to calculate new solutions
67
+ await this.db.flagProcessedDappUserCommitments(commitmentIds);
68
+ // remove old captcha challenges from database
69
+ await this.db.removeCaptchas(captchaIdsToUpdate);
70
+ return solutionsToUpdate.rows().length;
71
+ }
72
+ catch (error) {
73
+ this.logger.error(error);
74
+ }
75
+ }
76
+ return 0;
77
+ }
78
+ else {
79
+ this.logger.info(`There are no CAPTCHA challenges that require their solutions to be updated`);
80
+ return 0;
81
+ }
82
+ }
83
+ return 0;
84
+ }
85
+ catch (error) {
86
+ throw new ProsopoEnvError(error, 'GENERAL.CALCULATE_CAPTCHA_SOLUTION');
87
+ }
88
+ }
89
+ }
90
+ //# sourceMappingURL=calculateSolutions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateSolutions.js","sourceRoot":"","sources":["../../src/tasks/calculateSolutions.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export * from './tasks';
1
+ export * from './tasks.js';
2
+ export * from './calculateSolutions.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"AAaA,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAA;AAC1B,cAAc,yBAAyB,CAAA"}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- // Copyright 2021-2022 Prosopo (UK) Ltd.
1
+ // Copyright 2021-2023 Prosopo (UK) Ltd.
5
2
  //
6
3
  // Licensed under the Apache License, Version 2.0 (the "License");
7
4
  // you may not use this file except in compliance with the License.
@@ -14,5 +11,6 @@ const tslib_1 = require("tslib");
14
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
12
  // See the License for the specific language governing permissions and
16
13
  // limitations under the License.
17
- tslib_1.__exportStar(require("./tasks"), exports);
14
+ export * from './tasks.js';
15
+ export * from './calculateSolutions.js';
18
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,kDAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,yBAAyB,CAAA"}
@@ -1,7 +1,7 @@
1
- import { ArgumentTypes, Captcha, CaptchaConfig, CaptchaSolution, CaptchaSolutionConfig, CaptchaWithProof, DappUserSolutionResult, DatasetRaw, Hash, PendingCaptchaRequest } from '@prosopo/types';
1
+ import { ArgumentTypes, Captcha, CaptchaConfig, CaptchaSolution, CaptchaSolutionConfig, CaptchaWithProof, DappUserSolutionResult, DatasetRaw, DatasetWithIds, Hash, PendingCaptchaRequest, ProsopoConfig, Provider, ProviderRegistered } from '@prosopo/types';
2
+ import { Header } from '@polkadot/types/interfaces';
2
3
  import { CaptchaMerkleTree } from '@prosopo/datasets';
3
4
  import { Database, UserCommitmentRecord } from '@prosopo/types-database';
4
- import { Header } from '@polkadot/types/interfaces/runtime/index';
5
5
  import { Logger } from '@prosopo/common';
6
6
  import { ProsopoCaptchaContract } from '@prosopo/contract';
7
7
  import { ProviderEnvironment } from '@prosopo/types-env';
@@ -15,6 +15,7 @@ export declare class Tasks {
15
15
  captchaConfig: CaptchaConfig;
16
16
  captchaSolutionConfig: CaptchaSolutionConfig;
17
17
  logger: Logger;
18
+ config: ProsopoConfig;
18
19
  constructor(env: ProviderEnvironment);
19
20
  providerSetDatasetFromFile(file: JSON): Promise<SubmittableResult | undefined>;
20
21
  providerSetDataset(datasetRaw: DatasetRaw): Promise<SubmittableResult | undefined>;
@@ -40,9 +41,9 @@ export declare class Tasks {
40
41
  */
41
42
  dappIsActive(dappAccount: string): Promise<boolean>;
42
43
  /**
43
- * Validate that the provider is active in the contract
44
+ * Gets provider status in contract
44
45
  */
45
- providerIsActive(providerAccount: string): Promise<boolean>;
46
+ providerStatus(): Promise<ProviderRegistered>;
46
47
  /**
47
48
  * Validate length of received captchas array matches length of captchas found in database
48
49
  * Validate that the datasetId is the same for all captchas and is equal to the datasetId on the stored captchas
@@ -78,10 +79,6 @@ export declare class Tasks {
78
79
  captchas: CaptchaWithProof[];
79
80
  requestHash: string;
80
81
  }>;
81
- /**
82
- * Apply new captcha solutions to captcha dataset and recalculate merkle tree
83
- */
84
- calculateCaptchaSolutions(): Promise<number>;
85
82
  /**
86
83
  * Block by block search for blockNo
87
84
  */
@@ -104,5 +101,8 @@ export declare class Tasks {
104
101
  private getPaymentInfo;
105
102
  getDappUserCommitmentById(commitmentId: string): Promise<UserCommitmentRecord>;
106
103
  getDappUserCommitmentByAccount(userAccount: string): Promise<UserCommitmentRecord | undefined>;
104
+ getProviderDetails(): Promise<Provider>;
105
+ /** Get the dataset from the databse */
106
+ getProviderDataset(datasetId: string): Promise<DatasetWithIds>;
107
107
  }
108
108
  //# sourceMappingURL=tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}