@prosopo/provider 0.2.13 → 0.2.15

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 (87) hide show
  1. package/dist/api/admin.js +0 -56
  2. package/dist/api/admin.js.map +1 -1
  3. package/dist/api/captcha.d.ts +0 -6
  4. package/dist/api/captcha.d.ts.map +1 -1
  5. package/dist/api/captcha.js +24 -83
  6. package/dist/api/captcha.js.map +1 -1
  7. package/dist/batch/commitments.d.ts +2 -2
  8. package/dist/batch/commitments.d.ts.map +1 -1
  9. package/dist/batch/commitments.js +2 -20
  10. package/dist/batch/commitments.js.map +1 -1
  11. package/dist/batch/index.js +0 -13
  12. package/dist/batch/index.js.map +1 -1
  13. package/dist/cjs/api/captcha.cjs +23 -31
  14. package/dist/cjs/batch/commitments.cjs +12 -12
  15. package/dist/cjs/tasks/tasks.cjs +22 -21
  16. package/dist/cjs/util.cjs +9 -8
  17. package/dist/index.js +0 -13
  18. package/dist/index.js.map +1 -1
  19. package/dist/scheduler.js +0 -15
  20. package/dist/scheduler.js.map +1 -1
  21. package/dist/tasks/calculateSolutions.d.ts +0 -3
  22. package/dist/tasks/calculateSolutions.d.ts.map +1 -1
  23. package/dist/tasks/calculateSolutions.js +0 -27
  24. package/dist/tasks/calculateSolutions.js.map +1 -1
  25. package/dist/tasks/index.js +0 -13
  26. package/dist/tasks/index.js.map +1 -1
  27. package/dist/tasks/tasks.d.ts +3 -66
  28. package/dist/tasks/tasks.d.ts.map +1 -1
  29. package/dist/tasks/tasks.js +6 -87
  30. package/dist/tasks/tasks.js.map +1 -1
  31. package/dist/tests/accounts.d.ts.map +1 -1
  32. package/dist/tests/accounts.js +2 -16
  33. package/dist/tests/accounts.js.map +1 -1
  34. package/dist/tests/batch/commitments.test.d.ts.map +1 -1
  35. package/dist/tests/batch/commitments.test.js +12 -77
  36. package/dist/tests/batch/commitments.test.js.map +1 -1
  37. package/dist/tests/contract/helpers.test.d.ts.map +1 -1
  38. package/dist/tests/contract/helpers.test.js +3 -3
  39. package/dist/tests/contract/helpers.test.js.map +1 -1
  40. package/dist/tests/dataUtils/DatabaseAccounts.js +0 -1
  41. package/dist/tests/dataUtils/DatabaseAccounts.js.map +1 -1
  42. package/dist/tests/dataUtils/DatabasePopulator.d.ts +1 -1
  43. package/dist/tests/dataUtils/DatabasePopulator.d.ts.map +1 -1
  44. package/dist/tests/dataUtils/DatabasePopulator.js +10 -16
  45. package/dist/tests/dataUtils/DatabasePopulator.js.map +1 -1
  46. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts +1 -1
  47. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts.map +1 -1
  48. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js +3 -17
  49. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js.map +1 -1
  50. package/dist/tests/dataUtils/funds.d.ts +1 -16
  51. package/dist/tests/dataUtils/funds.d.ts.map +1 -1
  52. package/dist/tests/dataUtils/funds.js +2 -25
  53. package/dist/tests/dataUtils/funds.js.map +1 -1
  54. package/dist/tests/dataUtils/populateDatabase.d.ts +1 -1
  55. package/dist/tests/dataUtils/populateDatabase.d.ts.map +1 -1
  56. package/dist/tests/dataUtils/populateDatabase.js +0 -1
  57. package/dist/tests/dataUtils/populateDatabase.js.map +1 -1
  58. package/dist/tests/tasks/tasks.test.d.ts.map +1 -1
  59. package/dist/tests/tasks/tasks.test.js +15 -221
  60. package/dist/tests/tasks/tasks.test.js.map +1 -1
  61. package/dist/tests/util.test.js +0 -14
  62. package/dist/tests/util.test.js.map +1 -1
  63. package/dist/util.d.ts +0 -11
  64. package/dist/util.d.ts.map +1 -1
  65. package/dist/util.js +3 -33
  66. package/dist/util.js.map +1 -1
  67. package/package.json +10 -11
  68. package/dist/cjs/contracts/captcha/dist/build-extrinsic/captcha.cjs +0 -339
  69. package/dist/cjs/contracts/captcha/dist/contract-info/captcha.cjs +0 -6
  70. package/dist/cjs/contracts/captcha/dist/contracts/captcha.cjs +0 -79
  71. package/dist/cjs/contracts/captcha/dist/data/captcha.json.cjs +0 -3374
  72. package/dist/cjs/contracts/captcha/dist/event-data/captcha.json.cjs +0 -3
  73. package/dist/cjs/contracts/captcha/dist/events/captcha.cjs +0 -23
  74. package/dist/cjs/contracts/captcha/dist/index.cjs +0 -44
  75. package/dist/cjs/contracts/captcha/dist/mixed-methods/captcha.cjs +0 -470
  76. package/dist/cjs/contracts/captcha/dist/query/captcha.cjs +0 -468
  77. package/dist/cjs/contracts/captcha/dist/shared/utils.cjs +0 -31
  78. package/dist/cjs/contracts/captcha/dist/tx-sign-and-send/captcha.cjs +0 -426
  79. package/dist/cjs/contracts/captcha/dist/types-arguments/captcha.cjs +0 -62
  80. package/dist/tests/data/captchas.d.ts +0 -37
  81. package/dist/tests/data/captchas.d.ts.map +0 -1
  82. package/dist/tests/data/captchas.js +0 -902
  83. package/dist/tests/data/captchas.js.map +0 -1
  84. package/dist/tests/data/captchas1.json +0 -53
  85. package/dist/tests/data/captchas2.json +0 -69
  86. package/dist/tests/data/captchas3.json +0 -54
  87. package/dist/tests/data/captchas4.json +0 -53
