@prosopo/provider 0.2.24 → 0.2.29
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 +19 -12
- package/dist/api/captcha.js.map +1 -1
- package/dist/batch/commitments.d.ts.map +1 -1
- package/dist/batch/commitments.js +3 -2
- package/dist/batch/commitments.js.map +1 -1
- package/dist/cjs/api/captcha.cjs +20 -13
- package/dist/cjs/batch/commitments.cjs +2 -1
- package/dist/cjs/tasks/calculateSolutions.cjs +1 -1
- package/dist/cjs/tasks/tasks.cjs +74 -55
- package/dist/cjs/util.cjs +2 -2
- package/dist/tasks/calculateSolutions.d.ts.map +1 -1
- package/dist/tasks/calculateSolutions.js +1 -1
- package/dist/tasks/calculateSolutions.js.map +1 -1
- package/dist/tasks/tasks.d.ts +2 -0
- package/dist/tasks/tasks.d.ts.map +1 -1
- package/dist/tasks/tasks.js +73 -20
- package/dist/tasks/tasks.js.map +1 -1
- package/dist/tests/dataUtils/DatabasePopulator.d.ts.map +1 -1
- package/dist/tests/dataUtils/DatabasePopulator.js +4 -4
- package/dist/tests/dataUtils/DatabasePopulator.js.map +1 -1
- package/dist/tests/dataUtils/funds.d.ts.map +1 -1
- package/dist/tests/dataUtils/funds.js +4 -6
- package/dist/tests/dataUtils/funds.js.map +1 -1
- package/dist/tests/dataUtils/populateDatabase.d.ts.map +1 -1
- package/dist/tests/dataUtils/populateDatabase.js +7 -5
- package/dist/tests/dataUtils/populateDatabase.js.map +1 -1
- package/dist/tests/tasks/tasks.test.d.ts.map +1 -1
- package/dist/tests/tasks/tasks.test.js +4 -4
- package/dist/tests/tasks/tasks.test.js.map +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +3 -3
- package/dist/util.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAKxD,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAQzC,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAKxD,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAQzC,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAmK9D"}
|
package/dist/api/captcha.js
CHANGED
|
@@ -15,7 +15,9 @@ export function prosopoRouter(env) {
|
|
|
15
15
|
const { blockNumber, datasetId, user, dapp } = CaptchaRequestBody.parse(req.params);
|
|
16
16
|
const api = env.api;
|
|
17
17
|
if (api === undefined) {
|
|
18
|
-
throw new
|
|
18
|
+
throw new ProsopoApiError('DEVELOPER.METHOD_NOT_IMPLEMENTED', {
|
|
19
|
+
context: { error: 'api not setup', env },
|
|
20
|
+
});
|
|
19
21
|
}
|
|
20
22
|
validateAddress(user, false, api.registry.chainSS58);
|
|
21
23
|
const blockNumberParsed = parseBlockNumber(blockNumber);
|
|
@@ -34,7 +36,7 @@ export function prosopoRouter(env) {
|
|
|
34
36
|
return res.json(captchaResponse);
|
|
35
37
|
}
|
|
36
38
|
catch (err) {
|
|
37
|
-
return next(new ProsopoApiError(
|
|
39
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { error: err, errorCode: 400 } }));
|
|
38
40
|
}
|
|
39
41
|
});
|
|
40
42
|
router.post(ApiPaths.SubmitCaptchaSolution, async (req, res, next) => {
|
|
@@ -43,7 +45,7 @@ export function prosopoRouter(env) {
|
|
|
43
45
|
parsed = CaptchaSolutionBody.parse(req.body);
|
|
44
46
|
}
|
|
45
47
|
catch (err) {
|
|
46
|
-
return next(new ProsopoApiError(
|
|
48
|
+
return next(new ProsopoApiError('CAPTCHA.PARSE_ERROR', { context: { errorCode: 400, error: err } }));
|
|
47
49
|
}
|
|
48
50
|
try {
|
|
49
51
|
const result = await tasks.dappUserSolution(parsed[ApiParams.user], parsed[ApiParams.dapp], parsed[ApiParams.requestHash], parsed[ApiParams.captchas], parsed[ApiParams.signature]);
|
|
@@ -53,7 +55,7 @@ export function prosopoRouter(env) {
|
|
|
53
55
|
});
|
|
54
56
|
}
|
|
55
57
|
catch (err) {
|
|
56
|
-
return next(new ProsopoApiError(
|
|
58
|
+
return next(new ProsopoApiError('API.UNKNOWN', { context: { errorCode: 400, error: err } }));
|
|
57
59
|
}
|
|
58
60
|
});
|
|
59
61
|
router.post(ApiPaths.VerifyCaptchaSolution, async (req, res, next) => {
|
|
@@ -62,7 +64,7 @@ export function prosopoRouter(env) {
|
|
|
62
64
|
parsed = VerifySolutionBody.parse(req.body);
|
|
63
65
|
}
|
|
64
66
|
catch (err) {
|
|
65
|
-
return next(new ProsopoApiError(
|
|
67
|
+
return next(new ProsopoApiError('CAPTCHA.PARSE_ERROR', { context: { errorCode: 400, error: err } }));
|
|
66
68
|
}
|
|
67
69
|
try {
|
|
68
70
|
const solution = await (parsed.commitmentId
|
|
@@ -71,18 +73,23 @@ export function prosopoRouter(env) {
|
|
|
71
73
|
if (!solution) {
|
|
72
74
|
return res.json({ status: req.t('API.USER_NOT_VERIFIED'), solutionApproved: false });
|
|
73
75
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
if (parsed.maxVerifiedTime) {
|
|
77
|
+
const currentBlockNumber = await tasks.getCurrentBlockNumber();
|
|
78
|
+
const blockTimeMs = await tasks.getBlockTimeMs();
|
|
79
|
+
const timeSinceCompletion = (currentBlockNumber - solution.completedAt) * blockTimeMs;
|
|
80
|
+
if (timeSinceCompletion > parsed.maxVerifiedTime) {
|
|
81
|
+
return res.json({ status: req.t('API.USER_NOT_VERIFIED'), solutionApproved: false });
|
|
82
|
+
}
|
|
77
83
|
}
|
|
78
84
|
const isApproved = solution.status === CaptchaStatus.approved;
|
|
79
85
|
return res.json({
|
|
80
86
|
status: req.t(isApproved ? 'API.USER_VERIFIED' : 'API.USER_NOT_VERIFIED'),
|
|
81
87
|
solutionApproved: isApproved,
|
|
88
|
+
commitmentId: solution.id,
|
|
82
89
|
});
|
|
83
90
|
}
|
|
84
91
|
catch (err) {
|
|
85
|
-
return next(new ProsopoApiError(
|
|
92
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { errorCode: 400, error: err } }));
|
|
86
93
|
}
|
|
87
94
|
});
|
|
88
95
|
router.post(ApiPaths.SubmitUserEvents, async (req, res, next) => {
|
|
@@ -92,7 +99,7 @@ export function prosopoRouter(env) {
|
|
|
92
99
|
return res.json({ status: 'success' });
|
|
93
100
|
}
|
|
94
101
|
catch (err) {
|
|
95
|
-
return next(new ProsopoApiError(
|
|
102
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { errorCode: 400, error: err } }));
|
|
96
103
|
}
|
|
97
104
|
});
|
|
98
105
|
router.get(ApiPaths.GetProviderStatus, async (req, res, next) => {
|
|
@@ -101,7 +108,7 @@ export function prosopoRouter(env) {
|
|
|
101
108
|
return res.json({ status });
|
|
102
109
|
}
|
|
103
110
|
catch (err) {
|
|
104
|
-
return next(new ProsopoApiError(
|
|
111
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { errorCode: 400, error: err } }));
|
|
105
112
|
}
|
|
106
113
|
});
|
|
107
114
|
router.get(ApiPaths.GetProviderDetails, async (req, res, next) => {
|
|
@@ -110,7 +117,7 @@ export function prosopoRouter(env) {
|
|
|
110
117
|
return res.json(details);
|
|
111
118
|
}
|
|
112
119
|
catch (err) {
|
|
113
|
-
return next(new ProsopoApiError(
|
|
120
|
+
return next(new ProsopoApiError('API.BAD_REQUEST', { context: { errorCode: 400, error: err } }));
|
|
114
121
|
}
|
|
115
122
|
});
|
|
116
123
|
return router;
|
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,EAER,mBAAmB,EAGnB,kBAAkB,GACrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,OAAmB,MAAM,SAAS,CAAA;AAQzC,MAAM,UAAU,aAAa,CAAC,GAAwB;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IAS5B,MAAM,CAAC,GAAG,CACN,GAAG,QAAQ,CAAC,mBAAmB,KAAK,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW,EAAE,EACzH,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI;YACA,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACnF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;YACnB,IAAI,GAAG,KAAK,SAAS,EAAE;gBACnB,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitments.d.ts","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAA;AACtC,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,
|
|
1
|
+
{"version":3,"file":"commitments.d.ts","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAA;AACtC,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,EAAoC,MAAM,mBAAmB,CAAA;AAE5F,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAOrD,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,IAAI,CAAC;IAuDpB,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,6 +1,7 @@
|
|
|
1
1
|
import { BN } from '@polkadot/util/bn';
|
|
2
2
|
import { ScheduledTaskNames, ScheduledTaskStatus } from '@prosopo/types';
|
|
3
|
-
import { ProsopoContractError
|
|
3
|
+
import { ProsopoContractError } from '@prosopo/common';
|
|
4
|
+
import { batch, encodeStringArgs, oneUnit } from '@prosopo/contract';
|
|
4
5
|
import { checkIfTaskIsRunning } from '../util.js';
|
|
5
6
|
import { randomAsHex } from '@polkadot/util-crypto/random';
|
|
6
7
|
const BN_TEN_THOUSAND = new BN(10000);
|
|
@@ -91,7 +92,7 @@ export class BatchCommitmentsTask {
|
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
94
|
if (!extrinsic) {
|
|
94
|
-
throw new ProsopoContractError('No extrinsics created');
|
|
95
|
+
throw new ProsopoContractError('CONTRACT.TX_ERROR', { context: { error: 'No extrinsics created' } });
|
|
95
96
|
}
|
|
96
97
|
txs.push(extrinsic);
|
|
97
98
|
this.logger.info(`${txs.length} transactions will be batched`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAA2C,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/api/captcha.cjs
CHANGED
|
@@ -18,7 +18,9 @@ function prosopoRouter(env) {
|
|
|
18
18
|
const { blockNumber, datasetId, user, dapp } = types.CaptchaRequestBody.parse(req.params);
|
|
19
19
|
const api = env.api;
|
|
20
20
|
if (api === void 0) {
|
|
21
|
-
throw new
|
|
21
|
+
throw new common.ProsopoApiError("DEVELOPER.METHOD_NOT_IMPLEMENTED", {
|
|
22
|
+
context: { error: "api not setup", env }
|
|
23
|
+
});
|
|
22
24
|
}
|
|
23
25
|
address.validateAddress(user, false, api.registry.chainSS58);
|
|
24
26
|
const blockNumberParsed = util.parseBlockNumber(blockNumber);
|
|
@@ -36,7 +38,7 @@ function prosopoRouter(env) {
|
|
|
36
38
|
};
|
|
37
39
|
return res.json(captchaResponse);
|
|
38
40
|
} catch (err) {
|
|
39
|
-
return next(new common.ProsopoApiError(
|
|
41
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { error: err, errorCode: 400 } }));
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
);
|
|
@@ -45,7 +47,7 @@ function prosopoRouter(env) {
|
|
|
45
47
|
try {
|
|
46
48
|
parsed = types.CaptchaSolutionBody.parse(req.body);
|
|
47
49
|
} catch (err) {
|
|
48
|
-
return next(new common.ProsopoApiError(
|
|
50
|
+
return next(new common.ProsopoApiError("CAPTCHA.PARSE_ERROR", { context: { errorCode: 400, error: err } }));
|
|
49
51
|
}
|
|
50
52
|
try {
|
|
51
53
|
const result = await tasks$1.dappUserSolution(
|
|
@@ -60,7 +62,7 @@ function prosopoRouter(env) {
|
|
|
60
62
|
...result
|
|
61
63
|
});
|
|
62
64
|
} catch (err) {
|
|
63
|
-
return next(new common.ProsopoApiError(
|
|
65
|
+
return next(new common.ProsopoApiError("API.UNKNOWN", { context: { errorCode: 400, error: err } }));
|
|
64
66
|
}
|
|
65
67
|
});
|
|
66
68
|
router.post(types.ApiPaths.VerifyCaptchaSolution, async (req, res, next) => {
|
|
@@ -68,24 +70,29 @@ function prosopoRouter(env) {
|
|
|
68
70
|
try {
|
|
69
71
|
parsed = types.VerifySolutionBody.parse(req.body);
|
|
70
72
|
} catch (err) {
|
|
71
|
-
return next(new common.ProsopoApiError(
|
|
73
|
+
return next(new common.ProsopoApiError("CAPTCHA.PARSE_ERROR", { context: { errorCode: 400, error: err } }));
|
|
72
74
|
}
|
|
73
75
|
try {
|
|
74
76
|
const solution = await (parsed.commitmentId ? tasks$1.getDappUserCommitmentById(parsed.commitmentId) : tasks$1.getDappUserCommitmentByAccount(parsed.user));
|
|
75
77
|
if (!solution) {
|
|
76
78
|
return res.json({ status: req.t("API.USER_NOT_VERIFIED"), solutionApproved: false });
|
|
77
79
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
if (parsed.maxVerifiedTime) {
|
|
81
|
+
const currentBlockNumber = await tasks$1.getCurrentBlockNumber();
|
|
82
|
+
const blockTimeMs = await tasks$1.getBlockTimeMs();
|
|
83
|
+
const timeSinceCompletion = (currentBlockNumber - solution.completedAt) * blockTimeMs;
|
|
84
|
+
if (timeSinceCompletion > parsed.maxVerifiedTime) {
|
|
85
|
+
return res.json({ status: req.t("API.USER_NOT_VERIFIED"), solutionApproved: false });
|
|
86
|
+
}
|
|
81
87
|
}
|
|
82
88
|
const isApproved = solution.status === typesReturns.CaptchaStatus.approved;
|
|
83
89
|
return res.json({
|
|
84
90
|
status: req.t(isApproved ? "API.USER_VERIFIED" : "API.USER_NOT_VERIFIED"),
|
|
85
|
-
solutionApproved: isApproved
|
|
91
|
+
solutionApproved: isApproved,
|
|
92
|
+
commitmentId: solution.id
|
|
86
93
|
});
|
|
87
94
|
} catch (err) {
|
|
88
|
-
return next(new common.ProsopoApiError(
|
|
95
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { errorCode: 400, error: err } }));
|
|
89
96
|
}
|
|
90
97
|
});
|
|
91
98
|
router.post(types.ApiPaths.SubmitUserEvents, async (req, res, next) => {
|
|
@@ -94,7 +101,7 @@ function prosopoRouter(env) {
|
|
|
94
101
|
await tasks$1.saveCaptchaEvent(events, accountId);
|
|
95
102
|
return res.json({ status: "success" });
|
|
96
103
|
} catch (err) {
|
|
97
|
-
return next(new common.ProsopoApiError(
|
|
104
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { errorCode: 400, error: err } }));
|
|
98
105
|
}
|
|
99
106
|
});
|
|
100
107
|
router.get(types.ApiPaths.GetProviderStatus, async (req, res, next) => {
|
|
@@ -102,7 +109,7 @@ function prosopoRouter(env) {
|
|
|
102
109
|
const status = await tasks$1.providerStatus();
|
|
103
110
|
return res.json({ status });
|
|
104
111
|
} catch (err) {
|
|
105
|
-
return next(new common.ProsopoApiError(
|
|
112
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { errorCode: 400, error: err } }));
|
|
106
113
|
}
|
|
107
114
|
});
|
|
108
115
|
router.get(types.ApiPaths.GetProviderDetails, async (req, res, next) => {
|
|
@@ -110,7 +117,7 @@ function prosopoRouter(env) {
|
|
|
110
117
|
const details = await tasks$1.getProviderDetails();
|
|
111
118
|
return res.json(details);
|
|
112
119
|
} catch (err) {
|
|
113
|
-
return next(new common.ProsopoApiError(
|
|
120
|
+
return next(new common.ProsopoApiError("API.BAD_REQUEST", { context: { errorCode: 400, error: err } }));
|
|
114
121
|
}
|
|
115
122
|
});
|
|
116
123
|
return router;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const bn = require("@polkadot/util/bn");
|
|
4
4
|
const types = require("@prosopo/types");
|
|
5
|
+
const common = require("@prosopo/common");
|
|
5
6
|
const contract = require("@prosopo/contract");
|
|
6
7
|
const util = require("../util.cjs");
|
|
7
8
|
const random = require("@polkadot/util-crypto/random");
|
|
@@ -119,7 +120,7 @@ class BatchCommitmentsTask {
|
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
if (!extrinsic) {
|
|
122
|
-
throw new
|
|
123
|
+
throw new common.ProsopoContractError("CONTRACT.TX_ERROR", { context: { error: "No extrinsics created" } });
|
|
123
124
|
}
|
|
124
125
|
txs.push(extrinsic);
|
|
125
126
|
this.logger.info(`${txs.length} transactions will be batched`);
|
|
@@ -60,7 +60,7 @@ class CalculateSolutionsTask extends tasks.Tasks {
|
|
|
60
60
|
}
|
|
61
61
|
return 0;
|
|
62
62
|
} catch (error) {
|
|
63
|
-
throw new common.ProsopoEnvError(
|
|
63
|
+
throw new common.ProsopoEnvError("GENERAL.CALCULATE_CAPTCHA_SOLUTION", { context: { error } });
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
}
|
package/dist/cjs/tasks/tasks.cjs
CHANGED
|
@@ -14,12 +14,9 @@ const string = require("@polkadot/util/string");
|
|
|
14
14
|
class Tasks {
|
|
15
15
|
constructor(env) {
|
|
16
16
|
if (!env.contractInterface) {
|
|
17
|
-
throw new common.ProsopoEnvError(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{},
|
|
21
|
-
{ contractAddress: env.contractAddress }
|
|
22
|
-
);
|
|
17
|
+
throw new common.ProsopoEnvError("CONTRACT.CONTRACT_UNDEFINED", {
|
|
18
|
+
context: { failedFuncName: this.constructor.name, contractAddress: env.contractAddress }
|
|
19
|
+
});
|
|
23
20
|
}
|
|
24
21
|
this.config = env.config;
|
|
25
22
|
this.contract = env.contractInterface;
|
|
@@ -36,18 +33,26 @@ class Tasks {
|
|
|
36
33
|
async providerSetDataset(datasetRaw) {
|
|
37
34
|
var _a;
|
|
38
35
|
if (datasetRaw.captchas.length < this.config.captchas.solved.count + this.config.captchas.unsolved.count) {
|
|
39
|
-
throw new common.ProsopoEnvError("DATASET.CAPTCHAS_COUNT_LESS_THAN_CONFIGURED",
|
|
36
|
+
throw new common.ProsopoEnvError("DATASET.CAPTCHAS_COUNT_LESS_THAN_CONFIGURED", {
|
|
37
|
+
context: { failedFuncName: this.providerSetDataset.name }
|
|
38
|
+
});
|
|
40
39
|
}
|
|
41
40
|
const solutions = datasetRaw.captchas.map((captcha) => captcha.solution ? 1 : 0).reduce((partialSum, b) => partialSum + b, 0);
|
|
42
41
|
if (solutions < this.config.captchas.solved.count) {
|
|
43
|
-
throw new common.ProsopoEnvError("DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED",
|
|
42
|
+
throw new common.ProsopoEnvError("DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED", {
|
|
43
|
+
context: { failedFuncName: this.providerSetDataset.name }
|
|
44
|
+
});
|
|
44
45
|
}
|
|
45
46
|
if (solutions < this.config.captchas.unsolved.count) {
|
|
46
|
-
throw new common.ProsopoEnvError("DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED",
|
|
47
|
+
throw new common.ProsopoEnvError("DATASET.SOLUTIONS_COUNT_LESS_THAN_CONFIGURED", {
|
|
48
|
+
context: { failedFuncName: this.providerSetDataset.name }
|
|
49
|
+
});
|
|
47
50
|
}
|
|
48
51
|
const dataset = await datasets.buildDataset(datasetRaw);
|
|
49
52
|
if (!dataset.datasetId || !dataset.datasetContentId) {
|
|
50
|
-
throw new common.ProsopoEnvError("DATASET.DATASET_ID_UNDEFINED",
|
|
53
|
+
throw new common.ProsopoEnvError("DATASET.DATASET_ID_UNDEFINED", {
|
|
54
|
+
context: { failedFuncName: this.providerSetDataset.name }
|
|
55
|
+
});
|
|
51
56
|
}
|
|
52
57
|
await ((_a = this.db) == null ? void 0 : _a.storeDataset(dataset));
|
|
53
58
|
await contract.wrapQuery(this.contract.query.providerSetDataset, this.contract.query)(
|
|
@@ -83,12 +88,9 @@ class Tasks {
|
|
|
83
88
|
}
|
|
84
89
|
return captchas;
|
|
85
90
|
}
|
|
86
|
-
throw new common.ProsopoEnvError(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
{},
|
|
90
|
-
{ datasetId, solved, size }
|
|
91
|
-
);
|
|
91
|
+
throw new common.ProsopoEnvError("DATABASE.CAPTCHA_GET_FAILED", {
|
|
92
|
+
context: { failedFuncName: this.getCaptchaWithProof.name, datasetId, solved, size }
|
|
93
|
+
});
|
|
92
94
|
}
|
|
93
95
|
/**
|
|
94
96
|
* Validate and store the text captcha solution(s) from the Dapp User in a web2 environment
|
|
@@ -101,11 +103,15 @@ class Tasks {
|
|
|
101
103
|
*/
|
|
102
104
|
async dappUserSolution(userAccount, dappAccount, requestHash, captchas, signature$1) {
|
|
103
105
|
if (!await this.dappIsActive(dappAccount)) {
|
|
104
|
-
throw new common.ProsopoEnvError("CONTRACT.DAPP_NOT_ACTIVE",
|
|
106
|
+
throw new common.ProsopoEnvError("CONTRACT.DAPP_NOT_ACTIVE", {
|
|
107
|
+
context: { failedFuncName: this.getPaymentInfo.name, dappAccount }
|
|
108
|
+
});
|
|
105
109
|
}
|
|
106
110
|
const verification = signature.signatureVerify(string.stringToHex(requestHash), signature$1, userAccount);
|
|
107
111
|
if (!verification.isValid) {
|
|
108
|
-
throw new common.ProsopoEnvError("GENERAL.INVALID_SIGNATURE",
|
|
112
|
+
throw new common.ProsopoEnvError("GENERAL.INVALID_SIGNATURE", {
|
|
113
|
+
context: { failedFuncName: this.dappUserSolution.name, userAccount }
|
|
114
|
+
});
|
|
109
115
|
}
|
|
110
116
|
let response = {
|
|
111
117
|
captchas: [],
|
|
@@ -190,20 +196,20 @@ class Tasks {
|
|
|
190
196
|
const captchaIds = receivedCaptchas.map((captcha) => captcha.captchaId);
|
|
191
197
|
const storedCaptchas = await this.db.getCaptchaById(captchaIds);
|
|
192
198
|
if (!storedCaptchas || receivedCaptchas.length !== storedCaptchas.length) {
|
|
193
|
-
throw new common.ProsopoEnvError(
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
);
|
|
199
|
+
throw new common.ProsopoEnvError("CAPTCHA.INVALID_CAPTCHA_ID", {
|
|
200
|
+
context: {
|
|
201
|
+
failedFuncName: this.validateReceivedCaptchasAgainstStoredCaptchas.name,
|
|
202
|
+
captchas
|
|
203
|
+
}
|
|
204
|
+
});
|
|
199
205
|
}
|
|
200
206
|
if (!storedCaptchas.every((captcha) => captcha.datasetId === util$1.at(storedCaptchas, 0).datasetId)) {
|
|
201
|
-
throw new common.ProsopoEnvError(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
);
|
|
207
|
+
throw new common.ProsopoEnvError("CAPTCHA.DIFFERENT_DATASET_IDS", {
|
|
208
|
+
context: {
|
|
209
|
+
failedFuncName: this.validateReceivedCaptchasAgainstStoredCaptchas.name,
|
|
210
|
+
captchas
|
|
211
|
+
}
|
|
212
|
+
});
|
|
207
213
|
}
|
|
208
214
|
return { storedCaptchas, receivedCaptchas, captchaIds };
|
|
209
215
|
}
|
|
@@ -219,12 +225,12 @@ class Tasks {
|
|
|
219
225
|
tree.build(solutionsHashed);
|
|
220
226
|
const commitmentId = (_a = tree.root) == null ? void 0 : _a.hash;
|
|
221
227
|
if (!commitmentId) {
|
|
222
|
-
throw new common.ProsopoEnvError(
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
);
|
|
228
|
+
throw new common.ProsopoEnvError("CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST", {
|
|
229
|
+
context: {
|
|
230
|
+
failedFuncName: this.buildTreeAndGetCommitmentId.name,
|
|
231
|
+
commitmentId
|
|
232
|
+
}
|
|
233
|
+
});
|
|
228
234
|
}
|
|
229
235
|
return { tree, commitmentId };
|
|
230
236
|
}
|
|
@@ -305,23 +311,23 @@ class Tasks {
|
|
|
305
311
|
async validateProviderWasRandomlyChosen(userAccount, dappContractAccount, datasetId, blockNumber) {
|
|
306
312
|
const contract2 = await this.contract.contract;
|
|
307
313
|
if (!contract2) {
|
|
308
|
-
throw new common.ProsopoEnvError("CONTRACT.CONTRACT_UNDEFINED",
|
|
314
|
+
throw new common.ProsopoEnvError("CONTRACT.CONTRACT_UNDEFINED", {
|
|
315
|
+
context: { failedFuncName: this.validateProviderWasRandomlyChosen.name }
|
|
316
|
+
});
|
|
309
317
|
}
|
|
310
318
|
const header = await contract2.api.rpc.chain.getHeader();
|
|
311
319
|
const isBlockNoValid = await this.isRecentBlock(contract2, header, blockNumber);
|
|
312
320
|
if (!isBlockNoValid) {
|
|
313
|
-
throw new common.ProsopoEnvError(
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
{},
|
|
317
|
-
{
|
|
321
|
+
throw new common.ProsopoEnvError("CAPTCHA.INVALID_BLOCK_NO", {
|
|
322
|
+
context: {
|
|
323
|
+
failedFuncName: this.validateProviderWasRandomlyChosen.name,
|
|
318
324
|
userAccount,
|
|
319
325
|
dappContractAccount,
|
|
320
326
|
datasetId,
|
|
321
327
|
header,
|
|
322
328
|
blockNumber
|
|
323
329
|
}
|
|
324
|
-
);
|
|
330
|
+
});
|
|
325
331
|
}
|
|
326
332
|
const block = await contract2.api.rpc.chain.getBlockHash(blockNumber);
|
|
327
333
|
const randomProviderAndBlockNo = await this.contract.queryAtBlock(
|
|
@@ -330,12 +336,12 @@ class Tasks {
|
|
|
330
336
|
[userAccount, dappContractAccount]
|
|
331
337
|
);
|
|
332
338
|
if (datasetId.toString().localeCompare(randomProviderAndBlockNo.provider.datasetId.toString())) {
|
|
333
|
-
throw new common.ProsopoEnvError(
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
);
|
|
339
|
+
throw new common.ProsopoEnvError("DATASET.INVALID_DATASET_ID", {
|
|
340
|
+
context: {
|
|
341
|
+
failedFuncName: this.validateProviderWasRandomlyChosen.name,
|
|
342
|
+
randomProviderAndBlockNo
|
|
343
|
+
}
|
|
344
|
+
});
|
|
339
345
|
}
|
|
340
346
|
}
|
|
341
347
|
/**
|
|
@@ -369,12 +375,12 @@ class Tasks {
|
|
|
369
375
|
async getDappUserCommitmentById(commitmentId) {
|
|
370
376
|
const dappUserSolution = await this.db.getDappUserCommitmentById(commitmentId);
|
|
371
377
|
if (!dappUserSolution) {
|
|
372
|
-
throw new common.ProsopoEnvError(
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
);
|
|
378
|
+
throw new common.ProsopoEnvError("CAPTCHA.DAPP_USER_SOLUTION_NOT_FOUND", {
|
|
379
|
+
context: {
|
|
380
|
+
failedFuncName: this.getDappUserCommitmentById.name,
|
|
381
|
+
commitmentId
|
|
382
|
+
}
|
|
383
|
+
});
|
|
378
384
|
}
|
|
379
385
|
return dappUserSolution;
|
|
380
386
|
}
|
|
@@ -403,6 +409,19 @@ class Tasks {
|
|
|
403
409
|
async getProviderDataset(datasetId) {
|
|
404
410
|
return await this.db.getDataset(datasetId);
|
|
405
411
|
}
|
|
412
|
+
/**
|
|
413
|
+
* Get the current block number
|
|
414
|
+
*/
|
|
415
|
+
async getCurrentBlockNumber() {
|
|
416
|
+
return (await contract.getBlockNumber(this.contract.api)).toNumber();
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Get the current block time in milliseconds
|
|
420
|
+
*/
|
|
421
|
+
async getBlockTimeMs() {
|
|
422
|
+
const blockTime = this.contract.api.consts.babe.expectedBlockTime;
|
|
423
|
+
return blockTime.toNumber();
|
|
424
|
+
}
|
|
406
425
|
async saveCaptchaEvent(events, accountId) {
|
|
407
426
|
if (!this.config.mongoAtlasUri) {
|
|
408
427
|
return;
|
package/dist/cjs/util.cjs
CHANGED
|
@@ -10,8 +10,8 @@ const pl = require("nodejs-polars");
|
|
|
10
10
|
function encodeStringAddress(address$1) {
|
|
11
11
|
try {
|
|
12
12
|
return address.encodeAddress(is.isHex(address$1) ? hex.hexToU8a(address$1) : address.decodeAddress(address$1));
|
|
13
|
-
} catch (
|
|
14
|
-
throw new common.
|
|
13
|
+
} catch (err) {
|
|
14
|
+
throw new common.ProsopoContractError("CONTRACT.INVALID_ADDRESS", { context: { address: address$1 } });
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
function shuffleArray(array) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculateSolutions.d.ts","sourceRoot":"","sources":["../../src/tasks/calculateSolutions.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,qBAAa,sBAAuB,SAAQ,KAAK;gBACjC,GAAG,EAAE,mBAAmB;IAQ9B,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"calculateSolutions.d.ts","sourceRoot":"","sources":["../../src/tasks/calculateSolutions.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,qBAAa,sBAAuB,SAAQ,KAAK;gBACjC,GAAG,EAAE,mBAAmB;IAQ9B,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;CAoE/B"}
|
|
@@ -58,7 +58,7 @@ export class CalculateSolutionsTask extends Tasks {
|
|
|
58
58
|
return 0;
|
|
59
59
|
}
|
|
60
60
|
catch (error) {
|
|
61
|
-
throw new ProsopoEnvError(
|
|
61
|
+
throw new ProsopoEnvError('GENERAL.CALCULATE_CAPTCHA_SOLUTION', { context: { error } });
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculateSolutions.js","sourceRoot":"","sources":["../../src/tasks/calculateSolutions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"calculateSolutions.js","sourceRoot":"","sources":["../../src/tasks/calculateSolutions.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/tasks.d.ts
CHANGED
|
@@ -42,6 +42,8 @@ export declare class Tasks {
|
|
|
42
42
|
getDappUserCommitmentByAccount(userAccount: string): Promise<UserCommitmentRecord | undefined>;
|
|
43
43
|
getProviderDetails(): Promise<ProviderDetails>;
|
|
44
44
|
getProviderDataset(datasetId: string): Promise<DatasetWithIds>;
|
|
45
|
+
getCurrentBlockNumber(): Promise<number>;
|
|
46
|
+
getBlockTimeMs(): Promise<number>;
|
|
45
47
|
saveCaptchaEvent(events: StoredEvents, accountId: string): Promise<void>;
|
|
46
48
|
}
|
|
47
49
|
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -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,EAChB,sBAAsB,EAEtB,UAAU,EACV,cAAc,EACd,IAAI,EACJ,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACH,iBAAiB,EAOpB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,MAAM,EAA8B,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAA6B,MAAM,mBAAmB,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAY7D,qBAAa,KAAK;IACd,QAAQ,EAAE,sBAAsB,CAAA;IAEhC,EAAE,EAAE,QAAQ,CAAA;IAEZ,aAAa,EAAE,aAAa,CAAA;IAE5B,qBAAqB,EAAE,qBAAqB,CAAA;IAE5C,MAAM,EAAE,MAAM,CAAA;IAEd,MAAM,EAAE,mBAAmB,CAAA;gBAEf,GAAG,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}
|