@prosopo/provider 1.0.1 → 2.0.0

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 (191) hide show
  1. package/README.md +0 -258
  2. package/dist/api/admin.d.ts +2 -2
  3. package/dist/api/admin.d.ts.map +1 -1
  4. package/dist/api/admin.js +5 -64
  5. package/dist/api/admin.js.map +1 -1
  6. package/dist/api/authMiddleware.d.ts +4 -4
  7. package/dist/api/authMiddleware.d.ts.map +1 -1
  8. package/dist/api/authMiddleware.js +15 -29
  9. package/dist/api/authMiddleware.js.map +1 -1
  10. package/dist/api/captcha.d.ts +2 -2
  11. package/dist/api/captcha.d.ts.map +1 -1
  12. package/dist/api/captcha.js +64 -55
  13. package/dist/api/captcha.js.map +1 -1
  14. package/dist/api/captchaScheduler.d.ts +4 -0
  15. package/dist/api/captchaScheduler.d.ts.map +1 -0
  16. package/dist/api/captchaScheduler.js +22 -0
  17. package/dist/api/captchaScheduler.js.map +1 -0
  18. package/dist/api/errorHandler.d.ts +3 -3
  19. package/dist/api/errorHandler.d.ts.map +1 -1
  20. package/dist/api/errorHandler.js +7 -3
  21. package/dist/api/errorHandler.js.map +1 -1
  22. package/dist/api/verify.d.ts +2 -2
  23. package/dist/api/verify.d.ts.map +1 -1
  24. package/dist/api/verify.js +37 -29
  25. package/dist/api/verify.js.map +1 -1
  26. package/dist/cjs/api/admin.cjs +2 -89
  27. package/dist/cjs/api/authMiddleware.cjs +1 -15
  28. package/dist/cjs/api/captcha.cjs +89 -52
  29. package/dist/cjs/api/captchaScheduler.cjs +20 -0
  30. package/dist/cjs/api/errorHandler.cjs +3 -1
  31. package/dist/cjs/api/verify.cjs +54 -28
  32. package/dist/cjs/index.cjs +2 -3
  33. package/dist/cjs/tasks/dataset/datasetTasks.cjs +68 -0
  34. package/dist/cjs/tasks/dataset/datasetTasksUtils.cjs +34 -0
  35. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +277 -0
  36. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs +25 -0
  37. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +107 -0
  38. package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +55 -0
  39. package/dist/cjs/tasks/tasks.cjs +21 -512
  40. package/dist/cjs/util.cjs +32 -19
  41. package/dist/index.d.ts +7 -7
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +7 -7
  44. package/dist/index.js.map +1 -1
  45. package/dist/tasks/dataset/datasetTasks.d.ts +15 -0
  46. package/dist/tasks/dataset/datasetTasks.d.ts.map +1 -0
  47. package/dist/tasks/dataset/datasetTasks.js +40 -0
  48. package/dist/tasks/dataset/datasetTasks.js.map +1 -0
  49. package/dist/tasks/dataset/datasetTasksUtils.d.ts +3 -0
  50. package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +1 -0
  51. package/dist/tasks/dataset/datasetTasksUtils.js +34 -0
  52. package/dist/tasks/dataset/datasetTasksUtils.js.map +1 -0
  53. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +28 -0
  54. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -0
  55. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +212 -0
  56. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -0
  57. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +7 -0
  58. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -0
  59. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +18 -0
  60. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -0
  61. package/dist/tasks/index.d.ts +1 -1
  62. package/dist/tasks/index.d.ts.map +1 -1
  63. package/dist/tasks/index.js +1 -1
  64. package/dist/tasks/index.js.map +1 -1
  65. package/dist/tasks/powCaptcha/powTasks.d.ts +13 -0
  66. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -0
  67. package/dist/tasks/powCaptcha/powTasks.js +66 -0
  68. package/dist/tasks/powCaptcha/powTasks.js.map +1 -0
  69. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +5 -0
  70. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +1 -0
  71. package/dist/tasks/powCaptcha/powTasksUtils.js +49 -0
  72. package/dist/tasks/powCaptcha/powTasksUtils.js.map +1 -0
  73. package/dist/tasks/tasks.d.ts +12 -42
  74. package/dist/tasks/tasks.d.ts.map +1 -1
  75. package/dist/tasks/tasks.js +13 -419
  76. package/dist/tasks/tasks.js.map +1 -1
  77. package/dist/tests/index.d.ts +2 -0
  78. package/dist/tests/index.d.ts.map +1 -0
  79. package/dist/tests/index.js +2 -0
  80. package/dist/tests/index.js.map +1 -0
  81. package/dist/tests/integration/imgCaptcha.test.d.ts +2 -0
  82. package/dist/tests/integration/imgCaptcha.test.d.ts.map +1 -0
  83. package/dist/tests/integration/imgCaptcha.test.js +111 -0
  84. package/dist/tests/integration/imgCaptcha.test.js.map +1 -0
  85. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +32 -0
  86. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +1 -0
  87. package/dist/tests/integration/mocks/solvedTestCaptchas.js +1042 -0
  88. package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +1 -0
  89. package/dist/tests/integration/powCaptcha.test.d.ts +2 -0
  90. package/dist/tests/integration/powCaptcha.test.d.ts.map +1 -0
  91. package/dist/tests/integration/powCaptcha.test.js +171 -0
  92. package/dist/tests/integration/powCaptcha.test.js.map +1 -0
  93. package/dist/tests/unit/api/authMiddleware.test.d.ts +2 -0
  94. package/dist/tests/unit/api/authMiddleware.test.d.ts.map +1 -0
  95. package/dist/tests/unit/api/authMiddleware.test.js +87 -0
  96. package/dist/tests/unit/api/authMiddleware.test.js.map +1 -0
  97. package/dist/tests/unit/api/captchaScheduler.test.d.ts +2 -0
  98. package/dist/tests/unit/api/captchaScheduler.test.d.ts.map +1 -0
  99. package/dist/tests/unit/api/captchaScheduler.test.js +47 -0
  100. package/dist/tests/unit/api/captchaScheduler.test.js.map +1 -0
  101. package/dist/tests/unit/api/errorHandler.test.d.ts +2 -0
  102. package/dist/tests/unit/api/errorHandler.test.d.ts.map +1 -0
  103. package/dist/tests/unit/api/errorHandler.test.js +65 -0
  104. package/dist/tests/unit/api/errorHandler.test.js.map +1 -0
  105. package/dist/tests/unit/tasks/dataset/datasetTasks.test.d.ts +2 -0
  106. package/dist/tests/unit/tasks/dataset/datasetTasks.test.d.ts.map +1 -0
  107. package/dist/tests/unit/tasks/dataset/datasetTasks.test.js +88 -0
  108. package/dist/tests/unit/tasks/dataset/datasetTasks.test.js.map +1 -0
  109. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.d.ts +2 -0
  110. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.d.ts.map +1 -0
  111. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.js +75 -0
  112. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.js.map +1 -0
  113. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.d.ts +2 -0
  114. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.d.ts.map +1 -0
  115. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.js +260 -0
  116. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.js.map +1 -0
  117. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.d.ts +2 -0
  118. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.d.ts.map +1 -0
  119. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.js +46 -0
  120. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.js.map +1 -0
  121. package/dist/tests/unit/tasks/powCaptcha/powTasks.test.d.ts +2 -0
  122. package/dist/tests/unit/tasks/powCaptcha/powTasks.test.d.ts.map +1 -0
  123. package/dist/tests/unit/tasks/powCaptcha/powTasks.test.js +133 -0
  124. package/dist/tests/unit/tasks/powCaptcha/powTasks.test.js.map +1 -0
  125. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.d.ts +2 -0
  126. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.d.ts.map +1 -0
  127. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.js +94 -0
  128. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.js.map +1 -0
  129. package/dist/util.d.ts +2 -2
  130. package/dist/util.d.ts.map +1 -1
  131. package/dist/util.js +10 -8
  132. package/dist/util.js.map +1 -1
  133. package/package.json +74 -86
  134. package/vite.cjs.config.ts +3 -3
  135. package/vite.test.config.ts +12 -12
  136. package/dist/batch/commitments.d.ts +0 -24
  137. package/dist/batch/commitments.d.ts.map +0 -1
  138. package/dist/batch/commitments.js +0 -130
  139. package/dist/batch/commitments.js.map +0 -1
  140. package/dist/batch/index.d.ts +0 -2
  141. package/dist/batch/index.d.ts.map +0 -1
  142. package/dist/batch/index.js +0 -2
  143. package/dist/batch/index.js.map +0 -1
  144. package/dist/cjs/batch/commitments.cjs +0 -158
  145. package/dist/cjs/batch/index.cjs +0 -4
  146. package/dist/scheduler.d.ts +0 -4
  147. package/dist/scheduler.d.ts.map +0 -1
  148. package/dist/scheduler.js +0 -21
  149. package/dist/scheduler.js.map +0 -1
  150. package/dist/tests/accounts.d.ts +0 -12
  151. package/dist/tests/accounts.d.ts.map +0 -1
  152. package/dist/tests/accounts.js +0 -35
  153. package/dist/tests/accounts.js.map +0 -1
  154. package/dist/tests/contract/helpers.test.d.ts +0 -6
  155. package/dist/tests/contract/helpers.test.d.ts.map +0 -1
  156. package/dist/tests/contract/helpers.test.js +0 -54
  157. package/dist/tests/contract/helpers.test.js.map +0 -1
  158. package/dist/tests/dataUtils/DatabaseAccounts.d.ts +0 -35
  159. package/dist/tests/dataUtils/DatabaseAccounts.d.ts.map +0 -1
  160. package/dist/tests/dataUtils/DatabaseAccounts.js +0 -84
  161. package/dist/tests/dataUtils/DatabaseAccounts.js.map +0 -1
  162. package/dist/tests/dataUtils/DatabasePopulator.d.ts +0 -73
  163. package/dist/tests/dataUtils/DatabasePopulator.d.ts.map +0 -1
  164. package/dist/tests/dataUtils/DatabasePopulator.js +0 -326
  165. package/dist/tests/dataUtils/DatabasePopulator.js.map +0 -1
  166. package/dist/tests/dataUtils/dapp-example-contract/dapp.json +0 -648
  167. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts +0 -4
  168. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts.map +0 -1
  169. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js +0 -27
  170. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js.map +0 -1
  171. package/dist/tests/dataUtils/funds.d.ts +0 -9
  172. package/dist/tests/dataUtils/funds.d.ts.map +0 -1
  173. package/dist/tests/dataUtils/funds.js +0 -105
  174. package/dist/tests/dataUtils/funds.js.map +0 -1
  175. package/dist/tests/dataUtils/populateDatabase.d.ts +0 -16
  176. package/dist/tests/dataUtils/populateDatabase.d.ts.map +0 -1
  177. package/dist/tests/dataUtils/populateDatabase.js +0 -72
  178. package/dist/tests/dataUtils/populateDatabase.js.map +0 -1
  179. package/dist/tests/getUser.d.ts +0 -4
  180. package/dist/tests/getUser.d.ts.map +0 -1
  181. package/dist/tests/getUser.js +0 -18
  182. package/dist/tests/getUser.js.map +0 -1
  183. package/dist/tests/tasks/tasks.test.d.ts +0 -6
  184. package/dist/tests/tasks/tasks.test.d.ts.map +0 -1
  185. package/dist/tests/tasks/tasks.test.js +0 -635
  186. package/dist/tests/tasks/tasks.test.js.map +0 -1
  187. package/dist/tests/util.test.d.ts +0 -2
  188. package/dist/tests/util.test.d.ts.map +0 -1
  189. package/dist/tests/util.test.js +0 -23
  190. package/dist/tests/util.test.js.map +0 -1
  191. package/typedoc.config.js +0 -19