@@ -1,21 +1,7 @@
1
- // Copyright (C) 2021-2022 Prosopo (UK) Ltd.
2
- // This file is part of provider <https://github.com/prosopo/provider>.
3
- //
4
- // provider is free software: you can redistribute it and/or modify
5
- // it under the terms of the GNU General Public License as published by
6
- // the Free Software Foundation, either version 3 of the License, or
7
- // (at your option) any later version.
8
- //
9
- // provider is distributed in the hope that it will be useful,
10
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- // GNU General Public License for more details.
13
- //
14
- // You should have received a copy of the GNU General Public License
15
1
  import { AccountKey } from '../dataUtils/DatabaseAccounts.js';
16
- import { BN, stringToHex, stringToU8a, u8aToHex } from '@polkadot/util';
17
- import { CaptchaMerkleTree, computeCaptchaSolutionHash, computePendingRequestHash } from '@prosopo/datasets';
18
- import { CaptchaStatus, DappPayee, Payee } from '@prosopo/captcha-contract';
2
+ import { BN } from '@polkadot/util/bn';
3
+ import { CaptchaMerkleTree, computeCaptchaSolutionHash, computePendingRequestHash, datasetWithSolutionHashes, } from '@prosopo/datasets';
4
+ import { CaptchaStatus, DappPayee, Payee } from '@prosopo/captcha-contract/types-returns';
19
5
  import { ContractDeployer, ProsopoContractError, getBlockNumber, getDispatchError, getPairAsync, wrapQuery, } from '@prosopo/contract';
20
6
  import { DappAbiJSON, DappWasm } from '../dataUtils/dapp-example-contract/loadFiles.js';
21
7
  import { MockEnvironment } from '@prosopo/env';
