@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
package/README.md CHANGED
@@ -1,259 +1 @@
1
1
  # Prosopo Provider
2
-
3
- > NOTE: For a development environment, the easiest way to deploy the Prosopo contract and run the Provider node is via the [integration repository](https://github.com/prosopo/integration/). The following instructions explain how to set up the repositories manually.
4
-
5
- ## Prerequisites
6
-
7
- - nodejs
8
- - npm
9
- - A connection to a substrate node
10
- - A deployed Prosopo Protocol contract
11
-
12
- ### Development Environment
13
-
14
- #### Setup a contract node
15
-
16
- If you are setting up a development environment, run a development node. For example, the [Substrate Contracts Node](https://github.com/paritytech/substrate-contracts-node/#installation)
17
-
18
- #### Deploy the Prosopo Protocol contract
19
-
20
- See [protocol instructions](https://github.com/prosopo/protocol/#prosopo-protocol)
21
-
22
- #### Live environment
23
-
24
- If you are running in a test or live environment, use a node endpoint of your choice. Make sure you know the contract account of the Prosopo Protocol contract.
25
-
26
- ## Running a Prosopo Provider Node
27
-
28
- The following instructions apply to the `provider` repo.
29
-
30
- ### Install packages
31
-
32
- ```bash
33
- npm install
34
- ```
35
-
36
- ### Populate the Prosopo Provider Config
37
-
38
- Place the required variables in the `prosopo.config.ts` file in the root of the `provider` repo.
39
-
40
- | Param | Description |
41
- | ---------------------------------------- | ------------------------------------------------------------------------------ |
42
- | PROTOCOL_CONTRACT_JSON_ABI_PATH | The path to the protocol JSON file |
43
- | SUBSTATE_NODE_ENDPOINT | The substrate node endpoint, e.g. ws://localhost:9944 |
44
- | PROTOCOL_CONTRACT_ADDRESS | The protocol contract address |
45
- | CAPTCHA_SOLVED_COUNT | The number of solved captchas to send to the captcha frontend client |
46
- | CAPTCHA_UNSOLVED_COUNT | The number of unsolved captchas to send to the captcha frontend client |
47
- | CAPTCHA_SOLUTION_REQUIRED_SOLUTION_COUNT | The number of captchas required to calculate a solution to an unsolved captcha |
48
- | CAPTCHA_SOLUTION_WINNING_PERCENTAGE | The threshold percentage that determines whether a solution is found |
49
- | CAPTCHA_FILE_PATH | The path to the captcha dataset |
50
- | MONGO_USERNAME | MongoDB username |
51
- | MONGO_PASSWORD | MongoDB password |
52
- | MONGO_HOST | MongoDB host |
53
- | MONGO_PORT | MongoDB port |
54
- | DATABASE_NAME | Database name |
55
- | API_BASE_URL | Base URL for API, e.g. http://localhost:9229 |
56
-
57
- #### Config
58
-
59
- ```typescript
60
- const config = {
61
- contract: {
62
- abi: '<PROTOCOL_CONTRACT_JSON_ABI_PATH>',
63
- },
64
- networks: {
65
- development: {
66
- endpoint: '<SUBSTATE_NODE_ENDPOINT>', // e.g. ws://127.0.0.1:9944
67
- contract: {
68
- address: '<PROTOCOL_CONTRACT_ADDRESS>',
69
- name: 'prosopo',
70
- },
71
- },
72
- },
73
- captchas: {
74
- solved: {
75
- count: '<CAPTCHA_SOLVED_COUNT>',
76
- },
77
- unsolved: {
78
- count: '<CAPTCHA_UNSOLVED_COUNT>',
79
- },
80
- },
81
- captchaSolutions: {
82
- requiredNumberOfSolutions: '<CAPTCHA_SOLUTION_REQUIRED_SOLUTION_COUNT>',
83
- solutionWinningPercentage: '<CAPTCHA_SOLUTION_WINNING_PERCENTAGE>',
84
- captchaFilePath: '<CAPTCHA_FILE_PATH>',
85
- },
86
- database: {
87
- development: {
88
- storageType: 'mongo',
89
- endpoint: `mongodb://<MONGO_USERNAME>:<MONGO_PASSWORD>@<MONGO_HOST>:<MONGO_PORT>`,
90
- dbname: '<DATABASE_NAME>',
91
- },
92
- },
93
- assets: {
94
- absolutePath: '',
95
- basePath: '',
96
- },
97
- server: {
98
- baseURL: '<API_BASE_URL>',
99
- },
100
- }
101
- ```
102
-
103
- ## Run the Provider server
104
-
105
- ### Set a provider mnemonic in prosopo.config.js
106
-
107
- > Please note your `PROVIDER_MNEMONIC` environment variable must be set. You can check this with `echo $PROVIDER_MNEMONIC`
108
-
109
- In a **development environment**, it's easiest to use a development mnemonic as they already have funds. So choose one of //Alice, //Bob, //Ferdie, etc.
110
-
111
- ```bash
112
- export PROVIDER_MNEMONIC=//Ferdie
113
- ```
114
-
115
- You can now register as a Provider in the protocol contract either via the command line.
116
-
117
- ### Register using the Command Line
118
-
119
- Try registering a provider on the command line.
120
-
121
- ```bash
122
- npm run cli provider_register -- \
123
- --fee 10 \
124
- --origin https://localhost:9229 \
125
- --payee Provider \
126
- --address YOUR_PROVIDER_ADDRESS
127
- ```
128
-
129
- Send a stake (`value`) and/or update one of the values previously set when registering (`fee`, `origin`. `payee`).
130
-
131
- ```bash
132
- npm run cli provider_update -- \
133
- --fee 10 \
134
- --origin https://localhost:9229 \
135
- --payee Provider \
136
- --address YOUR_PROVIDER_ADDRESS \
137
- --value 10
138
- ```
139
-
140
- Verify that your provider was registered by calling the `/v1/prosopo/providers/` endpoint or by checking in Polkadot Apps local node.
141
-
142
- ### Curl
143
-
144
- ```
145
- curl --location --request GET '127.0.0.1:3000/v1/prosopo/providers/'
146
- {"accounts":["YOUR PROVIDER ADDRESS"]}
147
- ```
148
-
149
- ### Polkadot Apps
150
-
151
- Using [Polkadot apps](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/contracts)
152
-
153
- 1. Click Add an existing contract
154
- 2. Enter the contract address and click to select the `prosopo.json` file in the artifacts folder as the `contract ABI`
155
- 3. Expand the contract to see the current value of `getProviders`. It should be `["YOUR PROVIDER ADDRESS"]`.
156
-
157
- ## Command Line Interface
158
-
159
- > Please note your `PROVIDER_MNEMONIC` environment variable must be set. You can check this with `echo $PROVIDER_MNEMONIC`
160
-
161
- ### Register a provider
162
-
163
- ```bash
164
- npm run cli -- provider_register --fee=10 --origin=https://localhost:9229 --payee=Provider --address ADDRESS
165
- ```
166
-
167
- | Param | Description |
168
- | ------- | -------------------------------------------------------------------------- |
169
- | fee | The amount the Provider charges or pays per captcha approval / disapproval |
170
- | origin | The location of the Provider's service |
171
- | payee | Who is paid on successful captcha completion (`Provider` or `Dapp`) |
172
- | address | Address of the Provider |
173
-
174
- ### Update a provider and optionally stake
175
-
176
- ```bash
177
- npm run cli -- provider_update --fee=10 --origin=https://localhost:9229 --payee=Provider --address ADDRESS --value STAKE_VALUE
178
- ```
179
-
180
- Params are the same as `provider_register` with the addition of `value`
181
-
182
- | Param | Description |
183
- | ----- | -------------------------------------------- |
184
- | value | The amount of funds to stake in the contract |
185
-
186
- ### Add a dataset for a Provider
187
-
188
- ```bash
189
- npm run cli -- provider_add_data_set --file /usr/src/data/captchas.json
190
- ```
191
-
192
- | Param | Description |
193
- | ----- | ----------------------------- |
194
- | file | JSON file containing captchas |
195
-
196
- File format can be viewed [here](https://github.com/prosopo/provider/blob/master/tests/mocks/data/captchas.json).
197
-
198
- ### De-register a Provider
199
-
200
- ```bash
201
- npm run cli -- provider_deregister --address ADDRESS
202
- ```
203
-
204
- | Param | Description |
205
- | ------- | ----------------------- |
206
- | address | Address of the Provider |
207
-
208
- ### Unstake funds
209
-
210
- ```bash
211
- npm run cli -- provider_unstake --value VALUE
212
- ```
213
-
214
- | Param | Description |
215
- | ----- | ------------------------------------------------ |
216
- | value | The amount of funds to unstake from the contract |
217
-
218
- ### List Provider accounts in contract
219
-
220
- ```bash
221
- npm run cli -- provider_accounts
222
- ```
223
-
224
- ### Other commands
225
-
226
- A full list of CLI commands can be viewed by running
227
-
228
- ```bash
229
- npm run cli -- --help
230
- ```
231
-
232
- ## API
233
-
234
- Run the Provider API server and image server
235
-
236
- ```bash
237
- npm run start
238
- ```
239
-
240
- The API contains methods required by the frontend captcha interface.
241
-
242
- | API Resource | Function | Type | Parameters |
243
- | ---------------------------------------------------------------------------------------- | ------------------------------------------ | ---- | ------------------------------------------------------------------ |
244
- | `/v1/prosopo/random_provider/:userAccount/:dappContractAccount` | Get a random provider based on AccountId | GET | userAccount, dappContractAccount |
245
- | `/v1/prosopo/providers/` | Get list of all provider IDs | GET | |
246
- | `/v1/prosopo/dapps/` | Get list of all dapp IDs | GET | |
247
- | `/v1/prosopo/provider/:providerAccount` | Get details of a specific Provider account | GET | providerAccount |
248
- | `/v1/prosopo/provider/captcha/:datasetId/:userAccount/:dappContractAccount/:blockNumber` | Get captchas to solve | GET | datasetId, userAccount, dappContractAccount, blockNumber |
249
- | `/v1/prosopo/provider/solution` | Submit captcha solutions | POST | userAccount, dappAccount, requestHash, captchas, blockHash, txHash |
250
-
251
- ## Tests
252
-
253
- You can run the Provider integration tests using the command `npm run test`. This will start a substrate container containing a predeployed [prosopo protocol contract](https://github.com/prosopo/protocol/#prosopo-protocol) and [dapp-example contract](https://github.com/prosopo/dapp-example#dapp-example). An in-memory mongo database will be used.
254
-
255
- To run the tests with coverage stats use:
256
-
257
- ```bash
258
- npx c8 npm run test
259
- ```
@@ -1,4 +1,4 @@
1
- import { ProviderEnvironment } from '@prosopo/types-env';
2
- import { Router } from 'express';
1
+ import type { ProviderEnvironment } from "@prosopo/types-env";
2
+ import { Router } from "express";
3
3
  export declare function prosopoAdminRouter(env: ProviderEnvironment): Router;
4
4
  //# sourceMappingURL=admin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/api/admin.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAUhC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CA4FnE"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/api/admin.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAUjC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAoBnE"}
package/dist/api/admin.js CHANGED
@@ -1,11 +1,7 @@
1
- import * as z from 'zod';
2
- import { AdminApiPaths } from '@prosopo/types';
3
- import { BatchCommitmentsTask, Tasks } from '../index.js';
4
- import { Payee } from '@prosopo/captcha-contract/types-returns';
5
- import { ProsopoEnvError, UrlConverter } from '@prosopo/common';
6
- import { Router } from 'express';
7
- import { authMiddleware } from './authMiddleware.js';
8
- import { wrapQuery } from '@prosopo/contract';
1
+ import { AdminApiPaths } from "@prosopo/types";
2
+ import { Router } from "express";
3
+ import { Tasks } from "../index.js";
4
+ import { authMiddleware } from "./authMiddleware.js";
9
5
  const apiBatchCommitConfig = {
10
6
  interval: 0,
11
7
  maxBatchExtrinsicPercentage: 59,
@@ -14,27 +10,9 @@ export function prosopoAdminRouter(env) {
14
10
  const router = Router();
15
11
  const tasks = new Tasks(env);
16
12
  router.use(authMiddleware(tasks, env));
17
- router.post(AdminApiPaths.BatchCommit, async (req, res, next) => {
18
- if (env.db) {
19
- try {
20
- const batchCommitter = new BatchCommitmentsTask(apiBatchCommitConfig, env.getContractInterface(), env.db, 0n, env.logger);
21
- const result = await batchCommitter.run();
22
- console.info(`Batch commit complete: ${result}`);
23
- res.status(200).send(result);
24
- }
25
- catch (err) {
26
- console.error(err);
27
- res.status(500).send(err);
28
- }
29
- }
30
- else {
31
- console.error('No database configured');
32
- res.status(500).send('No database configured');
33
- }
34
- });
35
13
  router.post(AdminApiPaths.UpdateDataset, async (req, res, next) => {
36
14
  try {
37
- const result = await tasks.providerSetDataset(req.body);
15
+ const result = await tasks.datasetManager.providerSetDataset(req.body);
38
16
  console.info(`Dataset update complete: ${result}`);
39
17
  res.status(200).send(result);
40
18
  }
@@ -43,43 +21,6 @@ export function prosopoAdminRouter(env) {
43
21
  res.status(500).send(err);
44
22
  }
45
23
  });
46
- router.post(AdminApiPaths.ProviderDeregister, async (req, res, next) => {
47
- try {
48
- const address = env.pair?.address;
49
- if (!address) {
50
- throw new ProsopoEnvError('DEVELOPER.MISSING_ENV_VARIABLE', { context: { error: 'No address' } });
51
- }
52
- await tasks.contract.tx.providerDeregister();
53
- }
54
- catch (err) {
55
- console.error(err);
56
- res.status(500).send(err);
57
- }
58
- });
59
- router.post(AdminApiPaths.ProviderUpdate, async (req, res, next) => {
60
- try {
61
- const { url, fee, payee, value, address } = z
62
- .object({
63
- url: z.string(),
64
- fee: z.number().optional(),
65
- payee: z.nativeEnum(Payee).optional(),
66
- value: z.number().optional(),
67
- address: z.string(),
68
- })
69
- .parse(req.body);
70
- const provider = (await tasks.contract.query.getProvider(address, {})).value.unwrap().unwrap();
71
- if (provider && (url || fee || payee || value)) {
72
- const urlConverted = url ? Array.from(new UrlConverter().encode(url.toString())) : provider.url;
73
- await wrapQuery(tasks.contract.query.providerUpdate, tasks.contract.query)(urlConverted, fee || provider.fee, payee || provider.payee, { value: value || 0 });
74
- const result = await tasks.contract.tx.providerUpdate(urlConverted, fee || provider.fee, payee || provider.payee, { value: value || 0 });
75
- console.info(JSON.stringify(result, null, 2));
76
- }
77
- }
78
- catch (err) {
79
- console.error(err);
80
- res.status(500).send(err);
81
- }
82
- });
83
24
  return router;
84
25
  }
85
26
  //# sourceMappingURL=admin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/api/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/api/admin.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,MAAM,oBAAoB,GAAG;IAC5B,QAAQ,EAAE,CAAC;IACX,2BAA2B,EAAE,EAAE;CAC/B,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,GAAwB;IAC1D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAG7B,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjE,IAAI;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEvE,OAAO,CAAC,IAAI,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;YACnD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1B;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,7 +1,7 @@
1
- import { KeyringPair } from '@polkadot/keyring/types';
2
- import { NextFunction, Request, Response } from 'express';
3
- import { ProviderEnvironment } from '@prosopo/types-env';
4
- import { Tasks } from '../index.js';
1
+ import type { KeyringPair } from "@polkadot/keyring/types";
2
+ import type { ProviderEnvironment } from "@prosopo/types-env";
3
+ import type { NextFunction, Request, Response } from "express";
4
+ import type { Tasks } from "../index.js";
5
5
  export declare const authMiddleware: (tasks: Tasks, env: ProviderEnvironment) => (req: Request, res: Response, next: NextFunction) => Promise<void>;
6
6
  export declare const verifySignature: (signature: string, blockNumber: string, pair: KeyringPair) => void;
7
7
  //# sourceMappingURL=authMiddleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authMiddleware.d.ts","sourceRoot":"","sources":["../../src/api/authMiddleware.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAInC,eAAO,MAAM,cAAc,UAAW,KAAK,OAAO,mBAAmB,WAC9C,OAAO,OAAO,QAAQ,QAAQ,YAAY,kBAkBhE,CAAA;AA6CD,eAAO,MAAM,eAAe,cAAe,MAAM,eAAe,MAAM,QAAQ,WAAW,SAQxF,CAAA"}
1
+ {"version":3,"file":"authMiddleware.d.ts","sourceRoot":"","sources":["../../src/api/authMiddleware.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,cAAc,UAAW,KAAK,OAAO,mBAAmB,WACjD,OAAO,OAAO,QAAQ,QAAQ,YAAY,kBAiB7D,CAAC;AA+BF,eAAO,MAAM,eAAe,cAChB,MAAM,eACJ,MAAM,QACb,WAAW,SASjB,CAAC"}
@@ -1,21 +1,19 @@
1
- import { ProsopoApiError, ProsopoEnvError } from '@prosopo/common';
2
- import { getCurrentBlockNumber } from '@prosopo/contract';
3
- import { hexToU8a, isHex } from '@polkadot/util';
1
+ import { hexToU8a, isHex } from "@polkadot/util";
2
+ import { ProsopoApiError, ProsopoEnvError } from "@prosopo/common";
4
3
  export const authMiddleware = (tasks, env) => {
5
4
  return async (req, res, next) => {
6
5
  try {
7
6
  const { signature, blocknumber } = extractHeaders(req);
8
7
  if (!env.pair) {
9
- throw new ProsopoEnvError('CONTRACT.CANNOT_FIND_KEYPAIR');
8
+ throw new ProsopoEnvError("CONTRACT.CANNOT_FIND_KEYPAIR");
10
9
  }
11
10
  verifyEnvironmentKeyPair(env);
12
- await verifyBlockNumber(blocknumber, tasks);
13
11
  verifySignature(signature, blocknumber, env.pair);
14
12
  next();
15
13
  }
16
14
  catch (err) {
17
- console.error('Auth Middleware Error:', err);
18
- res.status(401).json({ error: 'Unauthorized', message: err });
15
+ console.error("Auth Middleware Error:", err);
16
+ res.status(401).json({ error: "Unauthorized", message: err });
19
17
  }
20
18
  };
21
19
  };
@@ -23,41 +21,29 @@ const extractHeaders = (req) => {
23
21
  const signature = req.headers.signature;
24
22
  const blocknumber = req.headers.blocknumber;
25
23
  if (!signature || !blocknumber) {
26
- throw new ProsopoApiError('CONTRACT.INVALID_DATA_FORMAT', {
27
- context: { error: 'Missing signature or block number', code: 400 },
24
+ throw new ProsopoApiError("CONTRACT.INVALID_DATA_FORMAT", {
25
+ context: { error: "Missing signature or block number", code: 400 },
28
26
  });
29
27
  }
30
- if (Array.isArray(signature) || Array.isArray(blocknumber) || !isHex(signature)) {
31
- throw new ProsopoApiError('CONTRACT.INVALID_DATA_FORMAT', {
32
- context: { error: 'Invalid header format', code: 400 },
28
+ if (Array.isArray(signature) ||
29
+ Array.isArray(blocknumber) ||
30
+ !isHex(signature)) {
31
+ throw new ProsopoApiError("CONTRACT.INVALID_DATA_FORMAT", {
32
+ context: { error: "Invalid header format", code: 400 },
33
33
  });
34
34
  }
35
35
  return { signature, blocknumber };
36
36
  };
37
37
  const verifyEnvironmentKeyPair = (env) => {
38
38
  if (!env.pair) {
39
- throw new ProsopoEnvError('CONTRACT.CANNOT_FIND_KEYPAIR');
40
- }
41
- };
42
- const verifyBlockNumber = async (blockNumber, tasks) => {
43
- const parsedBlockNumber = parseInt(blockNumber);
44
- const currentBlockNumber = await getCurrentBlockNumber(tasks.contract.api);
45
- if (isNaN(parsedBlockNumber) ||
46
- parsedBlockNumber < currentBlockNumber - 500 ||
47
- parsedBlockNumber > currentBlockNumber) {
48
- throw new ProsopoApiError('API.BAD_REQUEST', {
49
- context: {
50
- error: `Invalid block number ${parsedBlockNumber}, current block number is ${currentBlockNumber}`,
51
- code: 400,
52
- },
53
- });
39
+ throw new ProsopoEnvError("CONTRACT.CANNOT_FIND_KEYPAIR");
54
40
  }
55
41
  };
56
42
  export const verifySignature = (signature, blockNumber, pair) => {
57
43
  const u8Sig = hexToU8a(signature);
58
44
  if (!pair.verify(blockNumber, u8Sig, pair.publicKey)) {
59
- throw new ProsopoApiError('GENERAL.INVALID_SIGNATURE', {
60
- context: { error: 'Signature verification failed', code: 401 },
45
+ throw new ProsopoApiError("GENERAL.INVALID_SIGNATURE", {
46
+ context: { error: "Signature verification failed", code: 401 },
61
47
  });
62
48
  }
63
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"authMiddleware.js","sourceRoot":"","sources":["../../src/api/authMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authMiddleware.js","sourceRoot":"","sources":["../../src/api/authMiddleware.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKnE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,GAAwB,EAAE,EAAE;IACxE,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAChE,IAAI;YACH,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAEvD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;gBACd,MAAM,IAAI,eAAe,CAAC,8BAA8B,CAAC,CAAC;aAC1D;YAED,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAC9B,eAAe,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAElD,IAAI,EAAE,CAAC;SACP;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC7C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;SAC9D;IACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,EAAE;IACvC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,SAAmB,CAAC;IAClD,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,WAAqB,CAAC;IAEtD,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE;QAC/B,MAAM,IAAI,eAAe,CAAC,8BAA8B,EAAE;YACzD,OAAO,EAAE,EAAE,KAAK,EAAE,mCAAmC,EAAE,IAAI,EAAE,GAAG,EAAE;SAClE,CAAC,CAAC;KACH;IAED,IACC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAC1B,CAAC,KAAK,CAAC,SAAS,CAAC,EAChB;QACD,MAAM,IAAI,eAAe,CAAC,8BAA8B,EAAE;YACzD,OAAO,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,EAAE;SACtD,CAAC,CAAC;KACH;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,GAAwB,EAAE,EAAE;IAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QACd,MAAM,IAAI,eAAe,CAAC,8BAA8B,CAAC,CAAC;KAC1D;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,SAAiB,EACjB,WAAmB,EACnB,IAAiB,EAChB,EAAE;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAElC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;QACrD,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE;YACtD,OAAO,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,GAAG,EAAE;SAC9D,CAAC,CAAC;KACH;AACF,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ProviderEnvironment } from '@prosopo/types-env';
2
- import { Router } from 'express';
1
+ import type { ProviderEnvironment } from "@prosopo/types-env";
2
+ import { type Router } from "express";
3
3
  export declare function prosopoRouter(env: ProviderEnvironment): Router;
4
4
  //# sourceMappingURL=captcha.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAOxD,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAQzC,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CA0L9D"}
1
+ {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAgB,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAU/C,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CA+N9D"}