@@ -0,0 +1,94 @@
1
+ import { signatureVerify } from "@polkadot/util-crypto";
2
+ import { ProsopoContractError } from "@prosopo/common";
3
+ import { verifyRecency } from "@prosopo/contract";
4
+ import { describe, expect, it, vi } from "vitest";
5
+ import { checkPowSignature, checkPowSolution, checkRecentPowSolution, validateSolution, } from "../../../../tasks/powCaptcha/powTasksUtils.js";
6
+ vi.mock("@polkadot/util-crypto", () => ({
7
+ signatureVerify: vi.fn(),
8
+ }));
9
+ vi.mock("@prosopo/contract", () => ({
10
+ verifyRecency: vi.fn(),
11
+ }));
12
+ describe("Validation Functions", () => {
13
+ describe("validateSolution", () => {
14
+ it("should return true for a valid solution", () => {
15
+ const nonce = 377;
16
+ const challenge = "6678154___aZZW9CeVFStJw3si91CXBqaEsGR1sk6h1bBEecJ4EBaSgsx___5C7bfXYwachNuvmasEFtWi9BMS41uBvo6KpYHVSQmad4nWzw";
17
+ const difficulty = 4;
18
+ const validSolution = validateSolution(nonce, challenge, difficulty);
19
+ expect(validSolution).toBe(true);
20
+ });
21
+ it("should return false for an invalid solution", () => {
22
+ const nonce = 0;
23
+ const challenge = "testChallenge";
24
+ const difficulty = 10;
25
+ const validSolution = validateSolution(nonce, challenge, difficulty);
26
+ expect(validSolution).toBe(false);
27
+ });
28
+ });
29
+ describe("checkPowSolution", () => {
30
+ it("should not throw an error for a valid solution", () => {
31
+ const nonce = 377;
32
+ const challenge = "6678154___aZZW9CeVFStJw3si91CXBqaEsGR1sk6h1bBEecJ4EBaSgsx___5C7bfXYwachNuvmasEFtWi9BMS41uBvo6KpYHVSQmad4nWzw";
33
+ const difficulty = 4;
34
+ expect(() => checkPowSolution(nonce, challenge, difficulty)).not.toThrow();
35
+ });
36
+ it("should throw an error for an invalid solution", () => {
37
+ const nonce = 0;
38
+ const challenge = "testChallenge";
39
+ const difficulty = 10;
40
+ expect(() => checkPowSolution(nonce, challenge, difficulty)).toThrow(new ProsopoContractError("API.CAPTCHA_FAILED", {
41
+ context: {
42
+ ERROR: "Captcha solution is invalid",
43
+ failedFuncName: "checkPowSolution",
44
+ nonce,
45
+ challenge,
46
+ difficulty,
47
+ },
48
+ }));
49
+ });
50
+ });
51
+ describe("checkPowSignature", () => {
52
+ it("should not throw an error for a valid signature", () => {
53
+ const challenge = "testChallenge";
54
+ const signature = "testSignature";
55
+ const providerAddress = "testAddress";
56
+ signatureVerify.mockReturnValueOnce({ isValid: true });
57
+ expect(() => checkPowSignature(challenge, signature, providerAddress)).not.toThrow();
58
+ });
59
+ it("should throw an error for an invalid signature", () => {
60
+ const challenge = "testChallenge";
61
+ const signature = "testSignature";
62
+ const providerAddress = "testAddress";
63
+ signatureVerify.mockReturnValueOnce({ isValid: false });
64
+ expect(() => checkPowSignature(challenge, signature, providerAddress)).toThrow(new ProsopoContractError("GENERAL.INVALID_SIGNATURE", {
65
+ context: {
66
+ ERROR: "Provider signature is invalid for this message",
67
+ failedFuncName: "checkPowSignature",
68
+ signature,
69
+ },
70
+ }));
71
+ });
72
+ });
73
+ describe("checkRecentPowSolution", () => {
74
+ it("should not throw an error for a recent solution", () => {
75
+ const challenge = "testChallenge";
76
+ const timeout = 1000;
77
+ verifyRecency.mockReturnValueOnce(true);
78
+ expect(() => checkRecentPowSolution(challenge, timeout)).not.toThrow();
79
+ });
80
+ it("should throw an error for a non-recent solution", () => {
81
+ const challenge = "testChallenge";
82
+ const timeout = 1000;
83
+ verifyRecency.mockReturnValueOnce(false);
84
+ expect(() => checkRecentPowSolution(challenge, timeout)).toThrow(new ProsopoContractError("CONTRACT.INVALID_BLOCKHASH", {
85
+ context: {
86
+ ERROR: `Block in which the Provider was selected must be within the last ${timeout / 1000} seconds`,
87
+ failedFuncName: "checkRecentPowSolution",
88
+ challenge,
89
+ },
90
+ }));
91
+ });
92
+ });
93
+ });
94
+ //# sourceMappingURL=powTasksUtils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powTasksUtils.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/powCaptcha/powTasksUtils.test.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Database } from '@prosopo/types-database';
2
- import { ScheduledTaskNames } from '@prosopo/types';
1
+ import { type ScheduledTaskNames } from "@prosopo/types";
2
+ import type { Database } from "@prosopo/types-database";
3
3
  export declare function encodeStringAddress(address: string): string;
