@prosopo/provider 0.3.39 → 0.3.41
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/api/captcha.d.ts.map +1 -1
- package/dist/api/captcha.js +38 -31
- package/dist/api/captcha.js.map +1 -1
- package/dist/api/errorHandler.d.ts +4 -0
- package/dist/api/errorHandler.d.ts.map +1 -0
- package/dist/api/errorHandler.js +16 -0
- package/dist/api/errorHandler.js.map +1 -0
- package/dist/cjs/api/captcha.cjs +43 -31
- package/dist/cjs/api/errorHandler.cjs +17 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/tasks/tasks.cjs +14 -14
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tasks/tasks.d.ts +2 -2
- package/dist/tasks/tasks.d.ts.map +1 -1
- package/dist/tasks/tasks.js +15 -14
- package/dist/tasks/tasks.js.map +1 -1
- package/package.json +23 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAQxD,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAQzC,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAqR9D"}
|
package/dist/api/captcha.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ApiParams, ApiPaths, CaptchaRequestBody, CaptchaSolutionBody, ServerPowCaptchaVerifyRequestBody, SubmitPowCaptchaSolutionBody, VerifySolutionBody, } from '@prosopo/types';
|
|
1
|
+
import { ApiParams, ApiPaths, CaptchaRequestBody, CaptchaSolutionBody, GetPowCaptchaChallengeRequestBody, ServerPowCaptchaVerifyRequestBody, SubmitPowCaptchaSolutionBody, VerifySolutionBody, } from '@prosopo/types';
|
|
2
2
|
import { CaptchaStatus } from '@prosopo/captcha-contract/types-returns';
|
|
3
3
|
import { ProsopoApiError } from '@prosopo/common';
|
|
4
4
|
import { Tasks } from '../tasks/tasks.js';
|
|
5
5
|
import { getBlockTimeMs, getCurrentBlockNumber } from '@prosopo/contract';
|
|
6
|
+
import { handleErrors } from './errorHandler.js';
|
|
6
7
|
import { parseBlockNumber } from '../util.js';
|
|
7
8
|
import { parseCaptchaAssets } from '@prosopo/datasets';
|
|
8
9
|
import { validateAddress } from '@polkadot/util-crypto/address';
|
|
@@ -37,7 +38,7 @@ export function prosopoRouter(env) {
|
|
|
37
38
|
}
|
|
38
39
|
catch (err) {
|
|
39
40
|
tasks.logger.error(err);
|
|
40
|
-
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { error: err,
|
|
41
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { error: err, code: 400 } }));
|
|
41
42
|
}
|
|
42
43
|
});
|
|
43
44
|
router.post(ApiPaths.SubmitCaptchaSolution, async (req, res, next) => {
|
|
@@ -46,7 +47,7 @@ export function prosopoRouter(env) {
|
|
|
46
47
|
parsed = CaptchaSolutionBody.parse(req.body);
|
|
47
48
|
}
|
|
48
49
|
catch (err) {
|
|
49
|
-
return next(new ProsopoApiError('CAPTCHA.PARSE_ERROR', { context: {
|
|
50
|
+
return next(new ProsopoApiError('CAPTCHA.PARSE_ERROR', { context: { code: 400, error: err } }));
|
|
50
51
|
}
|
|
51
52
|
try {
|
|
52
53
|
const result = await tasks.dappUserSolution(parsed[ApiParams.user], parsed[ApiParams.dapp], parsed[ApiParams.requestHash], parsed[ApiParams.captchas], parsed[ApiParams.signature]);
|
|
@@ -58,7 +59,7 @@ export function prosopoRouter(env) {
|
|
|
58
59
|
}
|
|
59
60
|
catch (err) {
|
|
60
61
|
tasks.logger.error(err);
|
|
61
|
-
return next(new ProsopoApiError('API.UNKNOWN', { context: {
|
|
62
|
+
return next(new ProsopoApiError('API.UNKNOWN', { context: { code: 400, error: err } }));
|
|
62
63
|
}
|
|
63
64
|
});
|
|
64
65
|
router.post(ApiPaths.VerifyCaptchaSolution, async (req, res, next) => {
|
|
@@ -67,28 +68,38 @@ export function prosopoRouter(env) {
|
|
|
67
68
|
parsed = VerifySolutionBody.parse(req.body);
|
|
68
69
|
}
|
|
69
70
|
catch (err) {
|
|
70
|
-
return next(new ProsopoApiError('CAPTCHA.PARSE_ERROR', { context: {
|
|
71
|
+
return next(new ProsopoApiError('CAPTCHA.PARSE_ERROR', { context: { code: 400, error: err } }));
|
|
71
72
|
}
|
|
72
73
|
try {
|
|
73
74
|
const solution = await (parsed.commitmentId
|
|
74
75
|
? tasks.getDappUserCommitmentById(parsed.commitmentId)
|
|
75
76
|
: tasks.getDappUserCommitmentByAccount(parsed.user));
|
|
76
77
|
if (!solution) {
|
|
77
|
-
|
|
78
|
+
tasks.logger.debug('Not verified - no solution found');
|
|
79
|
+
const noSolutionResponse = {
|
|
80
|
+
[ApiParams.status]: req.t('API.USER_NOT_VERIFIED_NO_SOLUTION'),
|
|
81
|
+
[ApiParams.verified]: false,
|
|
82
|
+
};
|
|
83
|
+
return res.json(noSolutionResponse);
|
|
84
|
+
}
|
|
85
|
+
if (solution.status === CaptchaStatus.disapproved) {
|
|
86
|
+
const disapprovedResponse = {
|
|
78
87
|
[ApiParams.status]: req.t('API.USER_NOT_VERIFIED'),
|
|
79
88
|
[ApiParams.verified]: false,
|
|
80
|
-
}
|
|
89
|
+
};
|
|
90
|
+
return res.json(disapprovedResponse);
|
|
81
91
|
}
|
|
82
92
|
if (parsed.maxVerifiedTime) {
|
|
83
93
|
const currentBlockNumber = await getCurrentBlockNumber(tasks.contract.api);
|
|
84
94
|
const blockTimeMs = getBlockTimeMs(tasks.contract.api);
|
|
85
95
|
const timeSinceCompletion = (currentBlockNumber - solution.completedAt) * blockTimeMs;
|
|
86
|
-
const verificationResponse = {
|
|
87
|
-
[ApiParams.status]: req.t('API.USER_NOT_VERIFIED'),
|
|
88
|
-
[ApiParams.verified]: false,
|
|
89
|
-
};
|
|
90
96
|
if (timeSinceCompletion > parsed.maxVerifiedTime) {
|
|
91
|
-
|
|
97
|
+
const expiredResponse = {
|
|
98
|
+
[ApiParams.status]: req.t('API.USER_NOT_VERIFIED_TIME_EXPIRED'),
|
|
99
|
+
[ApiParams.verified]: false,
|
|
100
|
+
};
|
|
101
|
+
tasks.logger.debug('Not verified - time run out');
|
|
102
|
+
return res.json(expiredResponse);
|
|
92
103
|
}
|
|
93
104
|
}
|
|
94
105
|
const isApproved = solution.status === CaptchaStatus.approved;
|
|
@@ -101,13 +112,13 @@ export function prosopoRouter(env) {
|
|
|
101
112
|
return res.json(response);
|
|
102
113
|
}
|
|
103
114
|
catch (err) {
|
|
104
|
-
return next(new ProsopoApiError('API.BAD_REQUEST', { context: {
|
|
115
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { code: 400, error: err } }));
|
|
105
116
|
}
|
|
106
117
|
});
|
|
107
118
|
router.post(ApiPaths.ServerPowCaptchaVerify, async (req, res, next) => {
|
|
108
119
|
try {
|
|
109
|
-
const { challenge, dapp } = ServerPowCaptchaVerifyRequestBody.parse(req.body);
|
|
110
|
-
const approved = await tasks.serverVerifyPowCaptchaSolution(dapp, challenge);
|
|
120
|
+
const { challenge, dapp, verifiedTimeout } = ServerPowCaptchaVerifyRequestBody.parse(req.body);
|
|
121
|
+
const approved = await tasks.serverVerifyPowCaptchaSolution(dapp, challenge, verifiedTimeout);
|
|
111
122
|
const verificationResponse = {
|
|
112
123
|
status: req.t(approved ? 'API.USER_VERIFIED' : 'API.USER_NOT_VERIFIED'),
|
|
113
124
|
[ApiParams.verified]: approved,
|
|
@@ -116,41 +127,36 @@ export function prosopoRouter(env) {
|
|
|
116
127
|
}
|
|
117
128
|
catch (err) {
|
|
118
129
|
tasks.logger.error(err);
|
|
119
|
-
return next(new ProsopoApiError('API.BAD_REQUEST', { context: {
|
|
130
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { code: 400, error: err } }));
|
|
120
131
|
}
|
|
121
132
|
});
|
|
122
133
|
router.post(ApiPaths.GetPowCaptchaChallenge, async (req, res, next) => {
|
|
123
134
|
try {
|
|
124
|
-
const {
|
|
125
|
-
if (typeof userAccount !== 'string' || typeof dappAccount !== 'string') {
|
|
126
|
-
throw new ProsopoApiError('API.BAD_REQUEST', {
|
|
127
|
-
context: { errorCode: 400, error: 'userAccount and dappAccount must be strings' },
|
|
128
|
-
});
|
|
129
|
-
}
|
|
135
|
+
const { user, dapp } = GetPowCaptchaChallengeRequestBody.parse(req.body);
|
|
130
136
|
const origin = req.headers.origin;
|
|
131
137
|
if (!origin) {
|
|
132
138
|
throw new ProsopoApiError('API.BAD_REQUEST', {
|
|
133
|
-
context: {
|
|
139
|
+
context: { code: 400, error: 'origin header not found' },
|
|
134
140
|
});
|
|
135
141
|
}
|
|
136
|
-
const challenge = await tasks.getPowCaptchaChallenge(
|
|
142
|
+
const challenge = await tasks.getPowCaptchaChallenge(user, dapp, origin);
|
|
137
143
|
return res.json(challenge);
|
|
138
144
|
}
|
|
139
145
|
catch (err) {
|
|
140
146
|
tasks.logger.error(err);
|
|
141
|
-
return next(new ProsopoApiError('API.BAD_REQUEST', { context: {
|
|
147
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { code: 400, error: err } }));
|
|
142
148
|
}
|
|
143
149
|
});
|
|
144
150
|
router.post(ApiPaths.SubmitPowCaptchaSolution, async (req, res, next) => {
|
|
145
151
|
try {
|
|
146
|
-
const { blockNumber, challenge, difficulty, signature, nonce } = SubmitPowCaptchaSolutionBody.parse(req.body);
|
|
147
|
-
const verified = await tasks.verifyPowCaptchaSolution(blockNumber, challenge, difficulty, signature, nonce);
|
|
152
|
+
const { blockNumber, challenge, difficulty, signature, nonce, verifiedTimeout } = SubmitPowCaptchaSolutionBody.parse(req.body);
|
|
153
|
+
const verified = await tasks.verifyPowCaptchaSolution(blockNumber, challenge, difficulty, signature, nonce, verifiedTimeout);
|
|
148
154
|
const response = { verified };
|
|
149
155
|
return res.json(response);
|
|
150
156
|
}
|
|
151
157
|
catch (err) {
|
|
152
158
|
tasks.logger.error(err);
|
|
153
|
-
return next(new ProsopoApiError('API.BAD_REQUEST', { context: {
|
|
159
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { code: 400, error: err } }));
|
|
154
160
|
}
|
|
155
161
|
});
|
|
156
162
|
router.post(ApiPaths.SubmitUserEvents, async (req, res, next) => {
|
|
@@ -161,7 +167,7 @@ export function prosopoRouter(env) {
|
|
|
161
167
|
}
|
|
162
168
|
catch (err) {
|
|
163
169
|
tasks.logger.error(err);
|
|
164
|
-
return next(new ProsopoApiError('API.BAD_REQUEST', { context: {
|
|
170
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { code: 400, error: err } }));
|
|
165
171
|
}
|
|
166
172
|
});
|
|
167
173
|
router.get(ApiPaths.GetProviderStatus, async (req, res, next) => {
|
|
@@ -171,7 +177,7 @@ export function prosopoRouter(env) {
|
|
|
171
177
|
}
|
|
172
178
|
catch (err) {
|
|
173
179
|
tasks.logger.error(err);
|
|
174
|
-
return next(new ProsopoApiError('API.BAD_REQUEST', { context: {
|
|
180
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { code: 400, error: err } }));
|
|
175
181
|
}
|
|
176
182
|
});
|
|
177
183
|
router.get(ApiPaths.GetProviderDetails, async (req, res, next) => {
|
|
@@ -181,9 +187,10 @@ export function prosopoRouter(env) {
|
|
|
181
187
|
}
|
|
182
188
|
catch (err) {
|
|
183
189
|
tasks.logger.error(err);
|
|
184
|
-
return next(new ProsopoApiError('API.BAD_REQUEST', { context: {
|
|
190
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { code: 400, error: err } }));
|
|
185
191
|
}
|
|
186
192
|
});
|
|
193
|
+
router.use(handleErrors);
|
|
187
194
|
return router;
|
|
188
195
|
}
|
|
189
196
|
//# sourceMappingURL=captcha.js.map
|
package/dist/api/captcha.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"AAaA,OAAO,EACH,SAAS,EACT,QAAQ,EACR,kBAAkB,EAElB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NextFunction, Request, Response } from 'express';
|
|
2
|
+
import { ProsopoApiError } from '@prosopo/common';
|
|
3
|
+
export declare const handleErrors: (err: ProsopoApiError | SyntaxError, request: Request, response: Response, next: NextFunction) => void;
|
|
4
|
+
//# sourceMappingURL=errorHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/api/errorHandler.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,EAAE,eAAe,EAAoB,MAAM,iBAAiB,CAAA;AAEnE,eAAO,MAAM,YAAY,QAChB,eAAe,GAAG,WAAW,WACzB,OAAO,YACN,QAAQ,QACZ,YAAY,SAcrB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ProsopoBaseError } from '@prosopo/common';
|
|
2
|
+
export const handleErrors = (err, request, response, next) => {
|
|
3
|
+
const code = 'code' in err ? err.code : 400;
|
|
4
|
+
while (err instanceof ProsopoBaseError && err.context && err.context.error) {
|
|
5
|
+
err = err.context.error;
|
|
6
|
+
}
|
|
7
|
+
let message = err.message;
|
|
8
|
+
try {
|
|
9
|
+
message = JSON.parse(err.message);
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
console.error(err);
|
|
13
|
+
}
|
|
14
|
+
response.writeHead(code, message, { 'content-type': 'application/json' }).end();
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=errorHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/api/errorHandler.ts"],"names":[],"mappings":"AAeA,OAAO,EAAmB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAG,CACxB,GAAkC,EAClC,OAAgB,EAChB,QAAkB,EAClB,IAAkB,EACpB,EAAE;IACA,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;IAE3C,OAAO,GAAG,YAAY,gBAAgB,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;QACxE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAA;KAC1B;IACD,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;IACzB,IAAI;QACA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;KACpC;IAAC,MAAM;QACJ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;IACD,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;AACnF,CAAC,CAAA"}
|
package/dist/cjs/api/captcha.cjs
CHANGED
|
@@ -5,6 +5,7 @@ const typesReturns = require("@prosopo/captcha-contract/types-returns");
|
|
|
5
5
|
const common = require("@prosopo/common");
|
|
6
6
|
const tasks = require("../tasks/tasks.cjs");
|
|
7
7
|
const contract = require("@prosopo/contract");
|
|
8
|
+
const errorHandler = require("./errorHandler.cjs");
|
|
8
9
|
const util = require("../util.cjs");
|
|
9
10
|
const datasets = require("@prosopo/datasets");
|
|
10
11
|
const address = require("@polkadot/util-crypto/address");
|
|
@@ -40,7 +41,7 @@ function prosopoRouter(env) {
|
|
|
40
41
|
return res.json(captchaResponse);
|
|
41
42
|
} catch (err) {
|
|
42
43
|
tasks$1.logger.error(err);
|
|
43
|
-
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { error: err,
|
|
44
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { error: err, code: 400 } }));
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
);
|
|
@@ -49,7 +50,7 @@ function prosopoRouter(env) {
|
|
|
49
50
|
try {
|
|
50
51
|
parsed = types.CaptchaSolutionBody.parse(req.body);
|
|
51
52
|
} catch (err) {
|
|
52
|
-
return next(new common.ProsopoApiError("CAPTCHA.PARSE_ERROR", { context: {
|
|
53
|
+
return next(new common.ProsopoApiError("CAPTCHA.PARSE_ERROR", { context: { code: 400, error: err } }));
|
|
53
54
|
}
|
|
54
55
|
try {
|
|
55
56
|
const result = await tasks$1.dappUserSolution(
|
|
@@ -66,7 +67,7 @@ function prosopoRouter(env) {
|
|
|
66
67
|
return res.json(returnValue);
|
|
67
68
|
} catch (err) {
|
|
68
69
|
tasks$1.logger.error(err);
|
|
69
|
-
return next(new common.ProsopoApiError("API.UNKNOWN", { context: {
|
|
70
|
+
return next(new common.ProsopoApiError("API.UNKNOWN", { context: { code: 400, error: err } }));
|
|
70
71
|
}
|
|
71
72
|
});
|
|
72
73
|
router.post(types.ApiPaths.VerifyCaptchaSolution, async (req, res, next) => {
|
|
@@ -74,26 +75,36 @@ function prosopoRouter(env) {
|
|
|
74
75
|
try {
|
|
75
76
|
parsed = types.VerifySolutionBody.parse(req.body);
|
|
76
77
|
} catch (err) {
|
|
77
|
-
return next(new common.ProsopoApiError("CAPTCHA.PARSE_ERROR", { context: {
|
|
78
|
+
return next(new common.ProsopoApiError("CAPTCHA.PARSE_ERROR", { context: { code: 400, error: err } }));
|
|
78
79
|
}
|
|
79
80
|
try {
|
|
80
81
|
const solution = await (parsed.commitmentId ? tasks$1.getDappUserCommitmentById(parsed.commitmentId) : tasks$1.getDappUserCommitmentByAccount(parsed.user));
|
|
81
82
|
if (!solution) {
|
|
82
|
-
|
|
83
|
+
tasks$1.logger.debug("Not verified - no solution found");
|
|
84
|
+
const noSolutionResponse = {
|
|
85
|
+
[types.ApiParams.status]: req.t("API.USER_NOT_VERIFIED_NO_SOLUTION"),
|
|
86
|
+
[types.ApiParams.verified]: false
|
|
87
|
+
};
|
|
88
|
+
return res.json(noSolutionResponse);
|
|
89
|
+
}
|
|
90
|
+
if (solution.status === typesReturns.CaptchaStatus.disapproved) {
|
|
91
|
+
const disapprovedResponse = {
|
|
83
92
|
[types.ApiParams.status]: req.t("API.USER_NOT_VERIFIED"),
|
|
84
93
|
[types.ApiParams.verified]: false
|
|
85
|
-
}
|
|
94
|
+
};
|
|
95
|
+
return res.json(disapprovedResponse);
|
|
86
96
|
}
|
|
87
97
|
if (parsed.maxVerifiedTime) {
|
|
88
98
|
const currentBlockNumber = await contract.getCurrentBlockNumber(tasks$1.contract.api);
|
|
89
99
|
const blockTimeMs = contract.getBlockTimeMs(tasks$1.contract.api);
|
|
90
100
|
const timeSinceCompletion = (currentBlockNumber - solution.completedAt) * blockTimeMs;
|
|
91
|
-
const verificationResponse = {
|
|
92
|
-
[types.ApiParams.status]: req.t("API.USER_NOT_VERIFIED"),
|
|
93
|
-
[types.ApiParams.verified]: false
|
|
94
|
-
};
|
|
95
101
|
if (timeSinceCompletion > parsed.maxVerifiedTime) {
|
|
96
|
-
|
|
102
|
+
const expiredResponse = {
|
|
103
|
+
[types.ApiParams.status]: req.t("API.USER_NOT_VERIFIED_TIME_EXPIRED"),
|
|
104
|
+
[types.ApiParams.verified]: false
|
|
105
|
+
};
|
|
106
|
+
tasks$1.logger.debug("Not verified - time run out");
|
|
107
|
+
return res.json(expiredResponse);
|
|
97
108
|
}
|
|
98
109
|
}
|
|
99
110
|
const isApproved = solution.status === typesReturns.CaptchaStatus.approved;
|
|
@@ -105,13 +116,13 @@ function prosopoRouter(env) {
|
|
|
105
116
|
};
|
|
106
117
|
return res.json(response);
|
|
107
118
|
} catch (err) {
|
|
108
|
-
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: {
|
|
119
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { code: 400, error: err } }));
|
|
109
120
|
}
|
|
110
121
|
});
|
|
111
122
|
router.post(types.ApiPaths.ServerPowCaptchaVerify, async (req, res, next) => {
|
|
112
123
|
try {
|
|
113
|
-
const { challenge, dapp } = types.ServerPowCaptchaVerifyRequestBody.parse(req.body);
|
|
114
|
-
const approved = await tasks$1.serverVerifyPowCaptchaSolution(dapp, challenge);
|
|
124
|
+
const { challenge, dapp, verifiedTimeout } = types.ServerPowCaptchaVerifyRequestBody.parse(req.body);
|
|
125
|
+
const approved = await tasks$1.serverVerifyPowCaptchaSolution(dapp, challenge, verifiedTimeout);
|
|
115
126
|
const verificationResponse = {
|
|
116
127
|
status: req.t(approved ? "API.USER_VERIFIED" : "API.USER_NOT_VERIFIED"),
|
|
117
128
|
[types.ApiParams.verified]: approved
|
|
@@ -119,41 +130,41 @@ function prosopoRouter(env) {
|
|
|
119
130
|
return res.json(verificationResponse);
|
|
120
131
|
} catch (err) {
|
|
121
132
|
tasks$1.logger.error(err);
|
|
122
|
-
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: {
|
|
133
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { code: 400, error: err } }));
|
|
123
134
|
}
|
|
124
135
|
});
|
|
125
136
|
router.post(types.ApiPaths.GetPowCaptchaChallenge, async (req, res, next) => {
|
|
126
137
|
try {
|
|
127
|
-
const {
|
|
128
|
-
if (typeof userAccount !== "string" || typeof dappAccount !== "string") {
|
|
129
|
-
throw new common.ProsopoApiError("API.BAD_REQUEST", {
|
|
130
|
-
context: { errorCode: 400, error: "userAccount and dappAccount must be strings" }
|
|
131
|
-
});
|
|
132
|
-
}
|
|
138
|
+
const { user, dapp } = types.GetPowCaptchaChallengeRequestBody.parse(req.body);
|
|
133
139
|
const origin = req.headers.origin;
|
|
134
140
|
if (!origin) {
|
|
135
141
|
throw new common.ProsopoApiError("API.BAD_REQUEST", {
|
|
136
|
-
context: {
|
|
142
|
+
context: { code: 400, error: "origin header not found" }
|
|
137
143
|
});
|
|
138
144
|
}
|
|
139
|
-
const challenge = await tasks$1.getPowCaptchaChallenge(
|
|
145
|
+
const challenge = await tasks$1.getPowCaptchaChallenge(user, dapp, origin);
|
|
140
146
|
return res.json(challenge);
|
|
141
147
|
} catch (err) {
|
|
142
148
|
tasks$1.logger.error(err);
|
|
143
|
-
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: {
|
|
149
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { code: 400, error: err } }));
|
|
144
150
|
}
|
|
145
151
|
});
|
|
146
152
|
router.post(types.ApiPaths.SubmitPowCaptchaSolution, async (req, res, next) => {
|
|
147
153
|
try {
|
|
148
|
-
const { blockNumber, challenge, difficulty, signature, nonce } = types.SubmitPowCaptchaSolutionBody.parse(
|
|
149
|
-
|
|
154
|
+
const { blockNumber, challenge, difficulty, signature, nonce, verifiedTimeout } = types.SubmitPowCaptchaSolutionBody.parse(req.body);
|
|
155
|
+
const verified = await tasks$1.verifyPowCaptchaSolution(
|
|
156
|
+
blockNumber,
|
|
157
|
+
challenge,
|
|
158
|
+
difficulty,
|
|
159
|
+
signature,
|
|
160
|
+
nonce,
|
|
161
|
+
verifiedTimeout
|
|
150
162
|
);
|
|
151
|
-
const verified = await tasks$1.verifyPowCaptchaSolution(blockNumber, challenge, difficulty, signature, nonce);
|
|
152
163
|
const response = { verified };
|
|
153
164
|
return res.json(response);
|
|
154
165
|
} catch (err) {
|
|
155
166
|
tasks$1.logger.error(err);
|
|
156
|
-
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: {
|
|
167
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { code: 400, error: err } }));
|
|
157
168
|
}
|
|
158
169
|
});
|
|
159
170
|
router.post(types.ApiPaths.SubmitUserEvents, async (req, res, next) => {
|
|
@@ -163,7 +174,7 @@ function prosopoRouter(env) {
|
|
|
163
174
|
return res.json({ status: "success" });
|
|
164
175
|
} catch (err) {
|
|
165
176
|
tasks$1.logger.error(err);
|
|
166
|
-
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: {
|
|
177
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { code: 400, error: err } }));
|
|
167
178
|
}
|
|
168
179
|
});
|
|
169
180
|
router.get(types.ApiPaths.GetProviderStatus, async (req, res, next) => {
|
|
@@ -172,7 +183,7 @@ function prosopoRouter(env) {
|
|
|
172
183
|
return res.json({ status });
|
|
173
184
|
} catch (err) {
|
|
174
185
|
tasks$1.logger.error(err);
|
|
175
|
-
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: {
|
|
186
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { code: 400, error: err } }));
|
|
176
187
|
}
|
|
177
188
|
});
|
|
178
189
|
router.get(types.ApiPaths.GetProviderDetails, async (req, res, next) => {
|
|
@@ -181,9 +192,10 @@ function prosopoRouter(env) {
|
|
|
181
192
|
return res.json({ version: util$1.version, ...details });
|
|
182
193
|
} catch (err) {
|
|
183
194
|
tasks$1.logger.error(err);
|
|
184
|
-
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: {
|
|
195
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { code: 400, error: err } }));
|
|
185
196
|
}
|
|
186
197
|
});
|
|
198
|
+
router.use(errorHandler.handleErrors);
|
|
187
199
|
return router;
|
|
188
200
|
}
|
|
189
201
|
exports.prosopoRouter = prosopoRouter;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const common = require("@prosopo/common");
|
|
4
|
+
const handleErrors = (err, request, response, next) => {
|
|
5
|
+
const code = "code" in err ? err.code : 400;
|
|
6
|
+
while (err instanceof common.ProsopoBaseError && err.context && err.context.error) {
|
|
7
|
+
err = err.context.error;
|
|
8
|
+
}
|
|
9
|
+
let message = err.message;
|
|
10
|
+
try {
|
|
11
|
+
message = JSON.parse(err.message);
|
|
12
|
+
} catch {
|
|
13
|
+
console.error(err);
|
|
14
|
+
}
|
|
15
|
+
response.writeHead(code, message, { "content-type": "application/json" }).end();
|
|
16
|
+
};
|
|
17
|
+
exports.handleErrors = handleErrors;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -5,6 +5,7 @@ const util = require("./util.cjs");
|
|
|
5
5
|
require("./batch/index.cjs");
|
|
6
6
|
const captcha = require("./api/captcha.cjs");
|
|
7
7
|
const admin = require("./api/admin.cjs");
|
|
8
|
+
const errorHandler = require("./api/errorHandler.cjs");
|
|
8
9
|
const tasks = require("./tasks/tasks.cjs");
|
|
9
10
|
const commitments = require("./batch/commitments.cjs");
|
|
10
11
|
exports.checkIfTaskIsRunning = util.checkIfTaskIsRunning;
|
|
@@ -14,5 +15,6 @@ exports.promiseQueue = util.promiseQueue;
|
|
|
14
15
|
exports.shuffleArray = util.shuffleArray;
|
|
15
16
|
exports.prosopoRouter = captcha.prosopoRouter;
|
|
16
17
|
exports.prosopoAdminRouter = admin.prosopoAdminRouter;
|
|
18
|
+
exports.handleErrors = errorHandler.handleErrors;
|
|
17
19
|
exports.Tasks = tasks.Tasks;
|
|
18
20
|
exports.BatchCommitmentsTask = commitments.BatchCommitmentsTask;
|
package/dist/cjs/tasks/tasks.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const types = require("@prosopo/types");
|
|
3
4
|
const datasets = require("@prosopo/datasets");
|
|
4
5
|
const typesReturns = require("@prosopo/captcha-contract/types-returns");
|
|
5
6
|
const common = require("@prosopo/common");
|
|
@@ -116,17 +117,16 @@ class Tasks {
|
|
|
116
117
|
* @param {string} difficulty - how many leading zeroes the solution must have
|
|
117
118
|
* @param {string} signature - proof that the Provider provided the challenge
|
|
118
119
|
* @param {string} nonce - the string that the user has found that satisfies the PoW challenge
|
|
120
|
+
* @param {number} timeout - the time in milliseconds since the Provider was selected to provide the PoW captcha
|
|
119
121
|
*/
|
|
120
|
-
async verifyPowCaptchaSolution(blockNumber, challenge, difficulty, signature$1, nonce) {
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
if (blockNumber < latestBlockNumber - 5) {
|
|
122
|
+
async verifyPowCaptchaSolution(blockNumber, challenge, difficulty, signature$1, nonce, timeout) {
|
|
123
|
+
const recent = contract.verifyRecency(this.contract.api, blockNumber, timeout);
|
|
124
|
+
if (!recent) {
|
|
124
125
|
throw new common.ProsopoContractError("CONTRACT.INVALID_BLOCKHASH", {
|
|
125
126
|
context: {
|
|
126
|
-
ERROR:
|
|
127
|
+
ERROR: `Block in which the Provider was selected must be within the last ${timeout / 1e3} seconds`,
|
|
127
128
|
failedFuncName: this.verifyPowCaptchaSolution.name,
|
|
128
|
-
blockNumber
|
|
129
|
-
latestBlockNumber
|
|
129
|
+
blockNumber
|
|
130
130
|
}
|
|
131
131
|
});
|
|
132
132
|
}
|
|
@@ -155,7 +155,7 @@ class Tasks {
|
|
|
155
155
|
await this.db.storePowCaptchaRecord(challenge, false);
|
|
156
156
|
return true;
|
|
157
157
|
}
|
|
158
|
-
async serverVerifyPowCaptchaSolution(dappAccount, challenge) {
|
|
158
|
+
async serverVerifyPowCaptchaSolution(dappAccount, challenge, timeout) {
|
|
159
159
|
const challengeRecord = await this.db.getPowCaptchaRecordByChallenge(challenge);
|
|
160
160
|
if (!challengeRecord) {
|
|
161
161
|
throw new common.ProsopoEnvError("DATABASE.CAPTCHA_GET_FAILED", {
|
|
@@ -175,21 +175,20 @@ class Tasks {
|
|
|
175
175
|
}
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
-
const latestHeader = await this.contract.api.rpc.chain.getHeader();
|
|
179
|
-
const latestBlockNumber = latestHeader.number.toNumber();
|
|
180
178
|
if (!blocknumber) {
|
|
181
179
|
throw new common.ProsopoContractError("CONTRACT.INVALID_BLOCKHASH", {
|
|
182
180
|
context: {
|
|
183
|
-
ERROR: "
|
|
181
|
+
ERROR: "Block number not provided",
|
|
184
182
|
failedFuncName: this.verifyPowCaptchaSolution.name,
|
|
185
183
|
blocknumber
|
|
186
184
|
}
|
|
187
185
|
});
|
|
188
186
|
}
|
|
189
|
-
|
|
187
|
+
const recent = contract.verifyRecency(this.contract.api, parseInt(blocknumber), timeout);
|
|
188
|
+
if (!recent) {
|
|
190
189
|
throw new common.ProsopoContractError("CONTRACT.INVALID_BLOCKHASH", {
|
|
191
190
|
context: {
|
|
192
|
-
ERROR:
|
|
191
|
+
ERROR: `Block in which the Provider was selected must be within the last ${timeout / 1e3} seconds`,
|
|
193
192
|
failedFuncName: this.verifyPowCaptchaSolution.name,
|
|
194
193
|
blocknumber
|
|
195
194
|
}
|
|
@@ -236,6 +235,7 @@ class Tasks {
|
|
|
236
235
|
const userSignature = hex.hexToU8a(signature$1);
|
|
237
236
|
const blockNumber = await contract.getCurrentBlockNumber(this.contract.api);
|
|
238
237
|
if (pendingRequest) {
|
|
238
|
+
await this.db.updateDappUserPendingStatus(requestHash);
|
|
239
239
|
const commit = {
|
|
240
240
|
id: commitmentId,
|
|
241
241
|
userAccount,
|
|
@@ -386,7 +386,7 @@ class Tasks {
|
|
|
386
386
|
salt
|
|
387
387
|
);
|
|
388
388
|
const currentTime = Date.now();
|
|
389
|
-
const timeLimit = captchas.map((captcha) => captcha.captcha.timeLimitMs ||
|
|
389
|
+
const timeLimit = captchas.map((captcha) => captcha.captcha.timeLimitMs || types.DEFAULT_IMAGE_CAPTCHA_TIMEOUT).reduce((a, b) => a + b, 0);
|
|
390
390
|
const deadlineTs = timeLimit + currentTime;
|
|
391
391
|
const currentBlockNumber = await contract.getCurrentBlockNumber(this.contract.api);
|
|
392
392
|
await this.db.storeDappUserPending(userAccount, requestHash, salt, deadlineTs, currentBlockNumber);
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
|
package/dist/tasks/tasks.d.ts
CHANGED
|
@@ -19,8 +19,8 @@ export declare class Tasks {
|
|
|
19
19
|
providerSetDataset(datasetRaw: DatasetRaw): Promise<SubmittableResult | undefined>;
|
|
20
20
|
getCaptchaWithProof(datasetId: Hash, solved: boolean, size: number): Promise<CaptchaWithProof[]>;
|
|
21
21
|
getPowCaptchaChallenge(userAccount: string, dappAccount: string, origin: string): Promise<PoWCaptcha>;
|
|
22
|
-
verifyPowCaptchaSolution(blockNumber: number, challenge: string, difficulty: number, signature: string, nonce: number): Promise<boolean>;
|
|
23
|
-
serverVerifyPowCaptchaSolution(dappAccount: string, challenge: string): Promise<boolean>;
|
|
22
|
+
verifyPowCaptchaSolution(blockNumber: number, challenge: string, difficulty: number, signature: string, nonce: number, timeout: number): Promise<boolean>;
|
|
23
|
+
serverVerifyPowCaptchaSolution(dappAccount: string, challenge: string, timeout: number): Promise<boolean>;
|
|
24
24
|
dappUserSolution(userAccount: string, dappAccount: string, requestHash: string, captchas: CaptchaSolution[], signature: string): Promise<DappUserSolutionResult>;
|
|
25
25
|
dappIsActive(dappAccount: string): Promise<boolean>;
|
|
26
26
|
providerStatus(): Promise<ProviderRegistered>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"AAaA,OAAO,EAAa,MAAM,EAAsC,MAAM,4BAA4B,CAAA;AAClG,OAAO,EACH,OAAO,EACP,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/tasks.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { DEFAULT_IMAGE_CAPTCHA_TIMEOUT, } from '@prosopo/types';
|
|
1
2
|
import { CaptchaMerkleTree, buildDataset, compareCaptchaSolutions, computeCaptchaSolutionHash, computePendingRequestHash, parseAndSortCaptchaSolutions, parseCaptchaDataset, } from '@prosopo/datasets';
|
|
2
3
|
import { CaptchaStatus } from '@prosopo/captcha-contract/types-returns';
|
|
3
4
|
import { ProsopoContractError, ProsopoEnvError, getLogger } from '@prosopo/common';
|
|
4
|
-
import { getCurrentBlockNumber, wrapQuery } from '@prosopo/contract';
|
|
5
|
+
import { getCurrentBlockNumber, verifyRecency, wrapQuery } from '@prosopo/contract';
|
|
5
6
|
import { at } from '@prosopo/util';
|
|
6
7
|
import { hexToU8a } from '@polkadot/util/hex';
|
|
7
8
|
import { randomAsHex } from '@polkadot/util-crypto/random';
|
|
@@ -92,16 +93,14 @@ export class Tasks {
|
|
|
92
93
|
const signature = u8aToHex(this.contract.pair.sign(stringToHex(challenge)));
|
|
93
94
|
return { challenge, difficulty, signature };
|
|
94
95
|
}
|
|
95
|
-
async verifyPowCaptchaSolution(blockNumber, challenge, difficulty, signature, nonce) {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
if (blockNumber < latestBlockNumber - 5) {
|
|
96
|
+
async verifyPowCaptchaSolution(blockNumber, challenge, difficulty, signature, nonce, timeout) {
|
|
97
|
+
const recent = verifyRecency(this.contract.api, blockNumber, timeout);
|
|
98
|
+
if (!recent) {
|
|
99
99
|
throw new ProsopoContractError('CONTRACT.INVALID_BLOCKHASH', {
|
|
100
100
|
context: {
|
|
101
|
-
ERROR:
|
|
101
|
+
ERROR: `Block in which the Provider was selected must be within the last ${timeout / 1000} seconds`,
|
|
102
102
|
failedFuncName: this.verifyPowCaptchaSolution.name,
|
|
103
103
|
blockNumber,
|
|
104
|
-
latestBlockNumber,
|
|
105
104
|
},
|
|
106
105
|
});
|
|
107
106
|
}
|
|
@@ -133,7 +132,7 @@ export class Tasks {
|
|
|
133
132
|
await this.db.storePowCaptchaRecord(challenge, false);
|
|
134
133
|
return true;
|
|
135
134
|
}
|
|
136
|
-
async serverVerifyPowCaptchaSolution(dappAccount, challenge) {
|
|
135
|
+
async serverVerifyPowCaptchaSolution(dappAccount, challenge, timeout) {
|
|
137
136
|
const challengeRecord = await this.db.getPowCaptchaRecordByChallenge(challenge);
|
|
138
137
|
if (!challengeRecord) {
|
|
139
138
|
throw new ProsopoEnvError('DATABASE.CAPTCHA_GET_FAILED', {
|
|
@@ -153,21 +152,20 @@ export class Tasks {
|
|
|
153
152
|
},
|
|
154
153
|
});
|
|
155
154
|
}
|
|
156
|
-
const latestHeader = await this.contract.api.rpc.chain.getHeader();
|
|
157
|
-
const latestBlockNumber = latestHeader.number.toNumber();
|
|
158
155
|
if (!blocknumber) {
|
|
159
156
|
throw new ProsopoContractError('CONTRACT.INVALID_BLOCKHASH', {
|
|
160
157
|
context: {
|
|
161
|
-
ERROR: '
|
|
158
|
+
ERROR: 'Block number not provided',
|
|
162
159
|
failedFuncName: this.verifyPowCaptchaSolution.name,
|
|
163
160
|
blocknumber,
|
|
164
161
|
},
|
|
165
162
|
});
|
|
166
163
|
}
|
|
167
|
-
|
|
164
|
+
const recent = verifyRecency(this.contract.api, parseInt(blocknumber), timeout);
|
|
165
|
+
if (!recent) {
|
|
168
166
|
throw new ProsopoContractError('CONTRACT.INVALID_BLOCKHASH', {
|
|
169
167
|
context: {
|
|
170
|
-
ERROR:
|
|
168
|
+
ERROR: `Block in which the Provider was selected must be within the last ${timeout / 1000} seconds`,
|
|
171
169
|
failedFuncName: this.verifyPowCaptchaSolution.name,
|
|
172
170
|
blocknumber,
|
|
173
171
|
},
|
|
@@ -202,6 +200,7 @@ export class Tasks {
|
|
|
202
200
|
const userSignature = hexToU8a(signature);
|
|
203
201
|
const blockNumber = await getCurrentBlockNumber(this.contract.api);
|
|
204
202
|
if (pendingRequest) {
|
|
203
|
+
await this.db.updateDappUserPendingStatus(requestHash);
|
|
205
204
|
const commit = {
|
|
206
205
|
id: commitmentId,
|
|
207
206
|
userAccount: userAccount,
|
|
@@ -319,7 +318,9 @@ export class Tasks {
|
|
|
319
318
|
const salt = randomAsHex();
|
|
320
319
|
const requestHash = computePendingRequestHash(captchas.map((c) => c.captcha.captchaId), userAccount, salt);
|
|
321
320
|
const currentTime = Date.now();
|
|
322
|
-
const timeLimit = captchas
|
|
321
|
+
const timeLimit = captchas
|
|
322
|
+
.map((captcha) => captcha.captcha.timeLimitMs || DEFAULT_IMAGE_CAPTCHA_TIMEOUT)
|
|
323
|
+
.reduce((a, b) => a + b, 0);
|
|
323
324
|
const deadlineTs = timeLimit + currentTime;
|
|
324
325
|
const currentBlockNumber = await getCurrentBlockNumber(this.contract.api);
|
|
325
326
|
await this.db.storeDappUserPending(userAccount, requestHash, salt, deadlineTs, currentBlockNumber);
|
package/dist/tasks/tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/provider",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.41",
|
|
4
4
|
"author": "PROSOPO LIMITED <info@prosopo.io>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"test": "npx vitest run --config ./vite.test.config.ts",
|
|
25
25
|
"mnemonic": "ts-node ./scripts/generateMnemonic.ts",
|
|
26
26
|
"coverage": "npx c8 npm run test",
|
|
27
|
-
"eslint": "npx eslint . --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
|
|
27
|
+
"eslint": "npx eslint . --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore --quiet",
|
|
28
28
|
"eslint:fix": "npm run eslint -- --fix",
|
|
29
29
|
"prettier": "npx prettier . --check --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
|
|
30
30
|
"prettier:fix": "npm run prettier -- --write",
|
|
@@ -32,28 +32,31 @@
|
|
|
32
32
|
"lint:fix": "npm run eslint:fix && npm run prettier:fix"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
+
"@noble/hashes": "^1.3.3",
|
|
35
36
|
"@polkadot/api": "10.13.1",
|
|
37
|
+
"@polkadot/api-contract": "10.13.1",
|
|
36
38
|
"@polkadot/keyring": "12.6.2",
|
|
37
39
|
"@polkadot/types": "10.13.1",
|
|
40
|
+
"@polkadot/types-create": "10.13.1",
|
|
41
|
+
"@polkadot/types-codec": "10.13.1",
|
|
38
42
|
"@polkadot/util": "12.6.2",
|
|
39
43
|
"@polkadot/util-crypto": "12.6.2",
|
|
40
|
-
"@prosopo/captcha-contract": "0.3.
|
|
41
|
-
"@prosopo/common": "0.3.
|
|
42
|
-
"@prosopo/config": "0.3.
|
|
43
|
-
"@prosopo/contract": "0.3.
|
|
44
|
-
"@prosopo/database": "0.3.
|
|
45
|
-
"@prosopo/datasets": "0.3.
|
|
46
|
-
"@prosopo/env": "0.3.
|
|
47
|
-
"@prosopo/tx": "0.3.
|
|
48
|
-
"@prosopo/types": "
|
|
49
|
-
"@prosopo/types
|
|
50
|
-
"@prosopo/types-
|
|
44
|
+
"@prosopo/captcha-contract": "0.3.41",
|
|
45
|
+
"@prosopo/common": "0.3.41",
|
|
46
|
+
"@prosopo/config": "0.3.41",
|
|
47
|
+
"@prosopo/contract": "0.3.41",
|
|
48
|
+
"@prosopo/database": "0.3.41",
|
|
49
|
+
"@prosopo/datasets": "0.3.41",
|
|
50
|
+
"@prosopo/env": "0.3.41",
|
|
51
|
+
"@prosopo/tx": "0.3.41",
|
|
52
|
+
"@prosopo/typechain-types": "1.1.15",
|
|
53
|
+
"@prosopo/types": "0.3.41",
|
|
54
|
+
"@prosopo/types-database": "0.3.41",
|
|
55
|
+
"@prosopo/types-env": "0.3.41",
|
|
56
|
+
"@prosopo/util": "0.3.41",
|
|
51
57
|
"cron": "^2.1.0",
|
|
52
|
-
"cron-parser": "^4.5.0",
|
|
53
58
|
"express": "^4.18.1",
|
|
54
|
-
"
|
|
55
|
-
"yargs": "^17.5.1",
|
|
56
|
-
"yargs-parser": "^21.0.1"
|
|
59
|
+
"zod": "^3.22.3"
|
|
57
60
|
},
|
|
58
61
|
"devDependencies": {
|
|
59
62
|
"@types/chai-as-promised": "^7.1.5",
|
|
@@ -68,7 +71,9 @@
|
|
|
68
71
|
"fs-extra": "^10.1.0",
|
|
69
72
|
"sinon": "^15.2.0",
|
|
70
73
|
"tslib": "2.6.2",
|
|
71
|
-
"typescript": "5.1.6"
|
|
74
|
+
"typescript": "5.1.6",
|
|
75
|
+
"vite": "^5.1.7",
|
|
76
|
+
"vitest": "^1.3.1"
|
|
72
77
|
},
|
|
73
78
|
"repository": {
|
|
74
79
|
"type": "git",
|