@@ -23,13 +9,16 @@ import { PROVIDER, accountAddress, accountContract, accountMnemonic, getSignedTa
23
9
  import { ProsopoEnvError, hexHash, i18n } from '@prosopo/common';
24
10
  import { afterEach, beforeEach, describe, expect, test } from 'vitest';
25
11
  import { at, get } from '@prosopo/util';
26
- import { captchaData } from '../data/captchas.js';
27
- import { createType } from '@polkadot/types';
12
+ import { createType } from '@polkadot/types/create';
13
+ import { datasetWithIndexSolutions } from '@prosopo/datasets';
28
14
  import { getSendAmount, getStakeAmount, sendFunds } from '../dataUtils/funds.js';
29
15
  import { getTestConfig } from '@prosopo/config';
30
16
  import { getUser } from '../getUser.js';
31
17
  import { parseBlockNumber } from '../../index.js';
32
- import { randomAsHex, signatureVerify } from '@polkadot/util-crypto';
18
+ import { randomAsHex } from '@polkadot/util-crypto/random';
19
+ import { signatureVerify } from '@polkadot/util-crypto/signature';
20
+ import { stringToHex, stringToU8a } from '@polkadot/util/string';
21
+ import { u8aToHex } from '@polkadot/util/u8a';
33
22
  function delay(ms) {
34
23
  return new Promise((resolve) => setTimeout(resolve, ms));
35
24
  }
@@ -56,22 +45,14 @@ describe.sequential('CONTRACT TASKS', async function () {
56
45
  if (context.env && 'db' in context.env)
57
46
  await context.env.db?.close();
58
47
  });
59
- /** Gets some static solved captchas and constructions captcha solutions from them
60
- * Computes the request hash for these captchas and the dappUser and then stores the request hash in the mock db
61
- * @return {CaptchaSolution[], string} captchaSolutions and requestHash
62
- */
63
48
  async function createMockCaptchaSolutionsAndRequestHash(env) {
64
- // There must exist a dappUser who can receive a captcha
65
49
  const dappUserAccount = await getUser(env, AccountKey.dappUsers);
66
- // There must exist a provider with a dataset for us to get a random dataset with solutions
67
50
  const providerAccount = await getUser(env, AccountKey.providersWithStakeAndDataset);
68
- // There must exist a dapp that is staked who can use the service
69
51
  const dappContractAccount = await getUser(env, AccountKey.dappsWithStake);
70
52
  const tasks = await getSignedTasks(env, providerAccount);
71
53
  const providerDetails = (await tasks.contract.query.getProvider(accountAddress(providerAccount))).value
72
54
  .unwrap()
73
55
  .unwrap();
74
- //await sleep(132000)
75
56
  const solvedCaptchas = await env.db.getRandomSolvedCaptchasFromSingleDataset(providerDetails.datasetId.toString(), 2);
76
57
  const network = env.config.networks[env.config.defaultNetwork];
77
58
  const pair = await getPairAsync(network, accountMnemonic(dappUserAccount), '');
@@ -134,13 +115,12 @@ describe.sequential('CONTRACT TASKS', async function () {
134
115
  test('Provider add dataset', async ({ env }) => {
135
116
  const providerAccount = await getUser(env, AccountKey.providersWithStake);
136
117
  const tasks = await getSignedTasks(env, providerAccount);
137
- await tasks.providerSetDatasetFromFile(JSON.parse(JSON.stringify(captchaData)));
118
+ await tasks.providerSetDatasetFromFile(JSON.parse(JSON.stringify(datasetWithIndexSolutions)));
138
119
  }, 8000);
139
120
  test('Provider add dataset with too few captchas will fail', async ({ env }) => {
140
121
  const providerAccount = await getUser(env, AccountKey.providersWithStake);
141
122
  const tasks = await getSignedTasks(env, providerAccount);
142
- // copy captchaData and remove all but one captcha
143
- const dataset = { ...captchaData };
123
+ const dataset = { ...datasetWithIndexSolutions };
144
124
  dataset.captchas = dataset.captchas.slice(0, 1);
145
125
  try {
146
126
  await tasks.providerSetDatasetFromFile(JSON.parse(JSON.stringify(dataset)));
@@ -152,8 +132,7 @@ describe.sequential('CONTRACT TASKS', async function () {
152
132
  test('Provider add dataset with too few solutions will fail', async ({ env }) => {
153
133
  const providerAccount = await getUser(env, AccountKey.providersWithStake);
154
134
  const tasks = await getSignedTasks(env, providerAccount);
155
- const dataset = { ...captchaData };
156
- // remove solution field from each captcha
135
+ const dataset = { ...datasetWithIndexSolutions };
157
136
  dataset.captchas = dataset.captchas.map((captcha) => {
158
137
  const { solution, ...rest } = captcha;
159
138
  return rest;
@@ -169,7 +148,7 @@ describe.sequential('CONTRACT TASKS', async function () {
169
148
  const providerAccount = await getUser(env, AccountKey.providers);
170
149
  const tasks = await getSignedTasks(env, providerAccount);
171
150
  try {
172
- await tasks.providerSetDatasetFromFile(JSON.parse(JSON.stringify(captchaData)));
151
+ await tasks.providerSetDatasetFromFile(JSON.parse(JSON.stringify(datasetWithIndexSolutions)));
173
152
  }
174
153
  catch (e) {
175
154
  expect(e).to.match(/ProviderInactive/);
@@ -278,10 +257,8 @@ describe.sequential('CONTRACT TASKS', async function () {
278
257
  userSignature: [...userSignature],
279
258
  });
280
259
  const commitment = (await providerTasks.contract.query.getCommit(commitmentId)).value.unwrap().unwrap();
281
- // check the timestamp
282
260
  const completedAtCheck = parseInt(commitment.completedAt.toString().replace(',', ''));
283
261
  expect(completedAtCheck).to.be.above(0);
284
- // check how much time passed after successful completion
285
262
  const lastCorrectCaptcha = (await providerTasks.contract.query.dappOperatorLastCorrectCaptcha(accountAddress(dappUserAccount))).value
286
263
  .unwrap()
287
264
  .unwrap();
@@ -348,17 +325,6 @@ describe.sequential('CONTRACT TASKS', async function () {
348
325
  const dappAfter = (await tasks.contract.query.getDapp(dappContractAddress)).value.unwrap().unwrap();
349
326
  expect(dappBefore.balance.toNumber() + value.toNumber()).to.equal(dappAfter.balance.toNumber());
350
327
  });
351
- //TODO reinstate when https://github.com/polkadot-js/api/issues/5410 is resolved
352
- // it.only('Dapp accounts', async ({env}): Promise<void> => {
353
- // const account = await getUser(env, AccountKey.dapps)
354
- //
355
- // const tasks = await changeSigner(env, account)
356
- //
357
- // const result = await tasks.contractApi.getDappAccounts()
358
- // console.log(result)
359
- //
360
- // expect(result).to.be.an('array')
361
- // })
362
328
  test('Captchas are correctly formatted before being passed to the API layer', async ({ env }) => {
363
329
  const dappUserAccount = await getUser(env, AccountKey.dappUsers);
364
330
  const providerAccount = await getUser(env, AccountKey.providersWithStakeAndDataset);
@@ -374,7 +340,6 @@ describe.sequential('CONTRACT TASKS', async function () {
374
340
  expect(captchas[0]).to.not.have.nested.property('captcha.solution');
375
341
  });
376
342
  test('Captcha proofs are returned if commitment found and solution is correct', async ({ env }) => {
377
- // Construct a pending request hash between dappUserAccount, providerAccount and dappContractAccount
378
343
  const { captchaSolutions, requestHash, dappUserAccount, providerAccount, dappContractAccount, userSignature } = await createMockCaptchaSolutionsAndRequestHash(env);
379
344
  const dappUserTasks = await getSignedTasks(env, dappUserAccount);
380
345
  const tree = new CaptchaMerkleTree();
@@ -387,7 +352,6 @@ describe.sequential('CONTRACT TASKS', async function () {
387
352
  .unwrap();
388
353
  const completedAt = (await env.getApi().rpc.chain.getBlock()).block.header.number.toNumber();
389
354
  const requestedAt = completedAt - 1;
390
- // next part contains internal contract calls that must be run by provider
391
355
  const providerTasks = await getSignedTasks(env, providerAccount);
392
356
  await providerTasks.contract.tx.providerCommit({
393
357
  dappContract: accountContract(dappContractAccount),
@@ -401,7 +365,6 @@ describe.sequential('CONTRACT TASKS', async function () {
401
365
  userSignature: [...userSignature],
402
366
  });
403
367
  const commitment = (await providerTasks.contract.query.getCommit(commitmentId)).value.unwrap().unwrap();
404
- // next part contains internal contract calls that must be run by provider
405
368
  await env.getApi().rpc.chain.getBlockHash(commitment.completedAt);
406
369
  const result = await providerTasks.dappUserSolution(accountAddress(dappUserAccount), accountContract(dappContractAccount), requestHash, JSON.parse(JSON.stringify(captchaSolutionsSalted)), u8aToHex(userSignature));
407
370
  expect(result.captchas.length).to.be.eq(2);
@@ -410,104 +373,10 @@ describe.sequential('CONTRACT TASKS', async function () {
410
373
  expect(filteredResult.proof).to.deep.eq(expectedProof);
411
374
  expect(filteredResult.captchaId).to.eq(at(captchaSolutionsSalted, 0).captchaId);
412
375
  });
413
- // test('Dapp User sending an invalid captchas causes error', async ({env}): Promise<void> => {
414
- // const { requestHash } = await createMockCaptchaSolutionsAndRequestHash( env, pairType, ss58Format );
415
- //
416
- // await env.getContractInterface()!.changeSigner(env, provider.mnemonic as string);
417
- // const providerTasks = new Tasks(env);
418
- // const captchaSolutions = [
419
- // { captchaId: 'blah', solution: [21], salt: 'blah' }
420
- // ];
421
- // const tree = new CaptchaMerkleTree();
422
- // const captchasHashed = captchaSolutions.map((captcha) =>
423
- // computeCaptchaSolutionHash(captcha)
424
- // );
425
- //
426
- // tree.build(captchasHashed);
427
- // const solutionPromise = providerTasks.dappUserSolution(
428
- // dappUser.address,
429
- // dapp.contractAccount as string,
430
- // requestHash,
431
- // JSON.parse(JSON.stringify(captchaSolutions)) as JSON
432
- // );
433
- //
434
- // solutionPromise.catch((e) =>
435
- // e.message.should.match(`/${ERRORS.CAPTCHA.INVALID_CAPTCHA_ID.message}/`)
436
- // );
437
- // });
438
- //
439
- // test('Dapp User sending solutions without committing to blockchain causes error', async ({env}): Promise<void> => {
440
- // const { captchaSolutions, requestHash } = await createMockCaptchaSolutionsAndRequestHash( env, pairType, ss58Format );
441
- //
442
- // await env.getContractInterface()!.changeSigner(env, provider.mnemonic as string);
443
- // const providerTasks = new Tasks(env);
444
- // const tree = new CaptchaMerkleTree();
445
- // const captchasHashed = captchaSolutions.map((captcha) =>
446
- // computeCaptchaSolutionHash(captcha)
447
- // );
448
- //
449
- // tree.build(captchasHashed);
450
- // const solutionPromise = providerTasks.dappUserSolution(
451
- // dappUser.address,
452
- // dapp.contractAccount as string,
453
- // requestHash,
454
- // JSON.parse(JSON.stringify(captchaSolutions)) as JSON
455
- // );
456
- //
457
- // solutionPromise.catch((e) =>
458
- // e.message.should.match(
459
- // `/${ERRORS.CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST.message}/`
460
- // )
461
- // );
462
- // });
463
- //
464
- // test('No proofs are returned if commitment found and solution is incorrect', async ({env}): Promise<void> => {
465
- // const { captchaSolutions, requestHash } = await createMockCaptchaSolutionsAndRequestHash( env, pairType, ss58Format );
466
- // const captchaSolutionsBad = captchaSolutions.map((original) => ({
467
- // ...original,
468
- // solution: [3]
469
- // }));
470
- // const tree = new CaptchaMerkleTree();
471
- // const salt = randomAsHex();
472
- // // Have to salt the solutions with random salt each time otherwise we end up with the same commitment for
473
- // // multiple users
474
- // const captchaSolutionsSalted = captchaSolutionsBad.map((captcha) => ({
475
- // ...captcha,
476
- // salt: salt
477
- // }));
478
- // const solutionsHashed = captchaSolutionsSalted.map((captcha) =>
479
- // computeCaptchaSolutionHash(captcha)
480
- // );
481
- //
482
- // tree.build(solutionsHashed);
483
- // const commitmentId = tree.root!.hash;
484
- //
485
- // await env.getContractInterface()!.changeSigner(env, dappUser.mnemonic);
486
- // const dappUserTasks = new Tasks(env);
487
- //
488
- // await ,dappUserTasks.contractApi.dappUserCommtest(
489
- // dapp.contractAccount as string,
490
- // datasetId as string,
491
- // commitmentId,
492
- // provider.address as string
493
- // );
494
- // // next part contains internal contract calls that must be run by provider
495
- // await env.getContractInterface()!.changeSigner(env, provider.mnemonic as string);
496
- // const providerTasks = new Tasks(env);
497
- // const result = await providerTasks.dappUserSolution(
498
- // dappUser.address,
499
- // dapp.contractAccount as string,
500
- // requestHash,
501
- // JSON.parse(JSON.stringify(captchaSolutionsSalted)) as JSON
502
- // );
503
- //
504
- // expect(result!.length).to.be.eq(0);
505
- // });
506
376
  test('Validates the received captchas length', async ({ env }) => {
507
377
  const providerAccount = await getUser(env, AccountKey.providersWithStakeAndDataset);
508
378
  const { captchaSolutions } = await createMockCaptchaSolutionsAndRequestHash(env);
509
379
  const providerTasks = await getSignedTasks(env, providerAccount);
510
- // All of the captchaIds present in the solutions should be in the database
511
380
  expect(async function () {
512
381
  await providerTasks.validateReceivedCaptchasAgainstStoredCaptchas(captchaSolutions);
513
382
  }).to.not.throw();
@@ -581,29 +450,12 @@ describe.sequential('CONTRACT TASKS', async function () {
581
450
  });
582
451
  test('Get random captchas and request hash', async ({ env }) => {
583
452
  try {
584
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
585
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
586
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
587
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
588
- // NOTE this test can fail if the contract contains Providers that
589
- // are not present in the database. It can also fail if the contract
590
- // contains providers that have loaded a different dataset to the
591
- // one imported from captchasData (above)
592
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
593
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
594
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
595
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
596
453
  const dappUserAccount = await getUser(env, AccountKey.dappUsers);
597
- const dappAccount = await getUser(env, AccountKey.dappsWithStake);
598
- // there must be at least one provider in the contract and db
599
454
  await getUser(env, AccountKey.providersWithStakeAndDataset);
600
455
  const dappUserTasks = await getSignedTasks(env, dappUserAccount);
601
456
  const solvedCaptchaCount = env.config.captchas.solved.count;
602
457
  const unsolvedCaptchaCount = env.config.captchas.unsolved.count;
603
- const { provider } = (await dappUserTasks.contract.query.getRandomActiveProvider(accountAddress(dappUserAccount), accountContract(dappAccount))).value
604
- .unwrap()
605
- .unwrap();
606
- const { captchas, requestHash } = await dappUserTasks.getRandomCaptchasAndRequestHash(provider.datasetId.toString(), hexHash(accountAddress(dappUserAccount)));
458
+ const { captchas, requestHash } = await dappUserTasks.getRandomCaptchasAndRequestHash(datasetWithSolutionHashes.datasetId.toString(), hexHash(accountAddress(dappUserAccount)));
607
459
  expect(captchas.length).to.equal(solvedCaptchaCount + unsolvedCaptchaCount);
608
460
  const pendingRequest = env.db?.getDappUserPending(requestHash);
609
461
  expect(pendingRequest).to.not.be.null;
@@ -640,7 +492,7 @@ describe.sequential('CONTRACT TASKS', async function () {
640
492
  value: providerStakeThreshold,
641
493
  })).result;
642
494
  expect(resultproviderUpdate2?.isError).to.be.false;
643
- await tasks.providerSetDatasetFromFile(JSON.parse(JSON.stringify(captchaData)));
495
+ await tasks.providerSetDatasetFromFile(JSON.parse(JSON.stringify(datasetWithIndexSolutions)));
644
496
  const dappAccount = await getUser(env, AccountKey.dappsWithStake);
645
497
  const dappUser = await getUser(env, AccountKey.dappUsers);
646
498
  const dappUserTasks = await getSignedTasks(env, dappUser);
@@ -660,63 +512,5 @@ describe.sequential('CONTRACT TASKS', async function () {
660
512
  const isError = (await tasks.contract.tx.providerDeregister()).result?.isError;
661
513
  expect(isError).to.be.false;
662
514
  });
663
- // TODO find out what is making this fail occasionally
664
- // test('Calculate captcha solution on the basis of Dapp users provided solutions', async ({env}): Promise<void> => {
665
- // const providerAccount = await getUser(env, AccountKey.providersWithStakeAndDataset)
666
- // const providerTasks = await getSignedTasks(env, providerAccount)
667
- // const providerDetails = await providerTasks.contractApi.getProvider(accountAddress(providerAccount))
668
- // const dappAccount = await getUser(env, AccountKey.dapps)
669
- //
670
- // const randomCaptchasResult = await providerTasks.db.getRandomCaptcha(false, providerDetails.datasetId)
671
- // if (randomCaptchasResult) {
672
- // const unsolvedCaptcha = randomCaptchasResult[0]
673
- // const solution = [
674
- // unsolvedCaptcha.items[0].hash || '',
675
- // unsolvedCaptcha.items[2].hash || '',
676
- // unsolvedCaptcha.items[3].hash || '',
677
- // ]
678
- // const captchaSolution: CaptchaSolution = { ...unsolvedCaptcha, solution, salt: 'blah' }
679
- // const commitments: string[] = []
680
- // for (let count = 0; count < 10; count++) {
681
- // const commitmentId = hexHash(`test${count}`)
682
- // commitments.push(commitmentId)
683
- // await providerTasks.db.storeDappUserSolution(
684
- // [captchaSolution],
685
- // commitmentId,
686
- // randomAsHex(),
687
- // accountContract(dappAccount),
688
- // providerDetails.datasetId.toString()
689
- // )
690
- // const userSolutions = await providerTasks.db.getDappUserSolutionById(commitmentId)
691
- // expect(userSolutions).to.be.not.empty
692
- // }
693
- //
694
- // const result = await providerTasks.calculateCaptchaSolutions()
695
- // expect(result).to.equal(1)
696
- //
697
- // for (const commitment of commitments) {
698
- // const userSolution = await providerTasks.db.getDappUserSolutionById(commitment)
699
- // expect(userSolution?.processed).to.be.true
700
- // }
701
- //
702
- // const providerDetailsNew = await providerTasks.contractApi.getProvider(
703
- // accountAddress(providerAccount)
704
- // )
705
- //
706
- // const captchas = await providerTasks.db.getAllCaptchasByDatasetId(providerDetailsNew.datasetId.toString())
707
- // expect(captchas?.every((captcha) => captcha.datasetId === providerDetailsNew.datasetId.toString())).to.be
708
- // .true
709
- //
710
- // expect(providerDetails.datasetId).to.not.equal(providerDetailsNew.datasetId)
711
- //
712
- // expect(Promise.resolve(providerTasks.db.getCaptchaById([unsolvedCaptcha.captchaId]))).to.be.rejected.then(
713
- // (error) => {
714
- // expect(error.message).to.equal('Failed to get captcha')
715
- // }
716
- // )
717
- // } else {
718
- // throw new ProsopoEnvError('DATABASE.CAPTCHA_GET_FAILED')
719
- // }
720
- // })
721
515
  });
722
516
  //# sourceMappingURL=tasks.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.test.js","sourceRoot":"","sources":["../../../src/tests/tasks/tasks.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.test.js","sourceRoot":"","sources":["../../../src/tests/tasks/tasks.test.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,3 @@
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
1
  import { MockEnvironment } from '@prosopo/env';
15
2
  import { ProsopoEnvError, hexHash } from '@prosopo/common';
16
3
  import { ScheduledTaskNames, ScheduledTaskStatus } from '@prosopo/types';
@@ -48,7 +35,6 @@ describe('UTIL FUNCTIONS', async () => {
48
35
  catch (e) {
49
36
  throw new ProsopoEnvError(e);
50
37
  }
51
- // insert a task into the database
52
38
  await env.db?.storeScheduledTaskStatus('0x01', ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Running);
53
39
  if (!env.db) {
54
40
  throw new Error('Database not initialized');
@@ -1 +1 @@
1
- {"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../src/tests/util.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../src/tests/util.test.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -8,21 +8,10 @@ type PromiseQueueRes<T> = {
8
8
  data?: T;
9
9
  error?: Error;
10
10
  }[];
11
- /**
12
- * Executes promises in order
13
- * @param array - array of promises
14
- * @returns PromiseQueueRes\<T\>
15
- */
16
11
  export declare function promiseQueue<T>(array: (() => Promise<T>)[]): Promise<PromiseQueueRes<T>>;
17
12
  export declare function parseBlockNumber(blockNumberString: string): number;
18
13
  export declare function calculateNewSolutions(solutions: CaptchaSolution[], winningNumberOfSolutions: number): pl.DataFrame;
19
14
  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
15
  export declare function checkIfTaskIsRunning(taskName: ScheduledTaskNames, db: Database): Promise<boolean>;
27
16
  export {};
28
17
  //# 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,kBAAkB,EAAuB,MAAM,gBAAgB,CAAA;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAmB,MAAM,iBAAiB,CAAA;AAKzD,OAAO,EAAE,MAAM,eAAe,CAAA;AAE9B,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,UAOlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQ/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,gBAcnG;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAuBvG;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvG"}
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;AAMzD,OAAO,EAAE,MAAM,eAAe,CAAA;AAE9B,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,UAOlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQ/C;AAED,KAAK,eAAe,CAAC,CAAC,IAAI;IACtB,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB,EAAE,CAAA;AAOH,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,gBAcnG;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAuBvG;AAQD,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvG"}