@prosopo/provider 2.1.6 → 2.1.7
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/package.json +11 -11
- package/.dockerignore +0 -5
- package/dist/api/admin.d.ts +0 -4
- package/dist/api/admin.d.ts.map +0 -1
- package/dist/api/admin.js +0 -36
- package/dist/api/admin.js.map +0 -1
- package/dist/api/authMiddleware.d.ts +0 -6
- package/dist/api/authMiddleware.d.ts.map +0 -1
- package/dist/api/authMiddleware.js +0 -66
- package/dist/api/authMiddleware.js.map +0 -1
- package/dist/api/captcha.d.ts +0 -4
- package/dist/api/captcha.d.ts.map +0 -1
- package/dist/api/captcha.js +0 -299
- package/dist/api/captcha.js.map +0 -1
- package/dist/api/captchaScheduler.d.ts +0 -4
- package/dist/api/captchaScheduler.d.ts.map +0 -1
- package/dist/api/captchaScheduler.js +0 -17
- package/dist/api/captchaScheduler.js.map +0 -1
- package/dist/api/errorHandler.d.ts +0 -11
- package/dist/api/errorHandler.d.ts.map +0 -1
- package/dist/api/errorHandler.js +0 -42
- package/dist/api/errorHandler.js.map +0 -1
- package/dist/api/verify.d.ts +0 -4
- package/dist/api/verify.d.ts.map +0 -1
- package/dist/api/verify.js +0 -98
- package/dist/api/verify.js.map +0 -1
- package/dist/batch/commitments.d.ts +0 -24
- package/dist/batch/commitments.d.ts.map +0 -1
- package/dist/batch/commitments.js +0 -130
- package/dist/batch/commitments.js.map +0 -1
- package/dist/batch/index.d.ts +0 -2
- package/dist/batch/index.d.ts.map +0 -1
- package/dist/batch/index.js +0 -2
- package/dist/batch/index.js.map +0 -1
- package/dist/cjs/api/admin.cjs +0 -37
- package/dist/cjs/api/authMiddleware.cjs +0 -66
- package/dist/cjs/api/captcha.cjs +0 -380
- package/dist/cjs/api/errorHandler.cjs +0 -42
- package/dist/cjs/api/verify.cjs +0 -120
- package/dist/cjs/index.cjs +0 -25
- package/dist/cjs/schedulers/captchaScheduler.cjs +0 -33
- package/dist/cjs/schedulers/getClientList.cjs +0 -31
- package/dist/cjs/tasks/client/clientTasks.cjs +0 -148
- package/dist/cjs/tasks/dataset/datasetTasks.cjs +0 -30
- package/dist/cjs/tasks/dataset/datasetTasksUtils.cjs +0 -34
- package/dist/cjs/tasks/detection/decodePayload.cjs +0 -549
- package/dist/cjs/tasks/detection/getBotScore.cjs +0 -18
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +0 -313
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs +0 -25
- package/dist/cjs/tasks/index.cjs +0 -4
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +0 -134
- package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +0 -26
- package/dist/cjs/tasks/tasks.cjs +0 -40
- package/dist/cjs/util.cjs +0 -45
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -10
- package/dist/index.js.map +0 -1
- package/dist/scheduler.d.ts +0 -4
- package/dist/scheduler.d.ts.map +0 -1
- package/dist/scheduler.js +0 -21
- package/dist/scheduler.js.map +0 -1
- package/dist/schedulers/captchaScheduler.d.ts +0 -4
- package/dist/schedulers/captchaScheduler.d.ts.map +0 -1
- package/dist/schedulers/captchaScheduler.js +0 -28
- package/dist/schedulers/captchaScheduler.js.map +0 -1
- package/dist/schedulers/getClientList.d.ts +0 -4
- package/dist/schedulers/getClientList.d.ts.map +0 -1
- package/dist/schedulers/getClientList.js +0 -28
- package/dist/schedulers/getClientList.js.map +0 -1
- package/dist/tasks/client/clientTasks.d.ts +0 -13
- package/dist/tasks/client/clientTasks.d.ts.map +0 -1
- package/dist/tasks/client/clientTasks.js +0 -87
- package/dist/tasks/client/clientTasks.js.map +0 -1
- package/dist/tasks/dataset/datasetTasks.d.ts +0 -13
- package/dist/tasks/dataset/datasetTasks.d.ts.map +0 -1
- package/dist/tasks/dataset/datasetTasks.js +0 -19
- package/dist/tasks/dataset/datasetTasks.js.map +0 -1
- package/dist/tasks/dataset/datasetTasksUtils.d.ts +0 -3
- package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +0 -1
- package/dist/tasks/dataset/datasetTasksUtils.js +0 -34
- package/dist/tasks/dataset/datasetTasksUtils.js.map +0 -1
- package/dist/tasks/detection/decodePayload.d.ts +0 -3
- package/dist/tasks/detection/decodePayload.d.ts.map +0 -1
- package/dist/tasks/detection/decodePayload.js +0 -302
- package/dist/tasks/detection/decodePayload.js.map +0 -1
- package/dist/tasks/detection/getBotScore.d.ts +0 -2
- package/dist/tasks/detection/getBotScore.d.ts.map +0 -1
- package/dist/tasks/detection/getBotScore.js +0 -17
- package/dist/tasks/detection/getBotScore.js.map +0 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +0 -29
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +0 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +0 -242
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +0 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +0 -7
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +0 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +0 -18
- package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +0 -1
- package/dist/tasks/index.d.ts +0 -2
- package/dist/tasks/index.d.ts.map +0 -1
- package/dist/tasks/index.js +0 -2
- package/dist/tasks/index.js.map +0 -1
- package/dist/tasks/powCaptcha/powTasks.d.ts +0 -13
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +0 -1
- package/dist/tasks/powCaptcha/powTasks.js +0 -84
- package/dist/tasks/powCaptcha/powTasks.js.map +0 -1
- package/dist/tasks/powCaptcha/powTasksUtils.d.ts +0 -3
- package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +0 -1
- package/dist/tasks/powCaptcha/powTasksUtils.js +0 -22
- package/dist/tasks/powCaptcha/powTasksUtils.js.map +0 -1
- package/dist/tasks/tasks.d.ts +0 -22
- package/dist/tasks/tasks.d.ts.map +0 -1
- package/dist/tasks/tasks.js +0 -24
- package/dist/tasks/tasks.js.map +0 -1
- package/dist/tests/accounts.d.ts +0 -12
- package/dist/tests/accounts.d.ts.map +0 -1
- package/dist/tests/accounts.js +0 -35
- package/dist/tests/accounts.js.map +0 -1
- package/dist/tests/contract/helpers.test.d.ts +0 -6
- package/dist/tests/contract/helpers.test.d.ts.map +0 -1
- package/dist/tests/contract/helpers.test.js +0 -54
- package/dist/tests/contract/helpers.test.js.map +0 -1
- package/dist/tests/dataUtils/DatabaseAccounts.d.ts +0 -35
- package/dist/tests/dataUtils/DatabaseAccounts.d.ts.map +0 -1
- package/dist/tests/dataUtils/DatabaseAccounts.js +0 -84
- package/dist/tests/dataUtils/DatabaseAccounts.js.map +0 -1
- package/dist/tests/dataUtils/DatabasePopulator.d.ts +0 -73
- package/dist/tests/dataUtils/DatabasePopulator.d.ts.map +0 -1
- package/dist/tests/dataUtils/DatabasePopulator.js +0 -326
- package/dist/tests/dataUtils/DatabasePopulator.js.map +0 -1
- package/dist/tests/dataUtils/dapp-example-contract/dapp.json +0 -648
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts +0 -4
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts.map +0 -1
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js +0 -27
- package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js.map +0 -1
- package/dist/tests/dataUtils/funds.d.ts +0 -9
- package/dist/tests/dataUtils/funds.d.ts.map +0 -1
- package/dist/tests/dataUtils/funds.js +0 -105
- package/dist/tests/dataUtils/funds.js.map +0 -1
- package/dist/tests/dataUtils/populateDatabase.d.ts +0 -16
- package/dist/tests/dataUtils/populateDatabase.d.ts.map +0 -1
- package/dist/tests/dataUtils/populateDatabase.js +0 -72
- package/dist/tests/dataUtils/populateDatabase.js.map +0 -1
- package/dist/tests/getUser.d.ts +0 -4
- package/dist/tests/getUser.d.ts.map +0 -1
- package/dist/tests/getUser.js +0 -18
- package/dist/tests/getUser.js.map +0 -1
- package/dist/tests/index.d.ts +0 -2
- package/dist/tests/index.d.ts.map +0 -1
- package/dist/tests/index.js +0 -2
- package/dist/tests/index.js.map +0 -1
- package/dist/tests/integration/imgCaptcha.integration.test.d.ts +0 -2
- package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +0 -1
- package/dist/tests/integration/imgCaptcha.integration.test.js +0 -137
- package/dist/tests/integration/imgCaptcha.integration.test.js.map +0 -1
- package/dist/tests/integration/imgCaptcha.test.d.ts +0 -2
- package/dist/tests/integration/imgCaptcha.test.d.ts.map +0 -1
- package/dist/tests/integration/imgCaptcha.test.js +0 -103
- package/dist/tests/integration/imgCaptcha.test.js.map +0 -1
- package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +0 -32
- package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +0 -1
- package/dist/tests/integration/mocks/solvedTestCaptchas.js +0 -1046
- package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +0 -1
- package/dist/tests/integration/powCaptcha.integration.test.d.ts +0 -2
- package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +0 -1
- package/dist/tests/integration/powCaptcha.integration.test.js +0 -222
- package/dist/tests/integration/powCaptcha.integration.test.js.map +0 -1
- package/dist/tests/integration/powCaptcha.test.d.ts +0 -2
- package/dist/tests/integration/powCaptcha.test.d.ts.map +0 -1
- package/dist/tests/integration/powCaptcha.test.js +0 -133
- package/dist/tests/integration/powCaptcha.test.js.map +0 -1
- package/dist/tests/integration/registerSitekey.d.ts +0 -2
- package/dist/tests/integration/registerSitekey.d.ts.map +0 -1
- package/dist/tests/integration/registerSitekey.js +0 -28
- package/dist/tests/integration/registerSitekey.js.map +0 -1
- package/dist/tests/tasks/tasks.test.d.ts +0 -6
- package/dist/tests/tasks/tasks.test.d.ts.map +0 -1
- package/dist/tests/tasks/tasks.test.js +0 -636
- package/dist/tests/tasks/tasks.test.js.map +0 -1
- package/dist/tests/unit/api/authMiddleware.test.d.ts +0 -2
- package/dist/tests/unit/api/authMiddleware.test.d.ts.map +0 -1
- package/dist/tests/unit/api/authMiddleware.test.js +0 -87
- package/dist/tests/unit/api/authMiddleware.test.js.map +0 -1
- package/dist/tests/unit/api/authMiddleware.unit.test.d.ts +0 -2
- package/dist/tests/unit/api/authMiddleware.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/api/authMiddleware.unit.test.js +0 -108
- package/dist/tests/unit/api/authMiddleware.unit.test.js.map +0 -1
- package/dist/tests/unit/api/captchaScheduler.test.d.ts +0 -2
- package/dist/tests/unit/api/captchaScheduler.test.d.ts.map +0 -1
- package/dist/tests/unit/api/captchaScheduler.test.js +0 -47
- package/dist/tests/unit/api/captchaScheduler.test.js.map +0 -1
- package/dist/tests/unit/api/errorHandler.test.d.ts +0 -2
- package/dist/tests/unit/api/errorHandler.test.d.ts.map +0 -1
- package/dist/tests/unit/api/errorHandler.test.js +0 -65
- package/dist/tests/unit/api/errorHandler.test.js.map +0 -1
- package/dist/tests/unit/api/errorHandler.unit.test.d.ts +0 -2
- package/dist/tests/unit/api/errorHandler.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/api/errorHandler.unit.test.js +0 -100
- package/dist/tests/unit/api/errorHandler.unit.test.js.map +0 -1
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +0 -2
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +0 -63
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +0 -172
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/dataset/datasetTasks.test.d.ts +0 -2
- package/dist/tests/unit/tasks/dataset/datasetTasks.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/dataset/datasetTasks.test.js +0 -82
- package/dist/tests/unit/tasks/dataset/datasetTasks.test.js.map +0 -1
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +0 -86
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.d.ts +0 -2
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.js +0 -75
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.js.map +0 -1
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +0 -75
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.d.ts +0 -2
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.js +0 -245
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.js.map +0 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +0 -266
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.d.ts +0 -2
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.js +0 -45
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.js.map +0 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +0 -46
- package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasks.test.d.ts +0 -2
- package/dist/tests/unit/tasks/powCaptcha/powTasks.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasks.test.js +0 -121
- package/dist/tests/unit/tasks/powCaptcha/powTasks.test.js.map +0 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +0 -209
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.d.ts +0 -2
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.js +0 -94
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.js.map +0 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +0 -65
- package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +0 -1
- package/dist/tests/util.test.d.ts +0 -2
- package/dist/tests/util.test.d.ts.map +0 -1
- package/dist/tests/util.test.js +0 -23
- package/dist/tests/util.test.js.map +0 -1
- package/dist/util.d.ts +0 -6
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -34
- package/dist/util.js.map +0 -1
package/dist/api/verify.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { validateAddress } from "@polkadot/util-crypto/address";
|
|
2
|
-
import { ProsopoApiError } from "@prosopo/common";
|
|
3
|
-
import { ApiParams, ApiPaths, ServerPowCaptchaVerifyRequestBody, VerifySolutionBody, decodeProcaptchaOutput, } from "@prosopo/types";
|
|
4
|
-
import express from "express";
|
|
5
|
-
import { Tasks } from "../tasks/tasks.js";
|
|
6
|
-
import { verifySignature } from "./authMiddleware.js";
|
|
7
|
-
import { handleErrors } from "./errorHandler.js";
|
|
8
|
-
export function prosopoVerifyRouter(env) {
|
|
9
|
-
const router = express.Router();
|
|
10
|
-
const tasks = new Tasks(env);
|
|
11
|
-
router.post(ApiPaths.VerifyImageCaptchaSolutionDapp, async (req, res, next) => {
|
|
12
|
-
let parsed;
|
|
13
|
-
try {
|
|
14
|
-
parsed = VerifySolutionBody.parse(req.body);
|
|
15
|
-
}
|
|
16
|
-
catch (err) {
|
|
17
|
-
return next(new ProsopoApiError("CAPTCHA.PARSE_ERROR", {
|
|
18
|
-
context: { code: 400, error: err, body: req.body },
|
|
19
|
-
}));
|
|
20
|
-
}
|
|
21
|
-
const { dappSignature, token } = parsed;
|
|
22
|
-
try {
|
|
23
|
-
const { user, dapp, timestamp, commitmentId } = decodeProcaptchaOutput(token);
|
|
24
|
-
validateAddress(dapp, false, 42);
|
|
25
|
-
validateAddress(user, false, 42);
|
|
26
|
-
const clientRecord = await tasks.db.getClientRecord(dapp);
|
|
27
|
-
if (!clientRecord) {
|
|
28
|
-
return next(new ProsopoApiError("API.SITE_KEY_NOT_REGISTERED", {
|
|
29
|
-
context: { code: 400, siteKey: dapp },
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
const keyPair = env.keyring.addFromAddress(dapp);
|
|
33
|
-
verifySignature(dappSignature, timestamp.toString(), keyPair);
|
|
34
|
-
const response = await tasks.imgCaptchaManager.verifyImageCaptchaSolution(user, dapp, commitmentId, parsed.maxVerifiedTime);
|
|
35
|
-
const verificationResponse = {
|
|
36
|
-
[ApiParams.status]: req.t(response.status),
|
|
37
|
-
[ApiParams.verified]: response[ApiParams.verified],
|
|
38
|
-
...(response.commitmentId && {
|
|
39
|
-
[ApiParams.commitmentId]: response.commitmentId,
|
|
40
|
-
}),
|
|
41
|
-
};
|
|
42
|
-
res.json(verificationResponse);
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
tasks.logger.error({ err, body: req.body });
|
|
46
|
-
return next(new ProsopoApiError("API.BAD_REQUEST", {
|
|
47
|
-
context: { code: 500 },
|
|
48
|
-
}));
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
router.post(ApiPaths.VerifyPowCaptchaSolution, async (req, res, next) => {
|
|
52
|
-
let parsed;
|
|
53
|
-
try {
|
|
54
|
-
parsed = ServerPowCaptchaVerifyRequestBody.parse(req.body);
|
|
55
|
-
}
|
|
56
|
-
catch (err) {
|
|
57
|
-
return next(new ProsopoApiError("CAPTCHA.PARSE_ERROR", {
|
|
58
|
-
context: { code: 400, error: err, body: req.body },
|
|
59
|
-
}));
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
const { token, dappSignature, verifiedTimeout } = parsed;
|
|
63
|
-
const { dapp, user, timestamp, challenge } = decodeProcaptchaOutput(token);
|
|
64
|
-
validateAddress(dapp, false, 42);
|
|
65
|
-
validateAddress(user, false, 42);
|
|
66
|
-
const clientRecord = await tasks.db.getClientRecord(dapp);
|
|
67
|
-
if (!clientRecord) {
|
|
68
|
-
return next(new ProsopoApiError("API.SITE_KEY_NOT_REGISTERED", {
|
|
69
|
-
context: { code: 400, siteKey: dapp },
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
if (!challenge) {
|
|
73
|
-
const unverifiedResponse = {
|
|
74
|
-
status: req.t("API.USER_NOT_VERIFIED"),
|
|
75
|
-
[ApiParams.verified]: false,
|
|
76
|
-
};
|
|
77
|
-
return res.json(unverifiedResponse);
|
|
78
|
-
}
|
|
79
|
-
const dappPair = env.keyring.addFromAddress(dapp);
|
|
80
|
-
verifySignature(dappSignature, timestamp.toString(), dappPair);
|
|
81
|
-
const approved = await tasks.powCaptchaManager.serverVerifyPowCaptchaSolution(dapp, challenge, verifiedTimeout);
|
|
82
|
-
const verificationResponse = {
|
|
83
|
-
status: req.t(approved ? "API.USER_VERIFIED" : "API.USER_NOT_VERIFIED"),
|
|
84
|
-
[ApiParams.verified]: approved,
|
|
85
|
-
};
|
|
86
|
-
return res.json(verificationResponse);
|
|
87
|
-
}
|
|
88
|
-
catch (err) {
|
|
89
|
-
tasks.logger.error({ err, body: req.body });
|
|
90
|
-
return next(new ProsopoApiError("API.BAD_REQUEST", {
|
|
91
|
-
context: { code: 500 },
|
|
92
|
-
}));
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
router.use(handleErrors);
|
|
96
|
-
return router;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=verify.js.map
|
package/dist/api/verify.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/api/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/// <reference types="bn.js" />
|
|
2
|
-
import { BN } from '@polkadot/util/bn';
|
|
3
|
-
import { BatchCommitConfigOutput, ExtrinsicBatch } from '@prosopo/types';
|
|
4
|
-
import { Commit, Hash } from '@prosopo/captcha-contract/types-returns';
|
|
5
|
-
import { Database, UserCommitmentRecord } from '@prosopo/types-database';
|
|
6
|
-
import { Logger } from '@prosopo/common';
|
|
7
|
-
import { ProsopoCaptchaContract } from '@prosopo/contract';
|
|
8
|
-
import { WeightV2 } from '@polkadot/types/interfaces';
|
|
9
|
-
export declare class BatchCommitmentsTask {
|
|
10
|
-
contract: ProsopoCaptchaContract;
|
|
11
|
-
db: Database;
|
|
12
|
-
batchCommitConfig: BatchCommitConfigOutput;
|
|
13
|
-
logger: Logger;
|
|
14
|
-
private nonce;
|
|
15
|
-
constructor(batchCommitConfig: BatchCommitConfigOutput, contractApi: ProsopoCaptchaContract, db: Database, startNonce: bigint, logger: Logger);
|
|
16
|
-
run(): Promise<any>;
|
|
17
|
-
createExtrinsics(commitments: UserCommitmentRecord[]): Promise<ExtrinsicBatch>;
|
|
18
|
-
extrinsicTooHigh(totalRefTime: BN, totalProofSize: BN, maxBlockWeight: WeightV2): boolean;
|
|
19
|
-
batchIntervalExceeded(): Promise<boolean>;
|
|
20
|
-
getCommitments(): Promise<UserCommitmentRecord[]>;
|
|
21
|
-
flagBatchedCommitments(commitmentIds: Hash[]): Promise<void>;
|
|
22
|
-
convertCommit(commitment: UserCommitmentRecord): Commit;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=commitments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commitments.d.ts","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,EAAE,EAAW,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAA2C,MAAM,gBAAgB,CAAA;AACjH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAwB,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAA2B,MAAM,mBAAmB,CAAA;AAEnF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAQrD,qBAAa,oBAAoB;IAC7B,QAAQ,EAAE,sBAAsB,CAAA;IAChC,EAAE,EAAE,QAAQ,CAAA;IACZ,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,KAAK,CAAQ;gBAEjB,iBAAiB,EAAE,uBAAuB,EAC1C,WAAW,EAAE,sBAAsB,EACnC,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM;IAQZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAyDnB,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAkFpF,gBAAgB,CAAC,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,GAAG,OAAO;IAOnF,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAMzC,cAAc,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAKjD,sBAAsB,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM;CAW1D"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { BN, BN_ZERO } from '@polkadot/util/bn';
|
|
2
|
-
import { ScheduledTaskNames, ScheduledTaskStatus } from '@prosopo/types';
|
|
3
|
-
import { ProsopoContractError } from '@prosopo/common';
|
|
4
|
-
import { batch, encodeStringArgs } from '@prosopo/contract';
|
|
5
|
-
import { checkIfTaskIsRunning } from '../util.js';
|
|
6
|
-
import { oneUnit } from '@prosopo/tx';
|
|
7
|
-
import { randomAsHex } from '@polkadot/util-crypto/random';
|
|
8
|
-
const BN_TEN_THOUSAND = new BN(10000);
|
|
9
|
-
const CONTRACT_METHOD_NAME = 'providerCommitMany';
|
|
10
|
-
export class BatchCommitmentsTask {
|
|
11
|
-
constructor(batchCommitConfig, contractApi, db, startNonce, logger) {
|
|
12
|
-
this.contract = contractApi;
|
|
13
|
-
this.db = db;
|
|
14
|
-
this.batchCommitConfig = batchCommitConfig;
|
|
15
|
-
this.logger = logger;
|
|
16
|
-
this.nonce = startNonce;
|
|
17
|
-
}
|
|
18
|
-
async run() {
|
|
19
|
-
const taskId = randomAsHex(32);
|
|
20
|
-
const taskRunning = await checkIfTaskIsRunning(ScheduledTaskNames.BatchCommitment, this.db);
|
|
21
|
-
if (!taskRunning) {
|
|
22
|
-
const intervalExceeded = await this.batchIntervalExceeded();
|
|
23
|
-
if (intervalExceeded) {
|
|
24
|
-
try {
|
|
25
|
-
await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Running);
|
|
26
|
-
const commitments = await this.getCommitments();
|
|
27
|
-
if (commitments.length > 0) {
|
|
28
|
-
this.logger.info(`Found ${commitments.length} commitments to commit`);
|
|
29
|
-
const { extrinsics, ids: commitmentIds } = await this.createExtrinsics(commitments);
|
|
30
|
-
await batch(this.contract.contract, this.contract.pair, extrinsics, this.logger);
|
|
31
|
-
await this.flagBatchedCommitments(commitmentIds);
|
|
32
|
-
await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Completed, {
|
|
33
|
-
data: {
|
|
34
|
-
commitmentIds: commitments
|
|
35
|
-
.filter((commitment) => commitmentIds.indexOf(commitment.id) > -1)
|
|
36
|
-
.map((c) => c.id),
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return commitments;
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
const err = e;
|
|
44
|
-
this.logger.error(e);
|
|
45
|
-
await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Failed, {
|
|
46
|
-
error: JSON.stringify(e && err.message ? err.message : e),
|
|
47
|
-
});
|
|
48
|
-
return err.message;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
async createExtrinsics(commitments) {
|
|
54
|
-
const txs = [];
|
|
55
|
-
const fragment = this.contract.abi.findMessage(CONTRACT_METHOD_NAME);
|
|
56
|
-
const batchedCommitmentIds = [];
|
|
57
|
-
let totalRefTime = BN_ZERO;
|
|
58
|
-
let totalProofSize = BN_ZERO;
|
|
59
|
-
let totalFee = BN_ZERO;
|
|
60
|
-
const maxBlockWeight = this.contract.api.consts.system.blockWeights.maxBlock;
|
|
61
|
-
const commitmentArray = [];
|
|
62
|
-
let extrinsic;
|
|
63
|
-
for (const commitment of commitments) {
|
|
64
|
-
const commit = this.convertCommit(commitment);
|
|
65
|
-
commitmentArray.push(commit);
|
|
66
|
-
const encodedArgs = encodeStringArgs(this.contract.abi, fragment, [commitmentArray]);
|
|
67
|
-
const buildExtrinsicResult = await this.contract.getExtrinsicAndGasEstimates('providerCommitMany', encodedArgs);
|
|
68
|
-
extrinsic = buildExtrinsicResult.extrinsic;
|
|
69
|
-
const { options, storageDeposit } = buildExtrinsicResult;
|
|
70
|
-
let paymentInfo;
|
|
71
|
-
try {
|
|
72
|
-
paymentInfo = (await extrinsic.paymentInfo(this.contract.pair)).partialFee.toBn();
|
|
73
|
-
this.logger.debug(`${CONTRACT_METHOD_NAME} paymentInfo:`, paymentInfo.toNumber());
|
|
74
|
-
}
|
|
75
|
-
catch (e) {
|
|
76
|
-
paymentInfo = BN_ZERO;
|
|
77
|
-
}
|
|
78
|
-
totalRefTime = totalRefTime.add(this.contract.api.registry.createType('WeightV2', options.gasLimit).refTime.toBn());
|
|
79
|
-
totalProofSize = totalProofSize.add(this.contract.api.registry.createType('WeightV2', options.gasLimit).proofSize.toBn());
|
|
80
|
-
totalFee = totalFee.add(paymentInfo.add(storageDeposit.asCharge.toBn()));
|
|
81
|
-
const extrinsicTooHigh = this.extrinsicTooHigh(totalRefTime, totalProofSize, maxBlockWeight);
|
|
82
|
-
this.logger.debug('Free balance', '`', (await this.contract.api.query.system.account(this.contract.pair.address)).data.free
|
|
83
|
-
.toBn()
|
|
84
|
-
.div(oneUnit(this.contract.api))
|
|
85
|
-
.toString(), '`', 'UNIT');
|
|
86
|
-
this.logger.debug('Total Fee `', totalFee.div(oneUnit(this.contract.api)).toString(), '`', 'UNIT');
|
|
87
|
-
const feeTooHigh = totalFee.gt((await this.contract.api.query.system.account(this.contract.pair.address)).data.free.toBn());
|
|
88
|
-
if (extrinsicTooHigh || feeTooHigh) {
|
|
89
|
-
const msg = extrinsicTooHigh ? 'Max batch extrinsic percentage reached' : 'Fee too high';
|
|
90
|
-
this.logger.warn(msg);
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
batchedCommitmentIds.push(commitment.id);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (!extrinsic) {
|
|
98
|
-
throw new ProsopoContractError('CONTRACT.TX_ERROR', { context: { error: 'No extrinsics created' } });
|
|
99
|
-
}
|
|
100
|
-
txs.push(extrinsic);
|
|
101
|
-
this.logger.info(`${txs.length} transactions will be batched`);
|
|
102
|
-
this.logger.debug('totalRefTime:', totalRefTime.toString());
|
|
103
|
-
this.logger.debug('totalProofSize:', totalProofSize.toString());
|
|
104
|
-
return { extrinsics: txs, ids: batchedCommitmentIds, totalFee, totalRefTime, totalProofSize };
|
|
105
|
-
}
|
|
106
|
-
extrinsicTooHigh(totalRefTime, totalProofSize, maxBlockWeight) {
|
|
107
|
-
return (totalRefTime.mul(BN_TEN_THOUSAND).div(maxBlockWeight.refTime.toBn()).toNumber() / 100 >
|
|
108
|
-
this.batchCommitConfig.maxBatchExtrinsicPercentage);
|
|
109
|
-
}
|
|
110
|
-
async batchIntervalExceeded() {
|
|
111
|
-
const lastTime = await this.db.getLastBatchCommitTime();
|
|
112
|
-
return Date.now() - lastTime.getSeconds() > this.batchCommitConfig.interval;
|
|
113
|
-
}
|
|
114
|
-
async getCommitments() {
|
|
115
|
-
return await this.db.getUnbatchedDappUserCommitments();
|
|
116
|
-
}
|
|
117
|
-
async flagBatchedCommitments(commitmentIds) {
|
|
118
|
-
await this.db.flagBatchedDappUserCommitments(commitmentIds);
|
|
119
|
-
}
|
|
120
|
-
convertCommit(commitment) {
|
|
121
|
-
const { batched, processed, userSignature, requestedAt, completedAt, ...commit } = commitment;
|
|
122
|
-
return {
|
|
123
|
-
...commit,
|
|
124
|
-
userSignature,
|
|
125
|
-
requestedAt: new BN(requestedAt).toNumber(),
|
|
126
|
-
completedAt: new BN(completedAt).toNumber(),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=commitments.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":"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"}
|
package/dist/batch/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA"}
|
package/dist/batch/index.js
DELETED
package/dist/batch/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA"}
|
package/dist/cjs/api/admin.cjs
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const common = require("@prosopo/common");
|
|
4
|
-
const types = require("@prosopo/types");
|
|
5
|
-
const express = require("express");
|
|
6
|
-
require("../index.cjs");
|
|
7
|
-
const tasks = require("../tasks/tasks.cjs");
|
|
8
|
-
function prosopoAdminRouter(env) {
|
|
9
|
-
const router = express.Router();
|
|
10
|
-
const tasks$1 = new tasks.Tasks(env);
|
|
11
|
-
router.post(types.AdminApiPaths.UpdateDataset, async (req, res, next) => {
|
|
12
|
-
try {
|
|
13
|
-
const result = await tasks$1.datasetManager.providerSetDataset(req.body);
|
|
14
|
-
console.info(`Dataset update complete: ${result}`);
|
|
15
|
-
res.status(200).send(result);
|
|
16
|
-
} catch (err) {
|
|
17
|
-
common.logError(err, tasks$1.logger);
|
|
18
|
-
res.status(500).send("An internal server error occurred.");
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
router.post(types.AdminApiPaths.SiteKeyRegister, async (req, res, next) => {
|
|
22
|
-
try {
|
|
23
|
-
const { siteKey, settings } = types.RegisterSitekeyBody.parse(req.body);
|
|
24
|
-
const temp = settings || {};
|
|
25
|
-
await tasks$1.clientTaskManager.registerSiteKey(siteKey, temp);
|
|
26
|
-
const response = {
|
|
27
|
-
status: "success"
|
|
28
|
-
};
|
|
29
|
-
res.json(response);
|
|
30
|
-
} catch (err) {
|
|
31
|
-
common.logError(err, tasks$1.logger);
|
|
32
|
-
res.status(500).send("An internal server error occurred.");
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
return router;
|
|
36
|
-
}
|
|
37
|
-
exports.prosopoAdminRouter = prosopoAdminRouter;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const util = require("@polkadot/util");
|
|
4
|
-
const common = require("@prosopo/common");
|
|
5
|
-
const types = require("@prosopo/types");
|
|
6
|
-
const authMiddleware = (env) => {
|
|
7
|
-
return async (req, res, next) => {
|
|
8
|
-
try {
|
|
9
|
-
if (req.url.indexOf(types.ApiPrefix) === -1) {
|
|
10
|
-
next();
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
const { signature, timestamp } = extractHeaders(req);
|
|
14
|
-
if (!env.pair) {
|
|
15
|
-
res.status(401).json({
|
|
16
|
-
error: "Unauthorized",
|
|
17
|
-
message: new common.ProsopoEnvError("CONTRACT.CANNOT_FIND_KEYPAIR")
|
|
18
|
-
});
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
verifySignature(signature, timestamp, env.pair);
|
|
22
|
-
next();
|
|
23
|
-
} catch (err) {
|
|
24
|
-
console.error("Auth Middleware Error:", err);
|
|
25
|
-
res.status(401).json({ error: "Unauthorized", message: err });
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
const extractHeaders = (req) => {
|
|
31
|
-
const signature = req.headers.signature;
|
|
32
|
-
const timestamp = req.headers.timestamp;
|
|
33
|
-
if (!timestamp) {
|
|
34
|
-
throw new common.ProsopoApiError("GENERAL.INVALID_TIMESTAMP", {
|
|
35
|
-
context: { error: "Missing timestamp", code: 400 }
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
if (!signature) {
|
|
39
|
-
throw new common.ProsopoApiError("GENERAL.INVALID_SIGNATURE", {
|
|
40
|
-
context: { error: "Missing signature", code: 400 }
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
if (Array.isArray(signature) || Array.isArray(timestamp) || !util.isHex(signature)) {
|
|
44
|
-
throw new common.ProsopoApiError("CONTRACT.INVALID_DATA_FORMAT", {
|
|
45
|
-
context: { error: "Invalid header format", code: 400 }
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
49
|
-
const ts = Number.parseInt(timestamp, 10);
|
|
50
|
-
if (now - ts > 3e5) {
|
|
51
|
-
throw new common.ProsopoApiError("GENERAL.INVALID_TIMESTAMP", {
|
|
52
|
-
context: { error: "Timestamp is too old", code: 400 }
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
return { signature, timestamp };
|
|
56
|
-
};
|
|
57
|
-
const verifySignature = (signature, timestamp, pair) => {
|
|
58
|
-
const u8Sig = util.hexToU8a(signature);
|
|
59
|
-
if (!pair.verify(timestamp, u8Sig, pair.publicKey)) {
|
|
60
|
-
throw new common.ProsopoApiError("GENERAL.INVALID_SIGNATURE", {
|
|
61
|
-
context: { error: "Signature verification failed", code: 401 }
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
exports.authMiddleware = authMiddleware;
|
|
66
|
-
exports.verifySignature = verifySignature;
|