@prosopo/database 2.0.0 → 2.0.2

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.
@@ -1,4 +1,3 @@
1
- import { type UserCommitmentRecord } from "@prosopo/types-database";
2
- import { PowCaptcha } from "@prosopo/types";
3
- export declare const saveCaptchas: (imageCaptchaEvents: UserCommitmentRecord[], powCaptchaEvents: PowCaptcha[], atlasUri: string) => Promise<void>;
1
+ import { PoWCaptchaStored, type UserCommitmentRecord } from "@prosopo/types-database";
2
+ export declare const saveCaptchas: (imageCaptchaEvents: UserCommitmentRecord[], powCaptchaEvents: PoWCaptchaStored[], atlasUri: string) => Promise<void>;
4
3
  //# sourceMappingURL=captchaDatabase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"captchaDatabase.d.ts","sourceRoot":"","sources":["../../src/captchaDatabase/captchaDatabase.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAM5C,eAAO,MAAM,YAAY,uBACH,oBAAoB,EAAE,oBACxB,UAAU,EAAE,YACpB,MAAM,kBA+BjB,CAAC"}
1
+ {"version":3,"file":"captchaDatabase.d.ts","sourceRoot":"","sources":["../../src/captchaDatabase/captchaDatabase.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,gBAAgB,EAChB,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AAQjC,eAAO,MAAM,YAAY,uBACH,oBAAoB,EAAE,oBACxB,gBAAgB,EAAE,YAC1B,MAAM,kBA+CjB,CAAC"}
@@ -19,12 +19,24 @@ export const saveCaptchas = async (imageCaptchaEvents, powCaptchaEvents, atlasUr
19
19
  .on("error", reject);
20
20
  });
21
21
  if (imageCaptchaEvents.length) {
22
- await StoredImageCaptcha.insertMany(imageCaptchaEvents);
23
- logger.info("Mongo Saved Image Events");
22
+ const result = await StoredImageCaptcha.bulkWrite(imageCaptchaEvents.map((doc) => ({
23
+ updateOne: {
24
+ filter: { id: doc.id },
25
+ update: { $set: doc },
26
+ upsert: true,
27
+ },
28
+ })));
29
+ logger.info("Mongo Saved Image Events", result);
24
30
  }
25
31
  if (powCaptchaEvents.length) {
26
- await StoredPoWCaptcha.insertMany(powCaptchaEvents);
27
- logger.info("Mongo Saved PoW Events");
32
+ const result = await StoredPoWCaptcha.bulkWrite(powCaptchaEvents.map((doc) => ({
33
+ updateOne: {
34
+ filter: { challenge: doc.challenge },
35
+ update: { $set: doc },
36
+ upsert: true,
37
+ },
38
+ })));
39
+ logger.info("Mongo Saved PoW Events", result);
28
40
  }
29
41
  await connection.close();
30
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"captchaDatabase.js","sourceRoot":"","sources":["../../src/captchaDatabase/captchaDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAcnD,OAAO,EACL,sBAAsB,EAEtB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;AAElC,IAAI,kBAAwD,CAAC;AAC7D,IAAI,gBAA4C,CAAC;AAEjD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,kBAA0C,EAC1C,gBAA8B,EAC9B,QAAgB,EAChB,EAAE;IACF,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE;QACrD,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;IACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,UAAU;aACP,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,kBAAkB,GAAG,UAAU,CAAC,KAAK,CACnC,oBAAoB,EACpB,0BAA0B,CAC3B,CAAC;YACF,gBAAgB,GAAG,UAAU,CAAC,KAAK,CACjC,kBAAkB,EAClB,sBAAsB,CACvB,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,IAAI,kBAAkB,CAAC,MAAM,EAAE;QAC7B,MAAM,kBAAkB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;KACzC;IACD,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACvC;IAED,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"captchaDatabase.js","sourceRoot":"","sources":["../../src/captchaDatabase/captchaDatabase.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAEL,sBAAsB,EAGtB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;AAElC,IAAI,kBAAwD,CAAC;AAC7D,IAAI,gBAAkD,CAAC;AAEvD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,kBAA0C,EAC1C,gBAAoC,EACpC,QAAgB,EAChB,EAAE;IACF,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE;QACrD,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;IACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,UAAU;aACP,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,kBAAkB,GAAG,UAAU,CAAC,KAAK,CACnC,oBAAoB,EACpB,0BAA0B,CAC3B,CAAC;YACF,gBAAgB,GAAG,UAAU,CAAC,KAAK,CACjC,kBAAkB,EAClB,sBAAsB,CACvB,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,IAAI,kBAAkB,CAAC,MAAM,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAC/C,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;gBACtB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;gBACrB,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC,CACJ,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;KACjD;IACD,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAC7C,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE;gBACpC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;gBACrB,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC,CACJ,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;KAC/C;IAED,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC"}
@@ -25,12 +25,28 @@ const saveCaptchas = async (imageCaptchaEvents, powCaptchaEvents, atlasUri) => {
25
25
  }).on("error", reject);
26
26
  });
27
27
  if (imageCaptchaEvents.length) {
28
- await StoredImageCaptcha.insertMany(imageCaptchaEvents);
29
- logger.info("Mongo Saved Image Events");
28
+ const result = await StoredImageCaptcha.bulkWrite(
29
+ imageCaptchaEvents.map((doc) => ({
30
+ updateOne: {
31
+ filter: { id: doc.id },
32
+ update: { $set: doc },
33
+ upsert: true
34
+ }
35
+ }))
36
+ );
37
+ logger.info("Mongo Saved Image Events", result);
30
38
  }
31
39
  if (powCaptchaEvents.length) {
32
- await StoredPoWCaptcha.insertMany(powCaptchaEvents);
33
- logger.info("Mongo Saved PoW Events");
40
+ const result = await StoredPoWCaptcha.bulkWrite(
41
+ powCaptchaEvents.map((doc) => ({
42
+ updateOne: {
43
+ filter: { challenge: doc.challenge },
44
+ update: { $set: doc },
45
+ upsert: true
46
+ }
47
+ }))
48
+ );
49
+ logger.info("Mongo Saved PoW Events", result);
34
50
  }
35
51
  await connection.close();
36
52
  };