4
4
  export declare function shuffleArray<T>(array: T[]): T[];
5
5
  type PromiseQueueRes<T> = {
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAAE,kBAAkB,EAAuB,MAAM,gBAAgB,CAAA;AAMxE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,UAMlD;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;AAQD,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":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,gBAAgB,CAAC;AAc9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,UAUlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQ/C;AAED,KAAK,eAAe,CAAC,CAAC,IAAI;IACzB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;CACd,EAAE,CAAC;AAOJ,wBAAsB,YAAY,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GACzB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAuB7B;AAED,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,UAEzD;AAQD,wBAAsB,oBAAoB,CACzC,QAAQ,EAAE,kBAAkB,EAC5B,EAAE,EAAE,QAAQ,GACV,OAAO,CAAC,OAAO,CAAC,CAalB"}
package/dist/util.js CHANGED
@@ -1,15 +1,17 @@
1
- import { ProsopoContractError } from '@prosopo/common';
2
- import { ScheduledTaskStatus } from '@prosopo/types';
3
- import { at } from '@prosopo/util';
4
- import { decodeAddress, encodeAddress } from '@polkadot/util-crypto/address';
5
- import { hexToU8a } from '@polkadot/util/hex';
6
- import { isHex } from '@polkadot/util/is';
1
+ import { decodeAddress, encodeAddress } from "@polkadot/util-crypto/address";
2
+ import { hexToU8a } from "@polkadot/util/hex";
3
+ import { isHex } from "@polkadot/util/is";
4
+ import { ProsopoContractError } from "@prosopo/common";
5
+ import { ScheduledTaskStatus } from "@prosopo/types";
6
+ import { at } from "@prosopo/util";
7
7
  export function encodeStringAddress(address) {
8
8
  try {
9
9
  return encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address));
