@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.
- package/dist/cjs/account/dist/extension/ExtensionWeb2.cjs +21 -28
- package/dist/cjs/account/dist/extension/ExtensionWeb3.cjs +5 -3
- package/dist/cjs/detector/src/index.cjs +4586 -0
- package/dist/cjs/modules/Manager.cjs +83 -168
- package/dist/cjs/modules/ProsopoCaptchaApi.cjs +34 -49
- package/dist/cjs/modules/collector.cjs +32 -8
- package/dist/cjs/modules/storage.cjs +8 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/Manager.d.ts +1 -2
- package/dist/modules/Manager.d.ts.map +1 -1
- package/dist/modules/Manager.js +92 -168
- package/dist/modules/Manager.js.map +1 -1
- package/dist/modules/ProsopoCaptchaApi.d.ts +7 -10
- package/dist/modules/ProsopoCaptchaApi.d.ts.map +1 -1
- package/dist/modules/ProsopoCaptchaApi.js +28 -48
- package/dist/modules/ProsopoCaptchaApi.js.map +1 -1
- package/dist/modules/collector.d.ts +1 -1
- package/dist/modules/collector.d.ts.map +1 -1
- package/dist/modules/collector.js +8 -8
- package/dist/modules/collector.js.map +1 -1
- package/dist/modules/index.d.ts +3 -3
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +3 -3
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/storage.d.ts +1 -1
- package/dist/modules/storage.d.ts.map +1 -1
- package/dist/modules/storage.js +5 -5
- package/dist/modules/storage.js.map +1 -1
- package/dist/tests/modules/storage.test.js +15 -11
- package/dist/tests/modules/storage.test.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +77 -85
- package/vite.cjs.config.ts +3 -3
- package/vite.test.config.ts +15 -15
package/dist/modules/Manager.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ExtensionWeb2, ExtensionWeb3 } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import
|
|
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(
|
|
32
|
-
context: {
|
|
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 =
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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(
|
|
102
|
+
throw new ProsopoDatasetError("DEVELOPER.PROVIDER_NO_CAPTCHA");
|
|
146
103
|
}
|
|
147
104
|
const timeMillis = challenge.captchas
|
|
148
|
-
.map((captcha) => captcha.
|
|
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(
|
|
169
|
-
context: { error:
|
|
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.
|
|
179
|
-
captchaContentId: captcha.
|
|
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.
|
|
189
|
-
throw new ProsopoDatasetError(
|
|
190
|
-
context: { error:
|
|
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 =
|
|
194
|
-
|
|
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 =
|
|
206
|
-
storage.setProcaptchaStorage({
|
|
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(
|
|
226
|
-
context: { error:
|
|
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(
|
|
231
|
-
context: {
|
|
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(
|
|
248
|
-
context: { error:
|
|
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(
|
|
253
|
-
context: {
|
|
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(
|
|
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(
|
|
300
|
-
context: { error:
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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 = (
|
|
331
|
-
account =
|
|
291
|
+
const getExtension = (possiblyAccount) => {
|
|
292
|
+
const account = possiblyAccount || getAccount();
|
|
332
293
|
if (!account.extension) {
|
|
333
|
-
throw new ProsopoEnvError(
|
|
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":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,YAAY,GAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAEL,SAAS,EAMT,sBAAsB,EAMtB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,MAAM,YAAY,GAAG,GAA6B,EAAE;IAClD,OAAO;QAEL,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;KAEnB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAoC,EAAE,EAAE;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,eAAe,CAAC,6BAA6B,EAAE;YACvD,OAAO,EAAE;gBACP,KAAK,EAAE,oCAAoC,MAAM,CAAC,kBAAkB,EAAE;aACvE;SACF,CAAC,CAAC;KACJ;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC9B,MAAoC,EACpB,EAAE;IAClB,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAKpD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE1D,MAAM,gBAAgB,GAAG,EAAE,CACzB,SAAS,EACT,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAC1C,CAAC;IACF,OAAO;QACL,eAAe,EAAE,gBAAgB,CAAC,OAAO;QACzC,QAAQ,EAAE;YACR,GAAG,EAAE,gBAAgB,CAAC,GAAG;YACzB,SAAS,EAAE,gBAAgB,CAAC,SAAS;YACrC,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;SACpD;QACD,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,UAAU,OAAO,CACrB,cAA4C,EAC5C,KAAsB,EACtB,aAAsC,EACtC,SAA8B;IAE9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAEjE,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;IAGF,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAS3D,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,MAAM,GAAgC;YAC1C,kBAAkB,EAAE,EAAE;YACtB,GAAG,cAAc;SAClB,CAAC;QAGF,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;SAC3D;QACD,OAAO,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,EAAuB,EAAE,EAAE;QACjD,IAAI;YACF,MAAM,EAAE,EAAE,CAAC;SACZ;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEnB,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAExB,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;SACnE;IACH,CAAC,CAAC;IAKF,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,OAAO;aACR;YACD,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,OAAO;aACR;YACD,MAAM,eAAe,EAAE,CAAC;YAExB,UAAU,EAAE,CAAC;YAEb,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAG/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,WAAW,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAGrD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAEjB,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAGrD,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,SAAS,EAAE,CAAC,CAAC;YAEvE,MAAM,WAAW,GAAG,yBAAyB,CAAC,WAAW,CAAC;YAC1D,MAAM,WAAW,GAAG,yBAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC;YAE3D,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;YAEvD,MAAM,UAAU,GAAG,IAAI,iBAAiB,CACtC,OAAO,CAAC,OAAO,CAAC,OAAO,EACvB,QAAQ,EACR,yBAAyB,EACzB,WAAW,EACX,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAC7B,CAAC;YACF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAE5B,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,mBAAmB,EAAE,CAAC;YAEzD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;gBAClC,MAAM,IAAI,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;aAChE;YAGD,MAAM,UAAU,GAAW,SAAS,CAAC,QAAQ;iBAC1C,GAAG,CACF,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAChE;iBACA,MAAM,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAE5B,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,CAAC,EAAE,UAAU,CAAC,CAAC;YAGf,WAAW,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;gBAC3C,SAAS;gBACT,SAAS,EAAE,IAAI;gBACf,OAAO;gBACP,WAAW;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,MAAM,QAAQ,CAAC,KAAK,IAAI,EAAE;YAExB,YAAY,EAAE,CAAC;YAEf,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACpB,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE;oBAC3C,OAAO,EAAE,EAAE,KAAK,EAAE,0CAA0C,EAAE;iBAC/D,CAAC,CAAC;aACJ;YAGD,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAElC,MAAM,SAAS,GAAwB,KAAK,CAAC,SAAS,CAAC;YACvD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;YAG3B,MAAM,eAAe,GAAsB,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CACrE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACjB,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC5C,OAAO;oBACL,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,IAAI;oBACJ,QAAQ;iBACT,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAE5C,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACpB,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,EAAE;oBAC1D,OAAO,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE;iBACrD,CAAC,CAAC;aACJ;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YAEpC,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,IAAI,YAAY,CAAC,uBAAuB,EAAE;oBAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE;iBACpD,CAAC,CAAC;aACJ;YAGD,MAAM,UAAU,GACd,MAAM,UAAU,CAAC,qBAAqB,CACpC,MAAM,EACN,SAAS,CAAC,WAAW,EACrB,eAAe,EACf,IAAI,EACJ,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CACvC,CAAC;YAGJ,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEvC,IAAI,CAAC,OAAO,EAAE;gBAEZ,MAAM,CAAC,QAAQ,EAAE,CAAC;aACnB;YAGD,WAAW,CAAC;gBACV,UAAU;gBACV,OAAO;gBACP,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAErD,OAAO,CAAC,oBAAoB,CAAC;oBAC3B,GAAG,OAAO,CAAC,oBAAoB,EAAE;oBACjC,WAAW;oBACX,WAAW;iBACZ,CAAC,CAAC;gBACH,MAAM,CAAC,OAAO,CACZ,sBAAsB,CAAC;oBACrB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW;oBACpC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;oBACzC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE;oBAClC,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAClD,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW;oBACpC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS;oBAC1C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;wBACrB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;4BACpB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS;yBAC9D;qBACF;iBACF,CAAC,CACH,CAAC;gBACF,wBAAwB,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QAExB,YAAY,EAAE,CAAC;QAEf,UAAU,EAAE,CAAC;QAEb,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC;IAMF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YACpB,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE;gBAC3C,OAAO,EAAE,EAAE,KAAK,EAAE,0CAA0C,EAAE;aAC/D,CAAC,CAAC;SACJ;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;YACrE,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE;gBAC3C,OAAO,EAAE;oBACP,KAAK,EAAE,uDAAuD;iBAC/D;aACF,CAAC,CAAC;SACJ;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAE3B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5C;aAAM;YAEL,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC;IAKF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YACpB,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE;gBAC3C,OAAO,EAAE,EAAE,KAAK,EAAE,0CAA0C,EAAE;aAC/D,CAAC,CAAC;SACJ;QACD,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;YACtD,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE;gBAC3C,OAAO,EAAE;oBACP,KAAK,EAAE,uDAAuD;iBAC/D;aACF,CAAC,CAAC;SACJ;QAED,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;YAC3B,MAAM,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAC;SACvD;QACD,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QAExB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,GAAG,EAAE;QACpC,MAAM,UAAU,GAAW,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC;QACzE,MAAM,2BAA2B,GAAG,UAAU,CAAC,GAAG,EAAE;YAElD,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAEhC,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,EAAE,UAAU,CAAC,CAAC;QAEf,WAAW,CAAC,EAAE,2BAA2B,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QAEtB,YAAY,EAAE,CAAC;QACf,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC;IAKF,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;YAC9C,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE;gBACrD,OAAO,EAAE,EAAE,KAAK,EAAE,gDAAgD,EAAE;aACrE,CAAC,CAAC;SACJ;QAGD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;QACpE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5C,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzB,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClB,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE;gBACrD,OAAO,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;aACzC,CAAC,CAAC;SACJ;QACD,MAAM,OAAO,GAAY,KAAK,CAAC,OAAO,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACtB,MAAM,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAC;SACvD;QAED,MAAM,WAAW,GAAW,KAAK,CAAC,WAAW,CAAC;QAC9C,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,WAAW,GAAW,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QACnD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,eAAyB,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,eAAe,IAAI,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,MAAM,IAAI,eAAe,CAAC,+BAA+B,EAAE;gBACzD,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;aAC3C,CAAC,CAAC;SACJ;QAED,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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:
|
|
7
|
+
contract: string;
|
|
10
8
|
provider: RandomProvider;
|
|
11
9
|
providerApi: ProviderApi;
|
|
12
10
|
dappAccount: string;
|
|
13
11
|
_web2: boolean;
|
|
14
|
-
constructor(userAccount: string, contract:
|
|
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
|
-
|
|
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":"
|
|
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 {
|
|
2
|
-
import { ProsopoDatasetError, ProsopoEnvError } from
|
|
3
|
-
import {
|
|
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
|
-
|
|
21
|
-
|
|
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(
|
|
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,
|
|
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
|
|
45
|
+
let userRequestHashSignature = undefined;
|
|
58
46
|
if (!signer || !signer.signRaw) {
|
|
59
|
-
throw new ProsopoEnvError(
|
|
60
|
-
context: {
|
|
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:
|
|
57
|
+
type: "bytes",
|
|
68
58
|
});
|
|
69
|
-
|
|
59
|
+
userRequestHashSignature = signed.signature;
|
|
70
60
|
try {
|
|
71
|
-
result = await this.providerApi.submitCaptchaSolution(solutions, requestHash, this.
|
|
61
|
+
result = await this.providerApi.submitCaptchaSolution(solutions, requestHash, this.userAccount, salt, timestamp, providerTimestampSignature, userRequestHashSignature);
|
|
72
62
|
}
|
|
73
63
|
catch (error) {
|
|
74
|
-
throw new ProsopoDatasetError(
|
|
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":"
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAU3B,MAAM,OAAO,iBAAiB;IAQ5B,YACE,WAAmB,EACnB,QAAgB,EAChB,QAAwB,EACxB,WAAwB,EACxB,IAAa,EACb,WAAmB;QAEnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC9B,IAAI;YACF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CACjE,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,CACd,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,QAAQ,EAAE;gBAC/C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;oBAChC,IAAI,IAAI,CAAC,IAAI,EAAE;wBAGb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;qBACvD;iBACF;aACF;YAED,OAAO,gBAAgB,CAAC;SACzB;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,eAAe,CAAC,mCAAmC,EAAE;gBAC7D,OAAO,EAAE,EAAE,KAAK,EAAE;aACnB,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAChC,MAAc,EACd,WAAmB,EACnB,SAA4B,EAC5B,IAAY,EACZ,SAAiB,EACjB,0BAAkC;QAElC,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAErC,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/C,0BAA0B,CAAC,OAAO,CAAC,CACpC,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,EAAE;gBACjE,OAAO,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE;aACpD,CAAC,CAAC;SACJ;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAEpC,MAAM,EAAE,GAA0C,SAAS,CAAC;QAE5D,IAAI,wBAAwB,GAAuB,SAAS,CAAC;QAE7D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAC9B,MAAM,IAAI,eAAe,CAAC,+BAA+B,EAAE;gBACzD,OAAO,EAAE;oBACP,KAAK,EACH,uEAAuE;iBAC1E;aACF,CAAC,CAAC;SACJ;QAED,IAAI,MAA+B,CAAC;QAGpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC;YAC9B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,wBAAwB,GAAG,MAAM,CAAC,SAAS,CAAC;QAE5C,IAAI;YACF,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CACnD,SAAS,EACT,WAAW,EACX,IAAI,CAAC,WAAW,EAChB,IAAI,EACJ,SAAS,EACT,0BAA0B,EAC1B,wBAAwB,CACzB,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,EAAE;gBACjE,OAAO,EAAE,EAAE,KAAK,EAAE;aACnB,CAAC,CAAC;SACJ;QAED,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC"}
|