@@ -330,7 +330,10 @@ class ProsopoDatabase extends common.AsyncFactory {
330
330
  * @description Store a Dapp User's captcha solution commitment
331
331
  */
332
332
  async storeDappUserSolution(captchas, commit) {
333
- const commitmentRecord = typesDatabase.UserCommitmentSchema.parse(commit);
333
+ const commitmentRecord = typesDatabase.UserCommitmentSchema.parse({
334
+ ...commit,
335
+ lastUpdatedTimestamp: Date.now()
336
+ });
334
337
  if (captchas.length) {
335
338
  await this.tables?.commitment.updateOne(
336
339
  {
@@ -362,30 +365,53 @@ class ProsopoDatabase extends common.AsyncFactory {
362
365
  * @description Adds a new PoW Captcha record to the database.
363
366
  * @param {string} challenge The challenge string for the captcha.
364
367
  * @param components The components of the PoW challenge.
365
- * @param {boolean} checked Indicates if the captcha has been checked.
368
+ * @param difficulty
369
+ * @param providerSignature
370
+ * @param ipAddress
371
+ * @param serverChecked
372
+ * @param userSubmitted
373
+ * @param storedStatus
374
+ * @param userSignature
366
375
  * @returns {Promise<void>} A promise that resolves when the record is added.
367
376
  */
368
- async storePowCaptchaRecord(challenge, components, checked) {
377
+ async storePowCaptchaRecord(challenge, components, difficulty, providerSignature, ipAddress, serverChecked = false, userSubmitted = false, storedStatus = typesDatabase.StoredStatusNames.notStored, userSignature) {
369
378
  const tables = this.getTables();
370
379
  const powCaptchaRecord = {
371
380
  challenge,
372
381
  ...components,
373
- checked
382
+ ipAddress,
383
+ result: { status: types.CaptchaStatus.pending },
384
+ userSubmitted,
385
+ serverChecked,
386
+ difficulty,
387
+ providerSignature,
388
+ userSignature,
389
+ lastUpdatedTimestamp: Date.now()
374
390
  };
375
391
  try {
376
392
  await tables.powCaptcha.create(powCaptchaRecord);
377
393
  this.logger.info("PowCaptcha record added successfully", {
378
394
  challenge,
379
- checked
395
+ userSubmitted,
396
+ serverChecked,
397
+ storedStatus
380
398
  });
381
399
  } catch (error) {
382
400
  this.logger.error("Failed to add PowCaptcha record", {
383
401
  error,
384
402
  challenge,
385
- checked
403
+ userSubmitted,
404
+ serverChecked,
405
+ storedStatus
386
406
  });
387
407
  throw new common.ProsopoDBError("DATABASE.CAPTCHA_UPDATE_FAILED", {
388
- context: { error, challenge, checked },
408
+ context: {
409
+ error,
410
+ challenge,
411
+ userSubmitted,
412
+ serverChecked,
413
+ storedStatus
414
+ },
389
415
  logger: this.logger
390
416
  });
391
417
  }
@@ -393,7 +419,7 @@ class ProsopoDatabase extends common.AsyncFactory {
393
419
  /**
394
420
  * @description Retrieves a PoW Captcha record by its challenge string.
395
421
  * @param {string} challenge The challenge string to search for.
396
- * @returns {Promise<PowCaptcha | null>} A promise that resolves with the found record or null if not found.
422
+ * @returns {Promise<PoWCaptchaStored | null>} A promise that resolves with the found record or null if not found.
397
423
  */
398
424
  async getPowCaptchaRecordByChallenge(challenge) {
399
425
  if (!this.tables) {
@@ -426,38 +452,59 @@ class ProsopoDatabase extends common.AsyncFactory {
426
452
  /**
427
453
  * @description Updates a PoW Captcha record in the database.
428
454
  * @param {string} challenge The challenge string of the captcha to be updated.
429
- * @param {boolean} checked New value indicating whether the captcha has been checked.
455
+ * @param result
456
+ * @param serverChecked
457
+ * @param userSubmitted
458
+ * @param storedStatus
459
+ * @param userSignature
430
460
  * @returns {Promise<void>} A promise that resolves when the record is updated.
431
461
  */
432
- async updatePowCaptchaRecord(challenge, checked) {
462
+ async updatePowCaptchaRecord(challenge, result, serverChecked = false, userSubmitted = false, userSignature) {
433
463
  const tables = this.getTables();
464
+ const timestamp = Date.now();
465
+ const update = {
466
+ result,
467
+ serverChecked,
468
+ userSubmitted,
469
+ userSignature,
470
+ lastUpdatedTimestamp: timestamp
471
+ };
434
472
  try {
435
473
  const updateResult = await tables.powCaptcha.updateOne(
436
474
  { challenge },
437
- { $set: { checked } }
475
+ {
476
+ $set: update
477
+ }
438
478
  );
439
479
  if (updateResult.matchedCount === 0) {
440
480
  this.logger.info("No PowCaptcha record found to update", {
441
481
  challenge,
442
- checked
482
+ ...update
443
483
  });
444
484
  throw new common.ProsopoDBError("DATABASE.CAPTCHA_GET_FAILED", {
445
- context: { challenge, checked },
485
+ context: {
486
+ challenge,
487
+ ...update
488
+ },
446
489
  logger: this.logger
447
490
  });
448
491
  }
449
492
  this.logger.info("PowCaptcha record updated successfully", {
450
493
  challenge,
451
- checked
494
+ ...update
452
495
  });
453
496
  } catch (error) {
454
497
  this.logger.error("Failed to update PowCaptcha record", {
455
498
  error,
456
499
  challenge,
457
- checked
500
+ ...update
458
501
  });
459
502
  throw new common.ProsopoDBError("DATABASE.CAPTCHA_UPDATE_FAILED", {
460
- context: { error, challenge, checked },
503
+ context: {
504
+ error,
505
+ challenge,
506
+ ...update
507
+ },
461
508
  logger: this.logger
462
509
  });
463
510
  }
@@ -466,35 +513,54 @@ class ProsopoDatabase extends common.AsyncFactory {
466
513
  */
467
514
  async getProcessedDappUserSolutions() {
468
515
  const docs = await this.tables?.usersolution.find({ processed: true }).lean();
469
- return docs ? docs.map((doc) => typesDatabase.UserSolutionSchema.parse(doc)) : [];
516
+ return docs || [];
470
517
  }
471
- /** @description Get processed Dapp User captcha commitments from the commitments table
518
+ /** @description Get processed Dapp User image captcha commitments from the commitments table
472
519
  */
473
520
  async getProcessedDappUserCommitments() {
474
521
  const docs = await this.tables?.commitment.find({ processed: true }).lean();
475
- return docs ? docs.map((doc) => typesDatabase.UserCommitmentSchema.parse(doc)) : [];
522
+ return docs || [];
476
523
  }
477
- /** @description Get Dapp User captcha commitments from the commitments table that have not been batched on-chain
524
+ /** @description Get serverChecked Dapp User image captcha commitments from the commitments table
478
525
  */
479
- async getUnbatchedDappUserCommitments() {
480
- const docs = await this.tables?.commitment.find({ batched: false }).lean();
481
- return docs ? docs.map((doc) => typesDatabase.UserCommitmentSchema.parse(doc)) : [];
526
+ async getCheckedDappUserCommitments() {
527
+ const docs = await this.tables?.commitment.find({ [typesDatabase.StoredStatusNames.serverChecked]: true }).lean();
528
+ return docs || [];
482
529
  }
483
530
  /** @description Get Dapp User captcha commitments from the commitments table that have not been counted towards the
484
531
  * client's total
485
532
  */
486
533
  async getUnstoredDappUserCommitments() {
487
534
  const docs = await this.tables?.commitment.find({
488
- $or: [{ stored: false }, { stored: { $exists: false } }]
535
+ $or: [
536
+ { storedStatus: { $ne: typesDatabase.StoredStatusNames.stored } },
537
+ { storedStatus: { $exists: false } }
538
+ ]
489
539
  }).lean();
490
- return docs ? docs.map((doc) => typesDatabase.UserCommitmentSchema.parse(doc)) : [];
540
+ return docs || [];
491
541
  }
492
542
  /** @description Mark a list of captcha commits as stored
493
543
  */
494
544
  async markDappUserCommitmentsStored(commitmentIds) {
545
+ const updateDoc = {
546
+ storedAtTimestamp: Date.now()
547
+ };
495
548
  await this.tables?.commitment.updateMany(
496
549
  { id: { $in: commitmentIds } },
497
- { $set: { stored: true } },
550
+ { $set: updateDoc },
551
+ { upsert: false }
552
+ );
553
+ }
554
+ /** @description Mark a list of captcha commits as checked
555
+ */
556
+ async markDappUserCommitmentsChecked(commitmentIds) {
557
+ const updateDoc = {
558
+ [typesDatabase.StoredStatusNames.serverChecked]: true,
559
+ lastUpdatedTimestamp: Date.now()
560
+ };
561
+ await this.tables?.commitment.updateMany(
562
+ { id: { $in: commitmentIds } },
563
+ { $set: updateDoc },
498
564
  { upsert: false }
499
565
  );
500
566
  }
@@ -502,24 +568,39 @@ class ProsopoDatabase extends common.AsyncFactory {
502
568
  */
503
569
  async getUnstoredDappUserPoWCommitments() {
504
570
  const docs = await this.tables?.powCaptcha.find({
505
- $or: [{ stored: false }, { stored: { $exists: false } }]
571
+ $or: [
572
+ { storedStatus: { $ne: typesDatabase.StoredStatusNames.stored } },
573
+ { storedStatus: { $exists: false } }
574
+ ]
506
575
  }).lean();
507
576
  return docs || [];
508
577
  }
509
578
  /** @description Mark a list of PoW captcha commits as stored
510
579
  */
511
- async markDappUserPoWCommitmentsStored(challengeIds) {
580
+ async markDappUserPoWCommitmentsStored(challenges) {
581
+ const updateDoc = {
582
+ storedAtTimestamp: Date.now()
583
+ };
512
584
  await this.tables?.powCaptcha.updateMany(
513
- { challenge: { $in: challengeIds } },
514
- { $set: { stored: true } },
585
+ { challenge: { $in: challenges } },
586
+ { $set: updateDoc },
515
587
  { upsert: false }
516
588
  );
517
589
  }
518
- /** @description Get Dapp User captcha commitments from the commitments table that have been batched on-chain
590
+ /** @description Mark a list of PoW captcha commits as checked by the server
519
591
  */
520
- async getBatchedDappUserCommitments() {
521
- const docs = await this.tables?.commitment.find({ batched: true }).lean();
522
- return docs ? docs.map((doc) => typesDatabase.UserCommitmentSchema.parse(doc)) : [];
592
+ async markDappUserPoWCommitmentsChecked(challenges) {
593
+ const updateDoc = {
594
+ [typesDatabase.StoredStatusNames.serverChecked]: true,
595
+ lastUpdatedTimestamp: Date.now()
596
+ };
597
+ await this.tables?.powCaptcha.updateMany(
598
+ { challenge: { $in: challenges } },
599
+ {
600
+ $set: updateDoc
601
+ },
602
+ { upsert: false }
603
+ );
523
604
  }
524
605
  /** @description Remove processed Dapp User captcha solutions from the user solution table
525
606
  */
@@ -540,7 +621,7 @@ class ProsopoDatabase extends common.AsyncFactory {
540
621
  /**
541
622
  * @description Store a Dapp User's pending record
542
623
  */
543
- async storeDappUserPending(userAccount, requestHash, salt, deadlineTimestamp, requestedAtBlock) {
624
+ async storeDappUserPending(userAccount, requestHash, salt, deadlineTimestamp, requestedAtTimestamp, ipAddress) {
544
625
  if (!is.isHex(requestHash)) {
545
626
  throw new common.ProsopoDBError("DATABASE.INVALID_HASH", {
546
627
  context: {
@@ -555,7 +636,8 @@ class ProsopoDatabase extends common.AsyncFactory {
555
636
  salt,
556
637
  requestHash,
557
638
  deadlineTimestamp,
558
- requestedAtBlock
639
+ requestedAtTimestamp,
640
+ ipAddress
559
641
  };
560
642
  await this.tables?.pending.updateOne(
561
643
  { requestHash },
@@ -596,7 +678,7 @@ class ProsopoDatabase extends common.AsyncFactory {
596
678
  { requestHash },
597
679
  {
598
680
  $set: {
599
- pending: false
681
+ [types.CaptchaStatus.pending]: false
600
682
  }
601
683
  },
602
684
  { upsert: true }
@@ -714,14 +796,15 @@ class ProsopoDatabase extends common.AsyncFactory {
714
796
  async getDappUserCommitmentById(commitmentId) {
715
797
  const commitmentCursor = this.tables?.commitment?.findOne({ id: commitmentId }).lean();
716
798
  const doc = await commitmentCursor;
717
- return doc ? typesDatabase.UserCommitmentSchema.parse(doc) : void 0;
799
+ return doc ? doc : void 0;
718
800
  }
719
801
  /**
720
802
  * @description Get dapp user commitment by user account
721
- * @param {string[]} userAccount
803
+ * @param {string} userAccount
804
+ * @param {string} dappAccount
722
805
  */
723
- async getDappUserCommitmentByAccount(userAccount) {
724
- const docs = await this.tables?.commitment?.find({ userAccount }, { _id: 0 }, { sort: { _id: -1 } }).lean();
806
+ async getDappUserCommitmentByAccount(userAccount, dappAccount) {
807
+ const docs = await this.tables?.commitment?.find({ userAccount, dappAccount }, { _id: 0 }, { sort: { _id: -1 } }).lean();
725
808
  return docs ? docs : [];
726
809
  }
727
810
  /**
@@ -730,9 +813,14 @@ class ProsopoDatabase extends common.AsyncFactory {
730
813
  */
731
814
  async approveDappUserCommitment(commitmentId) {
732
815
  try {
816
+ const result = { status: types.CaptchaStatus.approved };
817
+ const updateDoc = {
818
+ result,
819
+ lastUpdatedTimestamp: Date.now()
820
+ };
733
821
  await this.tables?.commitment?.findOneAndUpdate(
734
822
  { id: commitmentId },
735
- { $set: { status: types.CaptchaStatus.approved } },
823
+ { $set: updateDoc },
736
824
  { upsert: false }
737
825
  ).lean();
738
826
  } catch (err) {
@@ -742,37 +830,41 @@ class ProsopoDatabase extends common.AsyncFactory {
742
830
  }
743
831
  }
744
832
  /**
745
- * @description Flag a dapp user's solutions as used by calculated solution
746
- * @param {string[]} captchaIds
833
+ * @description Disapprove a dapp user's solution
834
+ * @param {string} commitmentId
835
+ * @param reason
747
836
  */
748
- async flagProcessedDappUserSolutions(captchaIds) {
837
+ async disapproveDappUserCommitment(commitmentId, reason) {
749
838
  try {
750
- await this.tables?.usersolution?.updateMany(
751
- { captchaId: { $in: captchaIds } },
752
- { $set: { processed: true } },
839
+ const updateDoc = {
840
+ result: { status: types.CaptchaStatus.disapproved, reason },
841
+ lastUpdatedTimestamp: Date.now()
842
+ };
843
+ await this.tables?.commitment?.findOneAndUpdate(
844
+ { id: commitmentId },
845
+ { $set: updateDoc },
753
846
  { upsert: false }
754
847
  ).lean();
755
848
  } catch (err) {
756
- throw new common.ProsopoDBError("DATABASE.SOLUTION_FLAG_FAILED", {
757
- context: { error: err, captchaIds }
849
+ throw new common.ProsopoDBError("DATABASE.SOLUTION_APPROVE_FAILED", {
850
+ context: { error: err, commitmentId }
758
851
  });
759
852
  }
760
853
  }
761
854
  /**
762
- * @description Flag dapp users' commitments as used by calculated solution
763
- * @param {string[]} commitmentIds
855
+ * @description Flag a dapp user's solutions as used by calculated solution
856
+ * @param {string[]} captchaIds
764
857
  */
765
- async flagProcessedDappUserCommitments(commitmentIds) {
858
+ async flagProcessedDappUserSolutions(captchaIds) {
766
859
  try {
767
- const distinctCommitmentIds = [...new Set(commitmentIds)];
768
- await this.tables?.commitment?.updateMany(
769
- { id: { $in: distinctCommitmentIds } },
860
+ await this.tables?.usersolution?.updateMany(
861
+ { captchaId: { $in: captchaIds } },
770
862
  { $set: { processed: true } },
771
863
  { upsert: false }
772
864
  ).lean();
773
865
  } catch (err) {
774
- throw new common.ProsopoDBError("DATABASE.COMMITMENT_FLAG_FAILED", {
775
- context: { error: err, commitmentIds }
866
+ throw new common.ProsopoDBError("DATABASE.SOLUTION_FLAG_FAILED", {
867
+ context: { error: err, captchaIds }
776
868
  });
777
869
  }
778
870
  }
@@ -780,12 +872,12 @@ class ProsopoDatabase extends common.AsyncFactory {
780
872
  * @description Flag dapp users' commitments as used by calculated solution
781
873
  * @param {string[]} commitmentIds
782
874
  */
783
- async flagBatchedDappUserCommitments(commitmentIds) {
875
+ async flagProcessedDappUserCommitments(commitmentIds) {
784
876
  try {
785
877
  const distinctCommitmentIds = [...new Set(commitmentIds)];
786
878
  await this.tables?.commitment?.updateMany(
787
879
  { id: { $in: distinctCommitmentIds } },
788
- { $set: { batched: true } },
880
+ { $set: { processed: true } },
789
881
  { upsert: false }
790
882
  ).lean();
791
883
  } catch (err) {
@@ -794,20 +886,6 @@ class ProsopoDatabase extends common.AsyncFactory {
794
886
  });
795
887
  }
796
888
  }
797
- /**
798
- * @description Get the last batch commit time or return 0 if none
799
- */
800
- async getLastBatchCommitTime() {
801
- const cursor = this.tables?.scheduler?.findOne({
802
- processName: types.ScheduledTaskNames.BatchCommitment,
803
- status: types.ScheduledTaskStatus.Completed
804
- }).sort({ timestamp: -1 });
805
- const doc = await cursor?.lean();
806
- if (doc) {
807
- return doc.datetime;
808
- }
809
- return /* @__PURE__ */ new Date(0);
810
- }
811
889
  /**
812
890
  * @description Get a scheduled task status record by task ID and status
813
891
  */
@@ -827,18 +905,34 @@ class ProsopoDatabase extends common.AsyncFactory {
827
905
  return cursor ? cursor : void 0;
828
906
  }
829
907
  /**
830
- * @description Store the status of a scheduled task and an optional result
908
+ * @description Create the status of a scheduled task
831
909
  */
832
- async storeScheduledTaskStatus(taskId, task, status, result) {
833
- const now = /* @__PURE__ */ new Date();
910
+ async createScheduledTaskStatus(taskName, status) {
911
+ const now = (/* @__PURE__ */ new Date()).getTime();
834
912
  const doc = typesDatabase.ScheduledTaskSchema.parse({
835
- taskId,
836
- processName: task,
913
+ processName: taskName,
837
914
  datetime: now,
915
+ status
916
+ });
917
+ const taskRecord = await this.tables?.scheduler.create(doc);
918
+ return taskRecord._id;
919
+ }
920
+ /**
921
+ * @description Update the status of a scheduled task and an optional result
922
+ */
923
+ async updateScheduledTaskStatus(taskId, status, result) {
924
+ const update = {
838
925
  status,
926
+ updated: (/* @__PURE__ */ new Date()).getTime(),
839
927
  ...result && { result }
840
- });
841
- await this.tables?.scheduler.create(doc);
928
+ };
929
+ await this.tables?.scheduler.updateOne(
930
+ { _id: taskId },
931
+ { $set: update },
932
+ {
933
+ upsert: false
934
+ }
935
+ );
842
936
  }
843
937
  }
844
938
  exports.ProsopoDatabase = ProsopoDatabase;
@@ -1,9 +1,8 @@
1
- /// <reference types="mongoose/types/connection.js" />
2
- import { AsyncFactory, type Logger } from "@prosopo/common";
3
- import { type Captcha, type CaptchaSolution, CaptchaStates, type DatasetBase, type DatasetWithIds, type DatasetWithIdsAndTree, type Hash, type PendingCaptchaRequest, type PowCaptcha, PoWChallengeComponents, PoWChallengeId, ScheduledTaskNames, type ScheduledTaskResult, ScheduledTaskStatus } from "@prosopo/types";
4
- import { type Database, type ScheduledTaskRecord, type SolutionRecord, type Tables, type UserCommitmentRecord, type UserSolutionRecord } from "@prosopo/types-database";
1
+ import { AsyncFactory, type Logger, TranslationKey } from "@prosopo/common";
2
+ import { type Captcha, CaptchaResult, type CaptchaSolution, CaptchaStates, type DatasetBase, type DatasetWithIds, type DatasetWithIdsAndTree, type Hash, type PendingCaptchaRequest, PoWChallengeComponents, PoWChallengeId, ScheduledTaskNames, type ScheduledTaskResult, ScheduledTaskStatus } from "@prosopo/types";
3
+ import { type Database, type PoWCaptchaStored, type ScheduledTaskRecord, type SolutionRecord, StoredStatus, type Tables, type UserCommitmentRecord, type UserSolutionRecord } from "@prosopo/types-database";
5
4
  import { type DeleteResult } from "mongodb";
6
- import mongoose, { type Connection } from "mongoose";
5
+ import mongoose, { type Connection, ObjectId } from "mongoose";
7
6
  export declare class ProsopoDatabase extends AsyncFactory implements Database {
8
7
  url: string;
9
8
  tables?: Tables;
@@ -25,20 +24,21 @@ export declare class ProsopoDatabase extends AsyncFactory implements Database {
25
24
  removeCaptchas(captchaIds: string[]): Promise<void>;
26
25
  getDatasetDetails(datasetId: Hash): Promise<DatasetBase>;
27
26
  storeDappUserSolution(captchas: CaptchaSolution[], commit: UserCommitmentRecord): Promise<void>;
28
- storePowCaptchaRecord(challenge: PoWChallengeId, components: PoWChallengeComponents, checked: boolean): Promise<void>;
29
- getPowCaptchaRecordByChallenge(challenge: string): Promise<PowCaptcha | null>;
30
- updatePowCaptchaRecord(challenge: string, checked: boolean): Promise<void>;
27
+ storePowCaptchaRecord(challenge: PoWChallengeId, components: PoWChallengeComponents, difficulty: number, providerSignature: string, ipAddress: string, serverChecked?: boolean, userSubmitted?: boolean, storedStatus?: StoredStatus, userSignature?: string): Promise<void>;
28
+ getPowCaptchaRecordByChallenge(challenge: string): Promise<PoWCaptchaStored | null>;
29
+ updatePowCaptchaRecord(challenge: PoWChallengeId, result: CaptchaResult, serverChecked?: boolean, userSubmitted?: boolean, userSignature?: string): Promise<void>;
31
30
  getProcessedDappUserSolutions(): Promise<UserSolutionRecord[]>;
32
31
  getProcessedDappUserCommitments(): Promise<UserCommitmentRecord[]>;
33
- getUnbatchedDappUserCommitments(): Promise<UserCommitmentRecord[]>;
32
+ getCheckedDappUserCommitments(): Promise<UserCommitmentRecord[]>;
34
33
  getUnstoredDappUserCommitments(): Promise<UserCommitmentRecord[]>;
35
34
  markDappUserCommitmentsStored(commitmentIds: Hash[]): Promise<void>;
36
- getUnstoredDappUserPoWCommitments(): Promise<PowCaptcha[]>;
37
- markDappUserPoWCommitmentsStored(challengeIds: string[]): Promise<void>;
38
- getBatchedDappUserCommitments(): Promise<UserCommitmentRecord[]>;
35
+ markDappUserCommitmentsChecked(commitmentIds: Hash[]): Promise<void>;
36
+ getUnstoredDappUserPoWCommitments(): Promise<PoWCaptchaStored[]>;
37
+ markDappUserPoWCommitmentsStored(challenges: string[]): Promise<void>;
38
+ markDappUserPoWCommitmentsChecked(challenges: string[]): Promise<void>;
39
39
  removeProcessedDappUserSolutions(commitmentIds: string[]): Promise<DeleteResult | undefined>;
40
40
  removeProcessedDappUserCommitments(commitmentIds: string[]): Promise<DeleteResult | undefined>;
41
- storeDappUserPending(userAccount: string, requestHash: string, salt: string, deadlineTimestamp: number, requestedAtBlock: number): Promise<void>;
41
+ storeDappUserPending(userAccount: string, requestHash: string, salt: string, deadlineTimestamp: number, requestedAtTimestamp: number, ipAddress: string): Promise<void>;
42
42
  getDappUserPending(requestHash: string): Promise<PendingCaptchaRequest>;
43
43
  updateDappUserPendingStatus(requestHash: string): Promise<void>;
44
44
  getAllCaptchasByDatasetId(datasetId: string, state?: CaptchaStates): Promise<Captcha[] | undefined>;
@@ -47,14 +47,14 @@ export declare class ProsopoDatabase extends AsyncFactory implements Database {
47
47
  getRandomSolvedCaptchasFromSingleDataset(datasetId: string, size: number): Promise<CaptchaSolution[]>;
48
48
  getDappUserSolutionById(commitmentId: string): Promise<UserSolutionRecord | undefined>;
49
49
  getDappUserCommitmentById(commitmentId: string): Promise<UserCommitmentRecord | undefined>;
50
- getDappUserCommitmentByAccount(userAccount: string): Promise<UserCommitmentRecord[]>;
50
+ getDappUserCommitmentByAccount(userAccount: string, dappAccount: string): Promise<UserCommitmentRecord[]>;
51
51
  approveDappUserCommitment(commitmentId: string): Promise<void>;
52
+ disapproveDappUserCommitment(commitmentId: string, reason?: TranslationKey): Promise<void>;
52
53
  flagProcessedDappUserSolutions(captchaIds: Hash[]): Promise<void>;
53
54
  flagProcessedDappUserCommitments(commitmentIds: Hash[]): Promise<void>;
54
- flagBatchedDappUserCommitments(commitmentIds: Hash[]): Promise<void>;
55
- getLastBatchCommitTime(): Promise<Date>;
56
- getScheduledTaskStatus(taskId: string, status: ScheduledTaskStatus): Promise<ScheduledTaskRecord | undefined>;
55
+ getScheduledTaskStatus(taskId: ObjectId, status: ScheduledTaskStatus): Promise<ScheduledTaskRecord | undefined>;
57
56
  getLastScheduledTaskStatus(task: ScheduledTaskNames, status?: ScheduledTaskStatus): Promise<ScheduledTaskRecord | undefined>;
58
- storeScheduledTaskStatus(taskId: `0x${string}`, task: ScheduledTaskNames, status: ScheduledTaskStatus, result?: ScheduledTaskResult): Promise<void>;
57
+ createScheduledTaskStatus(taskName: ScheduledTaskNames, status: ScheduledTaskStatus): Promise<ObjectId>;
58
+ updateScheduledTaskStatus(taskId: ObjectId, status: ScheduledTaskStatus, result?: ScheduledTaskResult): Promise<void>;
59
59
  }
60
60
  //# sourceMappingURL=mongo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongo.d.ts","sourceRoot":"","sources":["../../src/databases/mongo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongo.d.ts","sourceRoot":"","sources":["../../src/databases/mongo.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { isHex } from "@polkadot/util/is";
2
- import { AsyncFactory, ProsopoDBError, ProsopoEnvError, getLoggerDefault, } from "@prosopo/common";
3
- import { CaptchaStates, CaptchaStatus, DatasetWithIdsAndTreeSchema, ScheduledTaskNames, ScheduledTaskStatus, } from "@prosopo/types";
4
- import { CaptchaRecordSchema, DatasetRecordSchema, PendingRecordSchema, PowCaptchaRecordSchema, ScheduledTaskRecordSchema, ScheduledTaskSchema, SolutionRecordSchema, UserCommitmentRecordSchema, UserCommitmentSchema, UserSolutionRecordSchema, UserSolutionSchema, } from "@prosopo/types-database";
2
+ import { AsyncFactory, getLoggerDefault, ProsopoDBError, ProsopoEnvError, } from "@prosopo/common";
3
+ import { CaptchaStates, CaptchaStatus, DatasetWithIdsAndTreeSchema, } from "@prosopo/types";
4
+ import { CaptchaRecordSchema, DatasetRecordSchema, PendingRecordSchema, PowCaptchaRecordSchema, ScheduledTaskRecordSchema, ScheduledTaskSchema, SolutionRecordSchema, StoredStatusNames, UserCommitmentRecordSchema, UserCommitmentSchema, UserSolutionRecordSchema, } from "@prosopo/types-database";
5
5
  import { ServerApiVersion } from "mongodb";
6
6
  import mongoose from "mongoose";
7
7
  mongoose.set("strictQuery", false);
@@ -278,7 +278,10 @@ export class ProsopoDatabase extends AsyncFactory {
278
278
  });
279
279
  }
280
280
  async storeDappUserSolution(captchas, commit) {
281
- const commitmentRecord = UserCommitmentSchema.parse(commit);
281
+ const commitmentRecord = UserCommitmentSchema.parse({
282
+ ...commit,
283
+ lastUpdatedTimestamp: Date.now(),
284
+ });
282
285
  if (captchas.length) {
283
286
  await this.tables?.commitment.updateOne({
284
287
  id: commit.id,
@@ -302,28 +305,45 @@ export class ProsopoDatabase extends AsyncFactory {
302
305
  await this.tables?.usersolution.bulkWrite(ops);
303
306
  }
304
307
  }
305
- async storePowCaptchaRecord(challenge, components, checked) {
308
+ async storePowCaptchaRecord(challenge, components, difficulty, providerSignature, ipAddress, serverChecked = false, userSubmitted = false, storedStatus = StoredStatusNames.notStored, userSignature) {
306
309
  const tables = this.getTables();
307
310
  const powCaptchaRecord = {
308
311
  challenge,
309
312
  ...components,
310
- checked,
313
+ ipAddress,
314
+ result: { status: CaptchaStatus.pending },
315
+ userSubmitted,
316
+ serverChecked,
317
+ difficulty,
318
+ providerSignature,
319
+ userSignature,
320
+ lastUpdatedTimestamp: Date.now(),
311
321
  };
312
322
  try {
313
323
  await tables.powCaptcha.create(powCaptchaRecord);
314
324
  this.logger.info("PowCaptcha record added successfully", {
315
325
  challenge,
316
- checked,
326
+ userSubmitted,
327
+ serverChecked,
328
+ storedStatus,
317
329
  });
318
330
  }
319
331
  catch (error) {
320
332
  this.logger.error("Failed to add PowCaptcha record", {
321
333
  error,
322
334
  challenge,
323
- checked,
335
+ userSubmitted,
336
+ serverChecked,
337
+ storedStatus,
324
338
  });
325
339
  throw new ProsopoDBError("DATABASE.CAPTCHA_UPDATE_FAILED", {
326
- context: { error, challenge, checked },
340
+ context: {
341
+ error,
342
+ challenge,
343
+ userSubmitted,
344
+ serverChecked,
345
+ storedStatus,
346
+ },
327
347
  logger: this.logger,
328
348
  });
329
349
  }
@@ -336,9 +356,7 @@ export class ProsopoDatabase extends AsyncFactory {
336
356
  });
337
357
  }
338
358
  try {
339
- const record = await this.tables.powCaptcha
340
- .findOne({ challenge })
341
- .lean();
359
+ const record = await this.tables.powCaptcha.findOne({ challenge }).lean();
342
360
  if (record) {
343
361
  this.logger.info("PowCaptcha record retrieved successfully", {
344
362
  challenge,
@@ -359,33 +377,50 @@ export class ProsopoDatabase extends AsyncFactory {
359
377
  });
360
378
  }
361
379
  }
362
- async updatePowCaptchaRecord(challenge, checked) {
380
+ async updatePowCaptchaRecord(challenge, result, serverChecked = false, userSubmitted = false, userSignature) {
363
381
  const tables = this.getTables();
382
+ const timestamp = Date.now();
383
+ const update = {
384
+ result,
385
+ serverChecked,
386
+ userSubmitted,
387
+ userSignature,
388
+ lastUpdatedTimestamp: timestamp,
389
+ };
364
390
  try {
365
- const updateResult = await tables.powCaptcha.updateOne({ challenge }, { $set: { checked } });
391
+ const updateResult = await tables.powCaptcha.updateOne({ challenge }, {
392
+ $set: update,
393
+ });
366
394
  if (updateResult.matchedCount === 0) {
367
395
  this.logger.info("No PowCaptcha record found to update", {
368
396
  challenge,
369
- checked,
397
+ ...update,
370
398
  });
371
399
  throw new ProsopoDBError("DATABASE.CAPTCHA_GET_FAILED", {
372
- context: { challenge, checked },
400
+ context: {
401
+ challenge,
402
+ ...update,
403
+ },
373
404
  logger: this.logger,
374
405
  });
375
406
  }
376
407
  this.logger.info("PowCaptcha record updated successfully", {
377
408
  challenge,
378
- checked,
409
+ ...update,
379
410
  });
380
411
  }
381
412
  catch (error) {
382
413
  this.logger.error("Failed to update PowCaptcha record", {
383
414
  error,
384
415
  challenge,
385
- checked,
416
+ ...update,
386
417
  });
387
418
  throw new ProsopoDBError("DATABASE.CAPTCHA_UPDATE_FAILED", {
388
- context: { error, challenge, checked },
419
+ context: {
420
+ error,
421
+ challenge,
422
+ ...update,
423
+ },
389
424
  logger: this.logger,
390
425
  });
391
426
  }
@@ -394,41 +429,69 @@ export class ProsopoDatabase extends AsyncFactory {
394
429
  const docs = await this.tables?.usersolution
395
430
  .find({ processed: true })
396
431
  .lean();
397
- return docs ? docs.map((doc) => UserSolutionSchema.parse(doc)) : [];
432
+ return docs || [];
398
433
  }
399
434
  async getProcessedDappUserCommitments() {
400
- const docs = await this.tables?.commitment.find({ processed: true }).lean();
401
- return docs ? docs.map((doc) => UserCommitmentSchema.parse(doc)) : [];
435
+ const docs = await this.tables?.commitment
436
+ .find({ processed: true })
437
+ .lean();
438
+ return docs || [];
402
439
  }
403
- async getUnbatchedDappUserCommitments() {
404
- const docs = await this.tables?.commitment.find({ batched: false }).lean();
405
- return docs ? docs.map((doc) => UserCommitmentSchema.parse(doc)) : [];
440
+ async getCheckedDappUserCommitments() {
441
+ const docs = await this.tables?.commitment
442
+ .find({ [StoredStatusNames.serverChecked]: true })
443
+ .lean();
444
+ return docs || [];
406
445
  }
407
446
  async getUnstoredDappUserCommitments() {
408
447
  const docs = await this.tables?.commitment
409
448
  .find({
410
- $or: [{ stored: false }, { stored: { $exists: false } }],
449
+ $or: [
450
+ { storedStatus: { $ne: StoredStatusNames.stored } },
451
+ { storedStatus: { $exists: false } },
452
+ ],
411
453
  })
412
454
  .lean();
413
- return docs ? docs.map((doc) => UserCommitmentSchema.parse(doc)) : [];
455
+ return docs || [];
414
456
  }
415
457
  async markDappUserCommitmentsStored(commitmentIds) {
416
- await this.tables?.commitment.updateMany({ id: { $in: commitmentIds } }, { $set: { stored: true } }, { upsert: false });
458
+ const updateDoc = {
459
+ storedAtTimestamp: Date.now(),
460
+ };
461
+ await this.tables?.commitment.updateMany({ id: { $in: commitmentIds } }, { $set: updateDoc }, { upsert: false });
462
+ }
463
+ async markDappUserCommitmentsChecked(commitmentIds) {
464
+ const updateDoc = {
465
+ [StoredStatusNames.serverChecked]: true,
466
+ lastUpdatedTimestamp: Date.now(),
467
+ };
468
+ await this.tables?.commitment.updateMany({ id: { $in: commitmentIds } }, { $set: updateDoc }, { upsert: false });
417
469
  }
418
470
  async getUnstoredDappUserPoWCommitments() {
419
471
  const docs = await this.tables?.powCaptcha
420
472
  .find({
421
- $or: [{ stored: false }, { stored: { $exists: false } }],
473
+ $or: [
474
+ { storedStatus: { $ne: StoredStatusNames.stored } },
475
+ { storedStatus: { $exists: false } },
476
+ ],
422
477
  })
423
478
  .lean();
424
479
  return docs || [];
425
480
  }
426
- async markDappUserPoWCommitmentsStored(challengeIds) {
427
- await this.tables?.powCaptcha.updateMany({ challenge: { $in: challengeIds } }, { $set: { stored: true } }, { upsert: false });
481
+ async markDappUserPoWCommitmentsStored(challenges) {
482
+ const updateDoc = {
483
+ storedAtTimestamp: Date.now(),
484
+ };
485
+ await this.tables?.powCaptcha.updateMany({ challenge: { $in: challenges } }, { $set: updateDoc }, { upsert: false });
428
486
  }
429
- async getBatchedDappUserCommitments() {
430
- const docs = await this.tables?.commitment.find({ batched: true }).lean();
431
- return docs ? docs.map((doc) => UserCommitmentSchema.parse(doc)) : [];
487
+ async markDappUserPoWCommitmentsChecked(challenges) {
488
+ const updateDoc = {
489
+ [StoredStatusNames.serverChecked]: true,
490
+ lastUpdatedTimestamp: Date.now(),
491
+ };
492
+ await this.tables?.powCaptcha.updateMany({ challenge: { $in: challenges } }, {
493
+ $set: updateDoc,
494
+ }, { upsert: false });
432
495
  }
433
496
  async removeProcessedDappUserSolutions(commitmentIds) {
434
497
  return await this.tables?.usersolution.deleteMany({
@@ -442,7 +505,7 @@ export class ProsopoDatabase extends AsyncFactory {
442
505
  id: { $in: commitmentIds },
443
506
  });
444
507
  }
445
- async storeDappUserPending(userAccount, requestHash, salt, deadlineTimestamp, requestedAtBlock) {
508
+ async storeDappUserPending(userAccount, requestHash, salt, deadlineTimestamp, requestedAtTimestamp, ipAddress) {
446
509
  if (!isHex(requestHash)) {
447
510
  throw new ProsopoDBError("DATABASE.INVALID_HASH", {
448
511
  context: {
@@ -457,7 +520,8 @@ export class ProsopoDatabase extends AsyncFactory {
457
520
  salt,
458
521
  requestHash,
459
522
  deadlineTimestamp,
460
- requestedAtBlock,
523
+ requestedAtTimestamp,
524
+ ipAddress,
461
525
  };
462
526
  await this.tables?.pending.updateOne({ requestHash: requestHash }, { $set: pendingRecord }, { upsert: true });
463
527
  }
@@ -486,7 +550,7 @@ export class ProsopoDatabase extends AsyncFactory {
486
550
  }
487
551
  await this.tables?.pending.updateOne({ requestHash: requestHash }, {
488
552
  $set: {
489
- pending: false,
553
+ [CaptchaStatus.pending]: false,
490
554
  },
491
555
  }, { upsert: true });
492
556
  }
@@ -591,18 +655,23 @@ export class ProsopoDatabase extends AsyncFactory {
591
655
  ?.findOne({ id: commitmentId })
592
656
  .lean();
593
657
  const doc = await commitmentCursor;
594
- return doc ? UserCommitmentSchema.parse(doc) : undefined;
658
+ return doc ? doc : undefined;
595
659
  }
596
- async getDappUserCommitmentByAccount(userAccount) {
660
+ async getDappUserCommitmentByAccount(userAccount, dappAccount) {
597
661
  const docs = await this.tables?.commitment
598
- ?.find({ userAccount }, { _id: 0 }, { sort: { _id: -1 } })
662
+ ?.find({ userAccount, dappAccount }, { _id: 0 }, { sort: { _id: -1 } })
599
663
  .lean();
600
664
  return docs ? docs : [];
601
665
  }
602
666
  async approveDappUserCommitment(commitmentId) {
603
667
  try {
668
+ const result = { status: CaptchaStatus.approved };
669
+ const updateDoc = {
670
+ result,
671
+ lastUpdatedTimestamp: Date.now(),
672
+ };
604
673
  await this.tables?.commitment
605
- ?.findOneAndUpdate({ id: commitmentId }, { $set: { status: CaptchaStatus.approved } }, { upsert: false })
674
+ ?.findOneAndUpdate({ id: commitmentId }, { $set: updateDoc }, { upsert: false })
606
675
  .lean();
607
676
  }
608
677
  catch (err) {
@@ -611,36 +680,39 @@ export class ProsopoDatabase extends AsyncFactory {
611
680
  });
612
681
  }
613
682
  }
614
- async flagProcessedDappUserSolutions(captchaIds) {
683
+ async disapproveDappUserCommitment(commitmentId, reason) {
615
684
  try {
616
- await this.tables?.usersolution
617
- ?.updateMany({ captchaId: { $in: captchaIds } }, { $set: { processed: true } }, { upsert: false })
685
+ const updateDoc = {
686
+ result: { status: CaptchaStatus.disapproved, reason },
687
+ lastUpdatedTimestamp: Date.now(),
688
+ };
689
+ await this.tables?.commitment
690
+ ?.findOneAndUpdate({ id: commitmentId }, { $set: updateDoc }, { upsert: false })
618
691
  .lean();
619
692
  }
620
693
  catch (err) {
621
- throw new ProsopoDBError("DATABASE.SOLUTION_FLAG_FAILED", {
622
- context: { error: err, captchaIds },
694
+ throw new ProsopoDBError("DATABASE.SOLUTION_APPROVE_FAILED", {
695
+ context: { error: err, commitmentId },
623
696
  });
624
697
  }
625
698
  }
626
- async flagProcessedDappUserCommitments(commitmentIds) {
699
+ async flagProcessedDappUserSolutions(captchaIds) {
627
700
  try {
628
- const distinctCommitmentIds = [...new Set(commitmentIds)];
629
- await this.tables?.commitment
630
- ?.updateMany({ id: { $in: distinctCommitmentIds } }, { $set: { processed: true } }, { upsert: false })
701
+ await this.tables?.usersolution
702
+ ?.updateMany({ captchaId: { $in: captchaIds } }, { $set: { processed: true } }, { upsert: false })
631
703
  .lean();
632
704
  }
633
705
  catch (err) {
634
- throw new ProsopoDBError("DATABASE.COMMITMENT_FLAG_FAILED", {
635
- context: { error: err, commitmentIds },
706
+ throw new ProsopoDBError("DATABASE.SOLUTION_FLAG_FAILED", {
707
+ context: { error: err, captchaIds },
636
708
  });
637
709
  }
638
710
  }
639
- async flagBatchedDappUserCommitments(commitmentIds) {
711
+ async flagProcessedDappUserCommitments(commitmentIds) {
640
712
  try {
641
713
  const distinctCommitmentIds = [...new Set(commitmentIds)];
642
714
  await this.tables?.commitment
643
- ?.updateMany({ id: { $in: distinctCommitmentIds } }, { $set: { batched: true } }, { upsert: false })
715
+ ?.updateMany({ id: { $in: distinctCommitmentIds } }, { $set: { processed: true } }, { upsert: false })
644
716
  .lean();
645
717
  }
646
718
  catch (err) {
@@ -649,19 +721,6 @@ export class ProsopoDatabase extends AsyncFactory {
649
721
  });
650
722
  }
651
723
  }
652
- async getLastBatchCommitTime() {
653
- const cursor = this.tables?.scheduler
654
- ?.findOne({
655
- processName: ScheduledTaskNames.BatchCommitment,
656
- status: ScheduledTaskStatus.Completed,
657
- })
658
- .sort({ timestamp: -1 });
659
- const doc = await cursor?.lean();
660
- if (doc) {
661
- return doc.datetime;
662
- }
663
- return new Date(0);
664
- }
665
724
  async getScheduledTaskStatus(taskId, status) {
666
725
  const cursor = await this.tables?.scheduler
667
726
  ?.findOne({ taskId: taskId, status: status })
@@ -679,16 +738,25 @@ export class ProsopoDatabase extends AsyncFactory {
679
738
  .lean();
680
739
  return cursor ? cursor : undefined;
681
740
  }
682
- async storeScheduledTaskStatus(taskId, task, status, result) {
683
- const now = new Date();
741
+ async createScheduledTaskStatus(taskName, status) {
742
+ const now = new Date().getTime();
684
743
  const doc = ScheduledTaskSchema.parse({
685
- taskId,
686
- processName: task,
744
+ processName: taskName,
687
745
  datetime: now,
688
746
  status,
747
+ });
748
+ const taskRecord = await this.tables?.scheduler.create(doc);
749
+ return taskRecord._id;
750
+ }
751
+ async updateScheduledTaskStatus(taskId, status, result) {
752
+ const update = {
753
+ status,
754
+ updated: new Date().getTime(),
689
755
  ...(result && { result }),
756
+ };
757
+ await this.tables?.scheduler.updateOne({ _id: taskId }, { $set: update }, {
758
+ upsert: false,
690
759
  });
691
- await this.tables?.scheduler.create(doc);
692
760
  }
693
761
  }
694
762
  //# sourceMappingURL=mongo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../src/databases/mongo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../src/databases/mongo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,46 +1,46 @@
1
1
  {
2
- "name": "@prosopo/database",
3
- "version": "2.0.0",
4
- "description": "Prosopo database plugins for provider",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "engines": {
8
- "node": ">=20",
9
- "npm": ">=9"
10
- },
11
- "exports": {
12
- ".": {
13
- "import": "./dist/index.js",
14
- "require": "./dist/cjs/index.cjs"
15
- }
16
- },
17
- "scripts": {
18
- "test": "echo \"No test specified\"",
19
- "clean": "tsc --build --clean",
20
- "build": "tsc --build --verbose",
21
- "build:cjs": "npx vite --config vite.cjs.config.ts build"
22
- },
23
- "repository": {
24
- "type": "git",
25
- "url": "git+ssh://git@github.com/prosopo/captcha.git"
26
- },
27
- "author": "Prosopo Limited",
28
- "license": "Apache-2.0",
29
- "bugs": {
30
- "url": "https://github.com/prosopo/captcha/issues"
31
- },
32
- "homepage": "https://github.com/prosopo/captcha#readme",
33
- "dependencies": {
34
- "@prosopo/common": "2.0.0",
35
- "@prosopo/config": "2.0.0",
36
- "@prosopo/types": "2.0.0",
37
- "@prosopo/types-database": "2.0.0",
38
- "mongodb-memory-server": "^9.4.0",
39
- "mongoose": "^8.5.1"
40
- },
41
- "devDependencies": {
42
- "tslib": "2.6.2",
43
- "typescript": "5.1.6"
44
- },
45
- "sideEffects": false
2
+ "name": "@prosopo/database",
3
+ "version": "2.0.2",
4
+ "description": "Prosopo database plugins for provider",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "engines": {
8
+ "node": ">=20",
9
+ "npm": ">=9"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "require": "./dist/cjs/index.cjs"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "test": "echo \"No test specified\"",
19
+ "clean": "tsc --build --clean",
20
+ "build": "tsc --build --verbose",
21
+ "build:cjs": "npx vite --config vite.cjs.config.ts build"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+ssh://git@github.com/prosopo/captcha.git"
26
+ },
27
+ "author": "Prosopo Limited",
28
+ "license": "Apache-2.0",
29
+ "bugs": {
30
+ "url": "https://github.com/prosopo/captcha/issues"
31
+ },
32
+ "homepage": "https://github.com/prosopo/captcha#readme",
33
+ "dependencies": {
34
+ "@prosopo/common": "2.0.2",
35
+ "@prosopo/config": "2.0.2",
36
+ "@prosopo/types": "2.0.2",
37
+ "@prosopo/types-database": "2.0.2",
38
+ "mongodb-memory-server": "^9.4.0",
39
+ "mongoose": "^8.5.1"
40
+ },
41
+ "devDependencies": {
42
+ "tslib": "2.6.2",
43
+ "typescript": "5.1.6"
44
+ },
45
+ "sideEffects": false
46
46
  }