10
10
  }
11
11
  catch (err) {
12
- throw new ProsopoContractError('CONTRACT.INVALID_ADDRESS', { context: { address } });
12
+ throw new ProsopoContractError("CONTRACT.INVALID_ADDRESS", {
13
+ context: { address },
14
+ });
13
15
  }
14
16
  }
15
17
  export function shuffleArray(array) {
@@ -39,7 +41,7 @@ export async function promiseQueue(array) {
39
41
  return ret;
40
42
  }
41
43
  export function parseBlockNumber(blockNumberString) {
42
- return parseInt(blockNumberString.replace(/,/g, ''));
44
+ return Number.parseInt(blockNumberString.replace(/,/g, ""));
43
45
  }
44
46
  export async function checkIfTaskIsRunning(taskName, db) {
45
47
  const runningTask = await db.getLastScheduledTaskStatus(taskName, ScheduledTaskStatus.Running);
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,88 +1,76 @@
1
1
  {
2
- "name": "@prosopo/provider",
3
- "version": "1.0.1",
4
- "author": "PROSOPO LIMITED <info@prosopo.io>",
5
- "license": "Apache-2.0",
6
- "main": "./dist/index.js",
7
- "type": "module",
8
- "engines": {
9
- "node": ">=18",
10
- "npm": ">=9"
11
- },
12
- "exports": {
13
- ".": {
14
- "import": "./dist/index.js",
15
- "require": "./dist/cjs/index.cjs"
16
- }
17
- },
18
- "scripts": {
19
- "clean": "tsc --build --clean",
20
- "build": "tsc --build --verbose tsconfig.json",
21
- "build:cjs": "npx vite --config vite.cjs.config.ts build",
22
- "build:debug": "tsc --build --verbose",
23
- "build:config": "tsc --project",
24
- "test": "npx vitest run --config ./vite.test.config.ts",
25
- "mnemonic": "ts-node ./scripts/generateMnemonic.ts",
26
- "coverage": "npx c8 npm run test",
27
- "eslint": "npx eslint . --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore --quiet",
28
- "eslint:fix": "npm run eslint -- --fix",
29
- "prettier": "npx prettier . --check --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
30
- "prettier:fix": "npm run prettier -- --write",
31
- "lint": "npm run eslint && npm run prettier",
32
- "lint:fix": "npm run eslint:fix && npm run prettier:fix"
33
- },
34
- "dependencies": {
35
- "@noble/hashes": "^1.3.3",
36
- "@polkadot/api": "10.13.1",
37
- "@polkadot/api-contract": "10.13.1",
38
- "@polkadot/keyring": "12.6.2",
39
- "@polkadot/types": "10.13.1",
40
- "@polkadot/types-create": "10.13.1",
41
- "@polkadot/types-codec": "10.13.1",
42
- "@polkadot/util": "12.6.2",
43
- "@polkadot/util-crypto": "12.6.2",
44
- "@prosopo/captcha-contract": "1.0.1",
45
- "@prosopo/common": "1.0.1",
46
- "@prosopo/config": "1.0.1",
47
- "@prosopo/contract": "1.0.1",
48
- "@prosopo/database": "1.0.1",
49
- "@prosopo/datasets": "1.0.1",
50
- "@prosopo/env": "1.0.1",
51
- "@prosopo/tx": "1.0.1",
52
- "@prosopo/typechain-types": "1.1.15",
53
- "@prosopo/types": "1.0.1",
54
- "@prosopo/types-database": "1.0.1",
55
- "@prosopo/types-env": "1.0.1",
56
- "@prosopo/util": "1.0.1",
57
- "cron": "^2.1.0",
58
- "express": "^4.18.1",
59
- "zod": "^3.22.3"
60
- },
61
- "devDependencies": {
62
- "@types/chai-as-promised": "^7.1.5",
63
- "@types/fs-extra": "^9.0.13",
64
- "@types/node": "^18.0.6",
65
- "@types/sinon": "^10.0.15",
66
- "@types/yargs": "^17.0.10",
67
- "c8": "^9.1.0",
68
- "chai": "^4.3.6",
69
- "chai-as-promised": "^7.1.1",
70
- "dotenv": "^16.0.1",
71
- "fs-extra": "^10.1.0",
72
- "sinon": "^15.2.0",
73
- "tslib": "2.6.2",
74
- "typescript": "5.1.6",
75
- "vite": "^5.1.7",
76
- "vitest": "^1.3.1"
77
- },
78
- "repository": {
79
- "type": "git",
80
- "url": "git+ssh://git@github.com/prosopo/provider.git"
81
- },
82
- "description": "The easiest way to deploy the Prosopo contract and run the Provider node is via the [captcha repository](https://github.com/prosopo/captcha/).",
83
- "bugs": {
84
- "url": "https://github.com/prosopo/captcha/issues"
85
- },
86
- "homepage": "https://github.com/prosopo/captcha#readme",
87
- "sideEffects": false
2
+ "name": "@prosopo/provider",
3
+ "version": "2.0.0",
4
+ "author": "PROSOPO LIMITED <info@prosopo.io>",
5
+ "license": "Apache-2.0",
6
+ "main": "./dist/index.js",
7
+ "type": "module",
8
+ "engines": {
9
+ "node": ">=20",
10
+ "npm": ">=9"
11
+ },
12
+ "exports": {
13
+ ".": {
14
+ "import": "./dist/index.js",
15
+ "require": "./dist/cjs/index.cjs"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "clean": "tsc --build --clean",
20
+ "build": "tsc --build --verbose",
21
+ "build:cjs": "npx vite --config vite.cjs.config.ts build",
22
+ "test": "NODE_ENV=${NODE_ENV:-test}; npx vitest run --config ./vite.test.config.ts",
23
+ "mnemonic": "tsx ./scripts/generateMnemonic.ts",
24
+ "coverage": "npx c8 npm run test"
25
+ },
26
+ "dependencies": {
27
+ "@noble/hashes": "^1.3.3",
28
+ "@polkadot/api": "10.13.1",
29
+ "@polkadot/api-contract": "10.13.1",
30
+ "@polkadot/keyring": "12.6.2",
31
+ "@polkadot/types": "10.13.1",
32
+ "@polkadot/types-codec": "10.13.1",
33
+ "@polkadot/types-create": "10.13.1",
34
+ "@polkadot/util": "12.6.2",
35
+ "@polkadot/util-crypto": "12.6.2",
36
+
37
+ "@prosopo/common": "2.0.0",
38
+ "@prosopo/config": "2.0.0",
39
+ "@prosopo/contract": "2.0.0",
40
+ "@prosopo/database": "2.0.0",
41
+ "@prosopo/datasets": "2.0.0",
42
+ "@prosopo/env": "2.0.0",
43
+ "@prosopo/tx": "2.0.0",
44
+ "@prosopo/typechain-types": "1.1.15",
45
+ "@prosopo/types": "2.0.0",
46
+ "@prosopo/types-database": "2.0.0",
47
+ "@prosopo/types-env": "2.0.0",
48
+ "@prosopo/util": "2.0.0",
49
+ "cron": "^2.1.0",
50
+ "express": "^4.18.1",
51
+ "zod": "^3.22.3"
52
+ },
53
+ "devDependencies": {
54
+ "@types/fs-extra": "^9.0.13",
55
+ "@types/node": "^18.0.6",
56
+ "@types/supertest": "^6.0.2",
57
+ "c8": "^9.1.0",
58
+ "dotenv": "^16.0.1",
59
+ "fs-extra": "^10.1.0",
60
+ "supertest": "^7.0.0",
61
+ "tslib": "2.6.2",
62
+ "typescript": "5.1.6",
63
+ "vite": "^5.1.7",
64
+ "vitest": "^1.3.1"
65
+ },
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "git+ssh://git@github.com/prosopo/provider.git"
69
+ },
70
+ "description": "The easiest way to deploy the Prosopo contract and run the Provider node is via the [captcha repository](https://github.com/prosopo/captcha/).",
71
+ "bugs": {
72
+ "url": "https://github.com/prosopo/captcha/issues"
73
+ },
74
+ "homepage": "https://github.com/prosopo/captcha#readme",
75
+ "sideEffects": false
88
76
  }
@@ -1,3 +1,4 @@
1
+ import path from "node:path";
1
2
  // Copyright 2021-2024 Prosopo (UK) Ltd.
2
3
  //
3
4
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -11,9 +12,8 @@
11
12
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
13
  // See the License for the specific language governing permissions and
13
14
  // limitations under the License.
14
- import { ViteCommonJSConfig } from '@prosopo/config'
15
- import path from 'path'
15
+ import { ViteCommonJSConfig } from "@prosopo/config";
16
16
 
17
17
  export default function () {
18
- return ViteCommonJSConfig('provider', path.resolve('./tsconfig.cjs.json'))
18
+ return ViteCommonJSConfig("provider", path.resolve("./tsconfig.cjs.json"));
19
19
  }
@@ -1,3 +1,5 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
1
3
  // Copyright 2021-2024 Prosopo (UK) Ltd.
2
4
  //
3
5
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -11,22 +13,20 @@
11
13
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
14
  // See the License for the specific language governing permissions and
13
15
  // limitations under the License.
14
- import { ViteTestConfig } from '@prosopo/config'
15
- import dotenv from 'dotenv'
16
- import fs from 'fs'
17
- import path from 'path'
18
- process.env.NODE_ENV = 'test'
16
+ import { ViteTestConfig } from "@prosopo/config";
17
+ import dotenv from "dotenv";
18
+ process.env.NODE_ENV = "test";
19
19
  // if .env.test exists at this level, use it, otherwise use the one at the root
20
- const envFile = `.env.${process.env.NODE_ENV || 'development'}`
21
- let envPath = envFile
20
+ const envFile = `.env.${process.env.NODE_ENV || "development"}`;
21
+ let envPath = envFile;
22
22
  if (fs.existsSync(envFile)) {
23
- envPath = path.resolve(envFile)
23
+ envPath = path.resolve(envFile);
24
24
  } else if (fs.existsSync(`../../${envFile}`)) {
25
- envPath = path.resolve(`../../${envFile}`)
25
+ envPath = path.resolve(`../../${envFile}`);
26
26
  } else {
27
- throw new Error(`No ${envFile} file found`)
27
+ throw new Error(`No ${envFile} file found`);
28
28
  }
29
29
 
30
- dotenv.config({ path: envPath })
30
+ dotenv.config({ path: envPath });
31
31
 
32
- export default ViteTestConfig
32
+ export default ViteTestConfig;
@@ -1,24 +0,0 @@
1
- /// <reference types="bn.js" />
2
- import { BN } from '@polkadot/util/bn';
3
- import { BatchCommitConfigOutput, ExtrinsicBatch } from '@prosopo/types';
4
- import { Commit, Hash } from '@prosopo/captcha-contract/types-returns';
5
- import { Database, UserCommitmentRecord } from '@prosopo/types-database';
6
- import { Logger } from '@prosopo/common';
7
- import { ProsopoCaptchaContract } from '@prosopo/contract';
8
- import { WeightV2 } from '@polkadot/types/interfaces';
9
- export declare class BatchCommitmentsTask {
10
- contract: ProsopoCaptchaContract;
11
- db: Database;
12
- batchCommitConfig: BatchCommitConfigOutput;
13
- logger: Logger;
14
- private nonce;
15
- constructor(batchCommitConfig: BatchCommitConfigOutput, contractApi: ProsopoCaptchaContract, db: Database, startNonce: bigint, logger: Logger);
16
- run(): Promise<any>;
17
- createExtrinsics(commitments: UserCommitmentRecord[]): Promise<ExtrinsicBatch>;
18
- extrinsicTooHigh(totalRefTime: BN, totalProofSize: BN, maxBlockWeight: WeightV2): boolean;
19
- batchIntervalExceeded(): Promise<boolean>;
20
- getCommitments(): Promise<UserCommitmentRecord[]>;
21
- flagBatchedCommitments(commitmentIds: Hash[]): Promise<void>;
22
- convertCommit(commitment: UserCommitmentRecord): Commit;
23
- }
24
- //# sourceMappingURL=commitments.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commitments.d.ts","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,EAAE,EAAW,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAA2C,MAAM,gBAAgB,CAAA;AACjH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAwB,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAA2B,MAAM,mBAAmB,CAAA;AAEnF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAQrD,qBAAa,oBAAoB;IAC7B,QAAQ,EAAE,sBAAsB,CAAA;IAChC,EAAE,EAAE,QAAQ,CAAA;IACZ,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,KAAK,CAAQ;gBAEjB,iBAAiB,EAAE,uBAAuB,EAC1C,WAAW,EAAE,sBAAsB,EACnC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM;IAQZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAyDnB,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAkFpF,gBAAgB,CAAC,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,GAAG,OAAO;IAOnF,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAMzC,cAAc,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAKjD,sBAAsB,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM;CAW1D"}
@@ -1,130 +0,0 @@
1
- import { BN, BN_ZERO } from '@polkadot/util/bn';
2
- import { ScheduledTaskNames, ScheduledTaskStatus } from '@prosopo/types';
3
- import { ProsopoContractError } from '@prosopo/common';
4
- import { batch, encodeStringArgs } from '@prosopo/contract';
5
- import { checkIfTaskIsRunning } from '../util.js';
6
- import { oneUnit } from '@prosopo/tx';
7
- import { randomAsHex } from '@polkadot/util-crypto/random';
8
- const BN_TEN_THOUSAND = new BN(10000);
9
- const CONTRACT_METHOD_NAME = 'providerCommitMany';
10
- export class BatchCommitmentsTask {
11
- constructor(batchCommitConfig, contractApi, db, startNonce, logger) {
12
- this.contract = contractApi;
13
- this.db = db;
14
- this.batchCommitConfig = batchCommitConfig;
15
- this.logger = logger;
16
- this.nonce = startNonce;
17
- }
18
- async run() {
19
- const taskId = randomAsHex(32);
20
- const taskRunning = await checkIfTaskIsRunning(ScheduledTaskNames.BatchCommitment, this.db);
21
- if (!taskRunning) {
22
- const intervalExceeded = await this.batchIntervalExceeded();
23
- if (intervalExceeded) {
24
- try {
25
- await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Running);
26
- const commitments = await this.getCommitments();
27
- if (commitments.length > 0) {
28
- this.logger.info(`Found ${commitments.length} commitments to commit`);
29
- const { extrinsics, ids: commitmentIds } = await this.createExtrinsics(commitments);
30
- await batch(this.contract.contract, this.contract.pair, extrinsics, this.logger);
31
- await this.flagBatchedCommitments(commitmentIds);
32
- await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Completed, {
33
- data: {
34
- commitmentIds: commitments
35
- .filter((commitment) => commitmentIds.indexOf(commitment.id) > -1)
36
- .map((c) => c.id),
37
- },
38
- });
39
- }
40
- return commitments;
41
- }
42
- catch (e) {
43
- const err = e;
44
- this.logger.error(e);
45
- await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Failed, {
46
- error: JSON.stringify(e && err.message ? err.message : e),
47
- });
48
- return err.message;
49
- }
50
- }
51
- }
52
- }
53
- async createExtrinsics(commitments) {
54
- const txs = [];
55
- const fragment = this.contract.abi.findMessage(CONTRACT_METHOD_NAME);
56
- const batchedCommitmentIds = [];
57
- let totalRefTime = BN_ZERO;
58
- let totalProofSize = BN_ZERO;
59
- let totalFee = BN_ZERO;
60
- const maxBlockWeight = this.contract.api.consts.system.blockWeights.maxBlock;
61
- const commitmentArray = [];
62
- let extrinsic;
63
- for (const commitment of commitments) {
64
- const commit = this.convertCommit(commitment);
65
- commitmentArray.push(commit);
66
- const encodedArgs = encodeStringArgs(this.contract.abi, fragment, [commitmentArray]);
67
- const buildExtrinsicResult = await this.contract.getExtrinsicAndGasEstimates('providerCommitMany', encodedArgs);
68
- extrinsic = buildExtrinsicResult.extrinsic;
69
- const { options, storageDeposit } = buildExtrinsicResult;
70
- let paymentInfo;
71
- try {
72
- paymentInfo = (await extrinsic.paymentInfo(this.contract.pair)).partialFee.toBn();
73
- this.logger.debug(`${CONTRACT_METHOD_NAME} paymentInfo:`, paymentInfo.toNumber());
74
- }
75
- catch (e) {
76
- paymentInfo = BN_ZERO;
77
- }
78
- totalRefTime = totalRefTime.add(this.contract.api.registry.createType('WeightV2', options.gasLimit).refTime.toBn());
79
- totalProofSize = totalProofSize.add(this.contract.api.registry.createType('WeightV2', options.gasLimit).proofSize.toBn());
80
- totalFee = totalFee.add(paymentInfo.add(storageDeposit.asCharge.toBn()));
81
- const extrinsicTooHigh = this.extrinsicTooHigh(totalRefTime, totalProofSize, maxBlockWeight);
82
- this.logger.debug('Free balance', '`', (await this.contract.api.query.system.account(this.contract.pair.address)).data.free
83
- .toBn()
84
- .div(oneUnit(this.contract.api))
85
- .toString(), '`', 'UNIT');
86
- this.logger.debug('Total Fee `', totalFee.div(oneUnit(this.contract.api)).toString(), '`', 'UNIT');
87
- const feeTooHigh = totalFee.gt((await this.contract.api.query.system.account(this.contract.pair.address)).data.free.toBn());
88
- if (extrinsicTooHigh || feeTooHigh) {
89
- const msg = extrinsicTooHigh ? 'Max batch extrinsic percentage reached' : 'Fee too high';
90
- this.logger.warn(msg);
91
- break;
92
- }
93
- else {
94
- batchedCommitmentIds.push(commitment.id);
95
- }
96
- }
97
- if (!extrinsic) {
98
- throw new ProsopoContractError('CONTRACT.TX_ERROR', { context: { error: 'No extrinsics created' } });
99
- }
100
- txs.push(extrinsic);
101
- this.logger.info(`${txs.length} transactions will be batched`);
102
- this.logger.debug('totalRefTime:', totalRefTime.toString());
103
- this.logger.debug('totalProofSize:', totalProofSize.toString());
104
- return { extrinsics: txs, ids: batchedCommitmentIds, totalFee, totalRefTime, totalProofSize };
105
- }
106
- extrinsicTooHigh(totalRefTime, totalProofSize, maxBlockWeight) {
107
- return (totalRefTime.mul(BN_TEN_THOUSAND).div(maxBlockWeight.refTime.toBn()).toNumber() / 100 >
108
- this.batchCommitConfig.maxBatchExtrinsicPercentage);
109
- }
110
- async batchIntervalExceeded() {
111
- const lastTime = await this.db.getLastBatchCommitTime();
112
- return Date.now() - lastTime.getSeconds() > this.batchCommitConfig.interval;
113
- }
114
- async getCommitments() {
115
- return await this.db.getUnbatchedDappUserCommitments();
116
- }
117
- async flagBatchedCommitments(commitmentIds) {
118
- await this.db.flagBatchedDappUserCommitments(commitmentIds);
119
- }
120
- convertCommit(commitment) {
121
- const { batched, processed, userSignature, requestedAt, completedAt, ...commit } = commitment;
122
- return {
123
- ...commit,
124
- userSignature,
125
- requestedAt: new BN(requestedAt).toNumber(),
126
- completedAt: new BN(completedAt).toNumber(),
127
- };
128
- }
129
- }
130
- //# sourceMappingURL=commitments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './commitments.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './commitments.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA"}