@prosopo/procaptcha 1.0.2 → 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 (42) hide show
  1. package/dist/cjs/account/dist/extension/ExtensionWeb2.cjs +21 -28
  2. package/dist/cjs/account/dist/extension/ExtensionWeb3.cjs +5 -3
  3. package/dist/cjs/detector/src/index.cjs +4586 -0
  4. package/dist/cjs/modules/Manager.cjs +83 -168
  5. package/dist/cjs/modules/ProsopoCaptchaApi.cjs +34 -49
  6. package/dist/cjs/modules/collector.cjs +32 -8
  7. package/dist/cjs/modules/storage.cjs +8 -3
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/index.js.map +1 -1
  12. package/dist/modules/Manager.d.ts +1 -2
  13. package/dist/modules/Manager.d.ts.map +1 -1
  14. package/dist/modules/Manager.js +92 -168
  15. package/dist/modules/Manager.js.map +1 -1
  16. package/dist/modules/ProsopoCaptchaApi.d.ts +7 -10
  17. package/dist/modules/ProsopoCaptchaApi.d.ts.map +1 -1
  18. package/dist/modules/ProsopoCaptchaApi.js +28 -48
  19. package/dist/modules/ProsopoCaptchaApi.js.map +1 -1
  20. package/dist/modules/collector.d.ts +1 -1
  21. package/dist/modules/collector.d.ts.map +1 -1
  22. package/dist/modules/collector.js +8 -8
  23. package/dist/modules/collector.js.map +1 -1
  24. package/dist/modules/index.d.ts +3 -3
  25. package/dist/modules/index.d.ts.map +1 -1
  26. package/dist/modules/index.js +3 -3
  27. package/dist/modules/index.js.map +1 -1
  28. package/dist/modules/storage.d.ts +1 -1
  29. package/dist/modules/storage.d.ts.map +1 -1
  30. package/dist/modules/storage.js +5 -5
  31. package/dist/modules/storage.js.map +1 -1
  32. package/dist/tests/modules/storage.test.js +15 -11
  33. package/dist/tests/modules/storage.test.js.map +1 -1
  34. package/dist/utils/index.d.ts +1 -1
  35. package/dist/utils/index.d.ts.map +1 -1
  36. package/dist/utils/index.js +1 -1
  37. package/dist/utils/index.js.map +1 -1
  38. package/dist/utils/utils.d.ts.map +1 -1
  39. package/dist/utils/utils.js.map +1 -1
  40. package/package.json +77 -85
  41. package/vite.cjs.config.ts +3 -3
  42. package/vite.test.config.ts +15 -15
@@ -1,18 +1,15 @@
1
- import { ApiParams, ProcaptchaConfigSchema, encodeProcaptchaOutput, } from '@prosopo/types';
2
- import { ApiPromise } from '@polkadot/api/promise/Api';
3
- import { ExtensionWeb2, ExtensionWeb3 } from '@prosopo/account';
4
- import { Keyring } from '@polkadot/keyring';
5
- import { ProsopoCaptchaContract, wrapQuery } from '@prosopo/contract';
6
- import { ProsopoContractError, ProsopoDatasetError, ProsopoEnvError, ProsopoError, trimProviderUrl, } from '@prosopo/common';
7
- import { ProviderApi } from '@prosopo/api';
8
- import { WsProvider } from '@polkadot/rpc-provider/ws';
9
- import { ContractAbi as abiJson } from '@prosopo/captcha-contract/contract-info';
10
- import { at, hashToHex } from '@prosopo/util';
11
- import { buildUpdateState, getDefaultEvents } from '@prosopo/procaptcha-common';
12
- import { randomAsHex } from '@polkadot/util-crypto/random';
13
- import { sleep } from '../utils/utils.js';
14
- import ProsopoCaptchaApi from './ProsopoCaptchaApi.js';
15
- import storage from './storage.js';
1
+ import { cryptoWaitReady } from "@polkadot/util-crypto";
2
+ import { randomAsHex } from "@polkadot/util-crypto/random";
3
+ import { ExtensionWeb2, ExtensionWeb3 } from "@prosopo/account";
4
+ import { ProviderApi } from "@prosopo/api";
5
+ import { ProsopoDatasetError, ProsopoEnvError, ProsopoError, } from "@prosopo/common";
6
+ import { loadBalancer } from "@prosopo/load-balancer";
7
+ import { buildUpdateState, getDefaultEvents } from "@prosopo/procaptcha-common";
8
+ import { ApiParams, ProcaptchaConfigSchema, encodeProcaptchaOutput, } from "@prosopo/types";
9
+ import { at, hashToHex } from "@prosopo/util";
10
+ import { sleep } from "../utils/utils.js";
11
+ import ProsopoCaptchaApi from "./ProsopoCaptchaApi.js";
12
+ import storage from "./storage.js";
16
13
  const defaultState = () => {
17
14
  return {
18
15
  showModal: false,
@@ -28,12 +25,28 @@ const defaultState = () => {
28
25
  const getNetwork = (config) => {
29
26
  const network = config.networks[config.defaultNetwork];
30
27
  if (!network) {
31
- throw new ProsopoEnvError('DEVELOPER.NETWORK_NOT_FOUND', {
32
- context: { error: `No network found for environment ${config.defaultEnvironment}` },
28
+ throw new ProsopoEnvError("DEVELOPER.NETWORK_NOT_FOUND", {
29
+ context: {
30
+ error: `No network found for environment ${config.defaultEnvironment}`,
31
+ },
33
32
  });
34
33
  }
35
34
  return network;
36
35
  };
36
+ const getRandomActiveProvider = (config) => {
37
+ const randomIntBetween = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
38
+ const PROVIDERS = loadBalancer(config.defaultEnvironment);
39
+ const randomProvderObj = at(PROVIDERS, randomIntBetween(0, PROVIDERS.length - 1));
40
+ return {
41
+ providerAccount: randomProvderObj.address,
42
+ provider: {
43
+ url: randomProvderObj.url,
44
+ datasetId: randomProvderObj.datasetId,
45
+ datasetIdContent: randomProvderObj.datasetIdContent,
46
+ },
47
+ blockNumber: 0,
48
+ };
49
+ };
37
50
  export function Manager(configOptional, state, onStateUpdate, callbacks) {
38
51
  const events = getDefaultEvents(onStateUpdate, state, callbacks);
39
52
  const dispatchErrorEvent = (err) => {
@@ -43,7 +56,7 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
43
56
  const updateState = buildUpdateState(state, onStateUpdate);
44
57
  const getConfig = () => {
45
58
  const config = {
46
- userAccountAddress: '',
59
+ userAccountAddress: "",
47
60
  ...configOptional,
48
61
  };
49
62
  if (state.account) {
@@ -70,82 +83,26 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
70
83
  if (state.isHuman) {
71
84
  return;
72
85
  }
86
+ await cryptoWaitReady();
73
87
  resetState();
74
88
  updateState({ loading: true });
75
89
  const config = getConfig();
76
90
  updateState({ dappAccount: config.account.address });
77
91
  await sleep(100);
78
92
  const account = await loadAccount();
79
- const contract = await loadContract();
80
- let contractIsHuman = false;
81
- try {
82
- contractIsHuman = (await contract.query.dappOperatorIsHumanUser(account.account.address, config.solutionThreshold)).value
83
- .unwrap()
84
- .unwrap();
85
- }
86
- catch (error) {
87
- console.warn(error);
88
- }
89
- if (contractIsHuman) {
90
- updateState({ isHuman: true, loading: false });
91
- events.onHuman(encodeProcaptchaOutput({
92
- [ApiParams.user]: account.account.address,
93
- [ApiParams.dapp]: getDappAccount(),
94
- [ApiParams.blockNumber]: getBlockNumber(),
95
- }));
96
- setValidChallengeTimeout();
97
- return;
98
- }
99
- const procaptchaStorage = storage.getProcaptchaStorage();
100
- let providerApi;
101
- if (procaptchaStorage.providerUrl && procaptchaStorage.blockNumber) {
102
- providerApi = await loadProviderApi(procaptchaStorage.providerUrl);
103
- try {
104
- const extension = getExtension(account);
105
- if (!extension || !extension.signer || !extension.signer.signRaw) {
106
- throw new ProsopoEnvError('ACCOUNT.NO_POLKADOT_EXTENSION');
107
- }
108
- const signRaw = extension.signer.signRaw;
109
- const { signature } = await signRaw({
110
- address: account.account.address,
111
- data: procaptchaStorage.blockNumber.toString(),
112
- type: 'bytes',
113
- });
114
- const token = encodeProcaptchaOutput({
115
- [ApiParams.user]: account.account.address,
116
- [ApiParams.dapp]: getDappAccount(),
117
- [ApiParams.blockNumber]: procaptchaStorage.blockNumber,
118
- });
119
- const verifyDappUserResponse = await providerApi.verifyUser(token, signature, configOptional.captchas.image.cachedTimeout);
120
- if (verifyDappUserResponse.verified) {
121
- updateState({ isHuman: true, loading: false });
122
- const output = {
123
- [ApiParams.providerUrl]: procaptchaStorage.providerUrl,
124
- [ApiParams.user]: account.account.address,
125
- [ApiParams.dapp]: getDappAccount(),
126
- [ApiParams.commitmentId]: hashToHex(verifyDappUserResponse.commitmentId),
127
- [ApiParams.blockNumber]: verifyDappUserResponse.blockNumber,
128
- };
129
- events.onHuman(encodeProcaptchaOutput(output));
130
- setValidChallengeTimeout();
131
- return;
132
- }
133
- }
134
- catch (err) {
135
- console.error('Error contacting provider from storage', procaptchaStorage.providerUrl);
136
- }
137
- }
138
- const getRandomProviderResponse = await wrapQuery(contract.query.getRandomActiveProvider, contract.query)(account.account.address, getDappAccount());
139
- const blockNumber = parseInt(getRandomProviderResponse.blockNumber.toString());
140
- const providerUrl = trimProviderUrl(getRandomProviderResponse.provider.url.toString());
141
- providerApi = await loadProviderApi(providerUrl);
142
- const captchaApi = await loadCaptchaApi(contract, getRandomProviderResponse, providerApi);
93
+ const contract = getNetwork(config).contract.address;
94
+ const getRandomProviderResponse = getRandomActiveProvider(getConfig());
95
+ const blockNumber = getRandomProviderResponse.blockNumber;
96
+ const providerUrl = getRandomProviderResponse.provider.url;
97
+ const providerApi = await loadProviderApi(providerUrl);
98
+ const captchaApi = new ProsopoCaptchaApi(account.account.address, contract, getRandomProviderResponse, providerApi, config.web2, config.account.address || "");
99
+ updateState({ captchaApi });
143
100
  const challenge = await captchaApi.getCaptchaChallenge();
144
101
  if (challenge.captchas.length <= 0) {
145
- throw new ProsopoDatasetError('DEVELOPER.PROVIDER_NO_CAPTCHA');
102
+ throw new ProsopoDatasetError("DEVELOPER.PROVIDER_NO_CAPTCHA");
146
103
  }
147
104
  const timeMillis = challenge.captchas
148
- .map((captcha) => captcha.captcha.timeLimitMs || config.captchas.image.challengeTimeout)
105
+ .map((captcha) => captcha.timeLimitMs || config.captchas.image.challengeTimeout)
149
106
  .reduce((a, b) => a + b);
150
107
  const timeout = setTimeout(() => {
151
108
  events.onChallengeExpired();
@@ -165,8 +122,8 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
165
122
  await fallable(async () => {
166
123
  clearTimeout();
167
124
  if (!state.challenge) {
168
- throw new ProsopoError('CAPTCHA.NO_CAPTCHA', {
169
- context: { error: 'Cannot submit, no Captcha found in state' },
125
+ throw new ProsopoError("CAPTCHA.NO_CAPTCHA", {
126
+ context: { error: "Cannot submit, no Captcha found in state" },
170
127
  });
171
128
  }
172
129
  updateState({ showModal: false });
@@ -175,8 +132,8 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
175
132
  const captchaSolution = state.challenge.captchas.map((captcha, index) => {
176
133
  const solution = at(state.solutions, index);
177
134
  return {
178
- captchaId: captcha.captcha.captchaId,
179
- captchaContentId: captcha.captcha.captchaContentId,
135
+ captchaId: captcha.captchaId,
136
+ captchaContentId: captcha.captchaContentId,
180
137
  salt,
181
138
  solution,
182
139
  };
@@ -185,13 +142,18 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
185
142
  const blockNumber = getBlockNumber();
186
143
  const signer = getExtension(account).signer;
187
144
  const first = at(challenge.captchas, 0);
188
- if (!first.captcha.datasetId) {
189
- throw new ProsopoDatasetError('CAPTCHA.INVALID_CAPTCHA_ID', {
190
- context: { error: 'No datasetId set for challenge' },
145
+ if (!first.datasetId) {
146
+ throw new ProsopoDatasetError("CAPTCHA.INVALID_CAPTCHA_ID", {
147
+ context: { error: "No datasetId set for challenge" },
191
148
  });
192
149
  }
193
- const captchaApi = getCaptchaApi();
194
- const submission = await captchaApi.submitCaptchaSolution(signer, challenge.requestHash, first.captcha.datasetId, captchaSolution, salt);
150
+ const captchaApi = state.captchaApi;
151
+ if (!captchaApi) {
152
+ throw new ProsopoError("CAPTCHA.INVALID_TOKEN", {
153
+ context: { error: "No Captcha API found in state" },
154
+ });
155
+ }
156
+ const submission = await captchaApi.submitCaptchaSolution(signer, challenge.requestHash, captchaSolution, salt, challenge.timestamp, challenge.signature.provider.timestamp);
195
157
  const isHuman = submission[0].verified;
196
158
  if (!isHuman) {
197
159
  events.onFailed();
@@ -202,14 +164,24 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
202
164
  loading: false,
203
165
  });
204
166
  if (state.isHuman) {
205
- const providerUrl = trimProviderUrl(captchaApi.provider.provider.url.toString());
206
- storage.setProcaptchaStorage({ ...storage.getProcaptchaStorage(), providerUrl, blockNumber });
167
+ const providerUrl = captchaApi.provider.provider.url;
168
+ storage.setProcaptchaStorage({
169
+ ...storage.getProcaptchaStorage(),
170
+ providerUrl,
171
+ blockNumber,
172
+ });
207
173
  events.onHuman(encodeProcaptchaOutput({
208
174
  [ApiParams.providerUrl]: providerUrl,
209
175
  [ApiParams.user]: account.account.address,
210
176
  [ApiParams.dapp]: getDappAccount(),
211
177
  [ApiParams.commitmentId]: hashToHex(submission[1]),
212
178
  [ApiParams.blockNumber]: blockNumber,
179
+ [ApiParams.timestamp]: challenge.timestamp,
180
+ [ApiParams.signature]: {
181
+ [ApiParams.provider]: {
182
+ [ApiParams.timestamp]: challenge.signature.provider.timestamp,
183
+ },
184
+ },
213
185
  }));
214
186
  setValidChallengeTimeout();
215
187
  }
@@ -222,13 +194,15 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
222
194
  };
223
195
  const select = (hash) => {
224
196
  if (!state.challenge) {
225
- throw new ProsopoError('CAPTCHA.NO_CAPTCHA', {
226
- context: { error: 'Cannot select, no Captcha found in state' },
197
+ throw new ProsopoError("CAPTCHA.NO_CAPTCHA", {
198
+ context: { error: "Cannot select, no Captcha found in state" },
227
199
  });
228
200
  }
229
201
  if (state.index >= state.challenge.captchas.length || state.index < 0) {
230
- throw new ProsopoError('CAPTCHA.NO_CAPTCHA', {
231
- context: { error: 'Cannot select, index is out of range for this Captcha' },
202
+ throw new ProsopoError("CAPTCHA.NO_CAPTCHA", {
203
+ context: {
204
+ error: "Cannot select, index is out of range for this Captcha",
205
+ },
232
206
  });
233
207
  }
234
208
  const index = state.index;
@@ -244,28 +218,24 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
244
218
  };
245
219
  const nextRound = () => {
246
220
  if (!state.challenge) {
247
- throw new ProsopoError('CAPTCHA.NO_CAPTCHA', {
248
- context: { error: 'Cannot select, no Captcha found in state' },
221
+ throw new ProsopoError("CAPTCHA.NO_CAPTCHA", {
222
+ context: { error: "Cannot select, no Captcha found in state" },
249
223
  });
250
224
  }
251
225
  if (state.index + 1 >= state.challenge.captchas.length) {
252
- throw new ProsopoError('CAPTCHA.NO_CAPTCHA', {
253
- context: { error: 'Cannot select, index is out of range for this Captcha' },
226
+ throw new ProsopoError("CAPTCHA.NO_CAPTCHA", {
227
+ context: {
228
+ error: "Cannot select, index is out of range for this Captcha",
229
+ },
254
230
  });
255
231
  }
256
232
  updateState({ index: state.index + 1 });
257
233
  };
258
- const loadCaptchaApi = async (contract, provider, providerApi) => {
259
- const config = getConfig();
260
- const captchaApi = new ProsopoCaptchaApi(getAccount().account.address, contract, provider, providerApi, config.web2, getDappAccount());
261
- updateState({ captchaApi });
262
- return getCaptchaApi();
263
- };
264
234
  const loadProviderApi = async (providerUrl) => {
265
235
  const config = getConfig();
266
236
  const network = getNetwork(config);
267
237
  if (!config.account.address) {
268
- throw new ProsopoEnvError('GENERAL.SITE_KEY_MISSING');
238
+ throw new ProsopoEnvError("GENERAL.SITE_KEY_MISSING");
269
239
  }
270
240
  return new ProviderApi(network, providerUrl, config.account.address);
271
241
  };
@@ -285,19 +255,11 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
285
255
  clearTimeout();
286
256
  updateState(defaultState());
287
257
  };
288
- const getCaptchaApi = () => {
289
- if (!state.captchaApi) {
290
- throw new ProsopoEnvError('API.UNKNOWN', {
291
- context: { error: 'Captcha api not set', state },
292
- });
293
- }
294
- return state.captchaApi;
295
- };
296
258
  const loadAccount = async () => {
297
259
  const config = getConfig();
298
260
  if (!config.web2 && !config.userAccountAddress) {
299
- throw new ProsopoEnvError('GENERAL.ACCOUNT_NOT_FOUND', {
300
- context: { error: 'Account address has not been set for web3 mode' },
261
+ throw new ProsopoEnvError("GENERAL.ACCOUNT_NOT_FOUND", {
262
+ context: { error: "Account address has not been set for web3 mode" },
301
263
  });
302
264
  }
303
265
  const ext = config.web2 ? new ExtensionWeb2() : new ExtensionWeb3();
@@ -308,77 +270,39 @@ export function Manager(configOptional, state, onStateUpdate, callbacks) {
308
270
  };
309
271
  const getAccount = () => {
310
272
  if (!state.account) {
311
- throw new ProsopoEnvError('GENERAL.ACCOUNT_NOT_FOUND', { context: { error: 'Account not loaded' } });
273
+ throw new ProsopoEnvError("GENERAL.ACCOUNT_NOT_FOUND", {
274
+ context: { error: "Account not loaded" },
275
+ });
312
276
  }
313
277
  const account = state.account;
314
278
  return account;
315
279
  };
316
280
  const getDappAccount = () => {
317
281
  if (!state.dappAccount) {
318
- throw new ProsopoEnvError('GENERAL.SITE_KEY_MISSING');
282
+ throw new ProsopoEnvError("GENERAL.SITE_KEY_MISSING");
319
283
  }
320
284
  const dappAccount = state.dappAccount;
321
285
  return dappAccount;
322
286
  };
323
287
  const getBlockNumber = () => {
324
- if (!state.blockNumber) {
325
- throw new ProsopoContractError('CAPTCHA.INVALID_BLOCK_NO', { context: { error: 'Block number not found' } });
326
- }
327
- const blockNumber = state.blockNumber;
288
+ const blockNumber = state.blockNumber || 0;
328
289
  return blockNumber;
329
290
  };
330
- const getExtension = (account) => {
331
- account = account || getAccount();
291
+ const getExtension = (possiblyAccount) => {
292
+ const account = possiblyAccount || getAccount();
332
293
  if (!account.extension) {
333
- throw new ProsopoEnvError('ACCOUNT.NO_POLKADOT_EXTENSION', { context: { error: 'Extension not loaded' } });
294
+ throw new ProsopoEnvError("ACCOUNT.NO_POLKADOT_EXTENSION", {
295
+ context: { error: "Extension not loaded" },
296
+ });
334
297
  }
335
298
  return account.extension;
336
299
  };
337
- const loadContract = async () => {
338
- const config = getConfig();
339
- const network = getNetwork(config);
340
- const api = await ApiPromise.create({
341
- provider: new WsProvider(network.endpoint),
342
- initWasm: false,
343
- noInitWarn: true,
344
- });
345
- const type = 'sr25519';
346
- const keyring = new Keyring({ type, ss58Format: api.registry.chainSS58 });
347
- return new ProsopoCaptchaContract(api, JSON.parse(abiJson), network.contract.address, 'prosopo', 0, keyring.addFromAddress(getAccount().account.address));
348
- };
349
- const exportData = async (events) => {
350
- const procaptchaStorage = storage.getProcaptchaStorage();
351
- const providerUrlFromStorage = procaptchaStorage.providerUrl;
352
- let providerApi;
353
- if (providerUrlFromStorage) {
354
- providerApi = await loadProviderApi(providerUrlFromStorage);
355
- }
356
- else {
357
- const contract = await loadContract();
358
- const getRandomProviderResponse = await wrapQuery(contract.query.getRandomActiveProvider, contract.query)(getAccount().account.address, getDappAccount());
359
- const providerUrl = trimProviderUrl(getRandomProviderResponse.provider.url.toString());
360
- providerApi = await loadProviderApi(providerUrl);
361
- }
362
- const providerUrl = storage.getProcaptchaStorage().providerUrl || state.captchaApi?.provider.provider.url.toString();
363
- if (!providerUrl) {
364
- return;
365
- }
366
- let account = '';
367
- try {
368
- account = getAccount().account.address;
369
- }
370
- catch (e) {
371
- console.error(e);
372
- }
373
- await providerApi.submitUserEvents(events, account);
374
- };
375
300
  return {
376
301
  start,
377
302
  cancel,
378
303
  submit,
379
304
  select,
380
305
  nextRound,
381
- exportData,
382
306
  };
383
307
  }
384
308
  //# sourceMappingURL=Manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,18 @@
1
- import { CaptchaResponseBody, CaptchaSolution, ProsopoCaptchaApiInterface } from '@prosopo/types';
2
- import { ProsopoCaptchaContract } from '@prosopo/contract';
3
- import { ProviderApi } from '@prosopo/api';
4
- import { RandomProvider } from '@prosopo/captcha-contract/types-returns';
5
- import { Signer } from '@polkadot/api/types';
6
- import { TCaptchaSubmitResult } from '@prosopo/types';
1
+ import type { Signer } from "@polkadot/api/types";
2
+ import type { ProviderApi } from "@prosopo/api";
3
+ import type { CaptchaResponseBody, CaptchaSolution, ProsopoCaptchaApiInterface, RandomProvider } from "@prosopo/types";
4
+ import type { TCaptchaSubmitResult } from "@prosopo/types";
7
5
  export declare class ProsopoCaptchaApi implements ProsopoCaptchaApiInterface {
8
6
  userAccount: string;
9
- contract: ProsopoCaptchaContract;
7
+ contract: string;
10
8
  provider: RandomProvider;
11
9
  providerApi: ProviderApi;
12
10
  dappAccount: string;
13
11
  _web2: boolean;
14
- constructor(userAccount: string, contract: ProsopoCaptchaContract, provider: RandomProvider, providerApi: ProviderApi, web2: boolean, dappAccount: string);
12
+ constructor(userAccount: string, contract: string, provider: RandomProvider, providerApi: ProviderApi, web2: boolean, dappAccount: string);
15
13
  get web2(): boolean;
16
14
  getCaptchaChallenge(): Promise<CaptchaResponseBody>;
17
- verifyCaptchaChallengeContent(provider: RandomProvider, captchaChallenge: CaptchaResponseBody): void;
18
- submitCaptchaSolution(signer: Signer, requestHash: string, datasetId: string, solutions: CaptchaSolution[], salt: string): Promise<TCaptchaSubmitResult>;
15
+ submitCaptchaSolution(signer: Signer, requestHash: string, solutions: CaptchaSolution[], salt: string, timestamp: string, providerTimestampSignature: string): Promise<TCaptchaSubmitResult>;
19
16
  }
20
17
  export default ProsopoCaptchaApi;
21
18
  //# sourceMappingURL=ProsopoCaptchaApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProsopoCaptchaApi.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAoBA,OAAO,EACH,mBAAmB,EACnB,eAAe,EAGf,0BAA0B,EAC7B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAIrD,qBAAa,iBAAkB,YAAW,0BAA0B;IAChE,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,sBAAsB,CAAA;IAChC,QAAQ,EAAE,cAAc,CAAA;IACxB,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;gBAGV,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM;IAUvB,IAAI,IAAI,IAAI,OAAO,CAElB;IAEY,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAqBzD,6BAA6B,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,GAAG,IAAI;IAuB9F,qBAAqB,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,eAAe,EAAE,EAC5B,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,oBAAoB,CAAC;CA0CnC;AA4BD,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"ProsopoCaptchaApi.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EAEf,0BAA0B,EAC1B,cAAc,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,iBAAkB,YAAW,0BAA0B;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;gBAGb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM;IAUrB,IAAI,IAAI,IAAI,OAAO,CAElB;IAEY,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAyBnD,qBAAqB,CAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,MAAM,GACjC,OAAO,CAAC,oBAAoB,CAAC;CA0DjC;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,7 +1,6 @@
1
- import { CaptchaMerkleTree, computeCaptchaHash, computeCaptchaSolutionHash, computeItemHash, verifyProof, } from '@prosopo/datasets';
2
- import { ProsopoDatasetError, ProsopoEnvError } from '@prosopo/common';
3
- import { at } from '@prosopo/util';
4
- import { stringToHex } from '@polkadot/util/string';
1
+ import { stringToHex } from "@polkadot/util/string";
2
+ import { ProsopoDatasetError, ProsopoEnvError } from "@prosopo/common";
3
+ import { CaptchaMerkleTree, computeCaptchaSolutionHash, } from "@prosopo/datasets";
5
4
  export class ProsopoCaptchaApi {
6
5
  constructor(userAccount, contract, provider, providerApi, web2, dappAccount) {
7
6
  this.userAccount = userAccount;
@@ -17,76 +16,57 @@ export class ProsopoCaptchaApi {
17
16
  async getCaptchaChallenge() {
18
17
  try {
19
18
  const captchaChallenge = await this.providerApi.getCaptchaChallenge(this.userAccount, this.provider);
20
- this.verifyCaptchaChallengeContent(this.provider, captchaChallenge);
21
- captchaChallenge.captchas.forEach((captcha) => {
22
- captcha.captcha.items.forEach((item) => {
19
+ for (const captcha of captchaChallenge.captchas) {
20
+ for (const item of captcha.items) {
23
21
  if (item.data) {
24
- item.data = item.data.replace(/^http(s)*:\/\//, '//');
22
+ item.data = item.data.replace(/^http(s)*:\/\//, "//");
25
23
  }
26
- });
27
- });
24
+ }
25
+ }
28
26
  return captchaChallenge;
29
27
  }
30
28
  catch (error) {
31
- throw new ProsopoEnvError('CAPTCHA.INVALID_CAPTCHA_CHALLENGE', { context: { error } });
32
- }
33
- }
34
- verifyCaptchaChallengeContent(provider, captchaChallenge) {
35
- const first = at(captchaChallenge.captchas, 0);
36
- const proofLength = first.proof.length;
37
- const last = at(first.proof, proofLength - 1);
38
- if (provider.provider.datasetIdContent.toString() !== at(last, 0)) {
39
- throw new ProsopoEnvError('CAPTCHA.INVALID_DATASET_CONTENT_ID');
40
- }
41
- for (const captchaWithProof of captchaChallenge.captchas) {
42
- if (!verifyCaptchaData(captchaWithProof)) {
43
- throw new ProsopoEnvError('CAPTCHA.INVALID_CAPTCHA_CHALLENGE');
44
- }
45
- if (!verifyProof(captchaWithProof.captcha.captchaContentId, captchaWithProof.proof)) {
46
- throw new ProsopoEnvError('CAPTCHA.INVALID_CAPTCHA_CHALLENGE');
47
- }
29
+ throw new ProsopoEnvError("CAPTCHA.INVALID_CAPTCHA_CHALLENGE", {
30
+ context: { error },
31
+ });
48
32
  }
49
- return;
50
33
  }
51
- async submitCaptchaSolution(signer, requestHash, datasetId, solutions, salt) {
34
+ async submitCaptchaSolution(signer, requestHash, solutions, salt, timestamp, providerTimestampSignature) {
52
35
  const tree = new CaptchaMerkleTree();
53
36
  const captchasHashed = solutions.map((captcha) => computeCaptchaSolutionHash(captcha));
54
37
  tree.build(captchasHashed);
38
+ if (!tree.root) {
39
+ throw new ProsopoDatasetError("CAPTCHA.INVALID_CAPTCHA_CHALLENGE", {
40
+ context: { error: "Merkle tree root is undefined" },
41
+ });
42
+ }
55
43
  const commitmentId = tree.root.hash;
56
44
  const tx = undefined;
57
- let signature = undefined;
45
+ let userRequestHashSignature = undefined;
58
46
  if (!signer || !signer.signRaw) {
59
- throw new ProsopoEnvError('GENERAL.CANT_FIND_KEYRINGPAIR', {
60
- context: { error: 'Signer is not defined, cannot sign message to prove account ownership' },
47
+ throw new ProsopoEnvError("GENERAL.CANT_FIND_KEYRINGPAIR", {
48
+ context: {
49
+ error: "Signer is not defined, cannot sign message to prove account ownership",
50
+ },
61
51
  });
62
52
  }
63
53
  let result;
64
54
  const signed = await signer.signRaw({
65
55
  address: this.userAccount,
66
56
  data: stringToHex(requestHash),
67
- type: 'bytes',
57
+ type: "bytes",
68
58
  });
69
- signature = signed.signature;
59
+ userRequestHashSignature = signed.signature;
70
60
  try {
71
- result = await this.providerApi.submitCaptchaSolution(solutions, requestHash, this.contract.pair.address, salt, signature);
61
+ result = await this.providerApi.submitCaptchaSolution(solutions, requestHash, this.userAccount, salt, timestamp, providerTimestampSignature, userRequestHashSignature);
72
62
  }
73
63
  catch (error) {
74
- throw new ProsopoDatasetError('CAPTCHA.INVALID_CAPTCHA_CHALLENGE', { context: { error } });
64
+ throw new ProsopoDatasetError("CAPTCHA.INVALID_CAPTCHA_CHALLENGE", {
65
+ context: { error },
66
+ });
75
67
  }
76
68
  return [result, commitmentId, tx];
77
69
  }
78
70
  }
79
- async function verifyCaptchaData(captchaWithProof) {
80
- const captcha = captchaWithProof.captcha;
81
- const proof = captchaWithProof.proof;
82
- if (!(await Promise.all(captcha.items.map(async (item) => (await computeItemHash(item)).hash === item.hash))).every((hash) => hash === true)) {
83
- return false;
84
- }
85
- const captchaHash = computeCaptchaHash(captcha, false, false, false);
86
- if (captchaHash !== captcha.captchaContentId) {
87
- return false;
88
- }
89
- return at(proof, 0).indexOf(captchaHash) !== -1;
90
- }
91
71
  export default ProsopoCaptchaApi;
92
72
  //# sourceMappingURL=ProsopoCaptchaApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"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"}