@prosopo/provider 0.2.13 → 0.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/api/admin.js +0 -56
  2. package/dist/api/admin.js.map +1 -1
  3. package/dist/api/captcha.d.ts +0 -6
  4. package/dist/api/captcha.d.ts.map +1 -1
  5. package/dist/api/captcha.js +24 -83
  6. package/dist/api/captcha.js.map +1 -1
  7. package/dist/batch/commitments.d.ts +2 -2
  8. package/dist/batch/commitments.d.ts.map +1 -1
  9. package/dist/batch/commitments.js +2 -20
  10. package/dist/batch/commitments.js.map +1 -1
  11. package/dist/batch/index.js +0 -13
  12. package/dist/batch/index.js.map +1 -1
  13. package/dist/cjs/api/captcha.cjs +23 -31
  14. package/dist/cjs/batch/commitments.cjs +12 -12
  15. package/dist/cjs/tasks/tasks.cjs +22 -21
  16. package/dist/cjs/util.cjs +9 -8
  17. package/dist/index.js +0 -13
  18. package/dist/index.js.map +1 -1
  19. package/dist/scheduler.js +0 -15
  20. package/dist/scheduler.js.map +1 -1
  21. package/dist/tasks/calculateSolutions.d.ts +0 -3
  22. package/dist/tasks/calculateSolutions.d.ts.map +1 -1
  23. package/dist/tasks/calculateSolutions.js +0 -27
  24. package/dist/tasks/calculateSolutions.js.map +1 -1
  25. package/dist/tasks/index.js +0 -13
  26. package/dist/tasks/index.js.map +1 -1
  27. package/dist/tasks/tasks.d.ts +3 -66
  28. package/dist/tasks/tasks.d.ts.map +1 -1
  29. package/dist/tasks/tasks.js +6 -87
  30. package/dist/tasks/tasks.js.map +1 -1
  31. package/dist/tests/accounts.d.ts.map +1 -1
  32. package/dist/tests/accounts.js +2 -16
  33. package/dist/tests/accounts.js.map +1 -1
  34. package/dist/tests/batch/commitments.test.d.ts.map +1 -1
  35. package/dist/tests/batch/commitments.test.js +12 -77
  36. package/dist/tests/batch/commitments.test.js.map +1 -1
  37. package/dist/tests/contract/helpers.test.d.ts.map +1 -1
  38. package/dist/tests/contract/helpers.test.js +3 -3
  39. package/dist/tests/contract/helpers.test.js.map +1 -1
  40. package/dist/tests/dataUtils/DatabaseAccounts.js +0 -1
  41. package/dist/tests/dataUtils/DatabaseAccounts.js.map +1 -1
  42. package/dist/tests/dataUtils/DatabasePopulator.d.ts +1 -1
  43. package/dist/tests/dataUtils/DatabasePopulator.d.ts.map +1 -1
  44. package/dist/tests/dataUtils/DatabasePopulator.js +10 -16
  45. package/dist/tests/dataUtils/DatabasePopulator.js.map +1 -1
  46. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts +1 -1
  47. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts.map +1 -1
  48. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js +3 -17
  49. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js.map +1 -1
  50. package/dist/tests/dataUtils/funds.d.ts +1 -16
  51. package/dist/tests/dataUtils/funds.d.ts.map +1 -1
  52. package/dist/tests/dataUtils/funds.js +2 -25
  53. package/dist/tests/dataUtils/funds.js.map +1 -1
  54. package/dist/tests/dataUtils/populateDatabase.d.ts +1 -1
  55. package/dist/tests/dataUtils/populateDatabase.d.ts.map +1 -1
  56. package/dist/tests/dataUtils/populateDatabase.js +0 -1
  57. package/dist/tests/dataUtils/populateDatabase.js.map +1 -1
  58. package/dist/tests/tasks/tasks.test.d.ts.map +1 -1
  59. package/dist/tests/tasks/tasks.test.js +15 -221
  60. package/dist/tests/tasks/tasks.test.js.map +1 -1
  61. package/dist/tests/util.test.js +0 -14
  62. package/dist/tests/util.test.js.map +1 -1
  63. package/dist/util.d.ts +0 -11
  64. package/dist/util.d.ts.map +1 -1
  65. package/dist/util.js +3 -33
  66. package/dist/util.js.map +1 -1
  67. package/package.json +10 -11
  68. package/dist/cjs/contracts/captcha/dist/build-extrinsic/captcha.cjs +0 -339
  69. package/dist/cjs/contracts/captcha/dist/contract-info/captcha.cjs +0 -6
  70. package/dist/cjs/contracts/captcha/dist/contracts/captcha.cjs +0 -79
  71. package/dist/cjs/contracts/captcha/dist/data/captcha.json.cjs +0 -3374
  72. package/dist/cjs/contracts/captcha/dist/event-data/captcha.json.cjs +0 -3
  73. package/dist/cjs/contracts/captcha/dist/events/captcha.cjs +0 -23
  74. package/dist/cjs/contracts/captcha/dist/index.cjs +0 -44
  75. package/dist/cjs/contracts/captcha/dist/mixed-methods/captcha.cjs +0 -470
  76. package/dist/cjs/contracts/captcha/dist/query/captcha.cjs +0 -468
  77. package/dist/cjs/contracts/captcha/dist/shared/utils.cjs +0 -31
  78. package/dist/cjs/contracts/captcha/dist/tx-sign-and-send/captcha.cjs +0 -426
  79. package/dist/cjs/contracts/captcha/dist/types-arguments/captcha.cjs +0 -62
  80. package/dist/tests/data/captchas.d.ts +0 -37
  81. package/dist/tests/data/captchas.d.ts.map +0 -1
  82. package/dist/tests/data/captchas.js +0 -902
  83. package/dist/tests/data/captchas.js.map +0 -1
  84. package/dist/tests/data/captchas1.json +0 -53
  85. package/dist/tests/data/captchas2.json +0 -69
  86. package/dist/tests/data/captchas3.json +0 -54
  87. package/dist/tests/data/captchas4.json +0 -53
package/dist/api/admin.js CHANGED
@@ -1,58 +1,2 @@
1
- // import { Keyring } from '@polkadot/keyring'
2
- // import { ProviderEnvironment } from '@prosopo/types-env'
3
- // import express, { Router } from 'express'
4
- // import jwt from 'jsonwebtoken'
5
1
  export {};
6
- // /**
7
- // * Admin router with auth, temp example
8
- // *
9
- // * @return {Router} - router stuff
10
- // * @param {Environment} env - env stuff
11
- // */
12
- // export function adminRouter(env: ProviderEnvironment): Router {
13
- // const keyring = new Keyring({ type: 'sr25519' })
14
- // const router = express.Router()
15
- // // Middleware to verify auth token
16
- // const authMiddleware = (req, res, next) => {
17
- // const authHeader = req.headers.authorization
18
- // if (authHeader) {
19
- // const token = authHeader.split(' ')[1]
20
- // // Verify token using the public key
21
- // jwt.verify(token, env.config.account.address, (err, user) => {
22
- // if (err) {
23
- // return res.sendStatus(403)
24
- // }
25
- // req.user = user
26
- // next()
27
- // })
28
- // } else {
29
- // res.sendStatus(401)
30
- // }
31
- // }
32
- // // Endpoint to authenticate user using Polkadot network for signing messages
33
- // router.post('/auth', async (req, res) => {
34
- // const { message, signature } = req.body
35
- // try {
36
- // const address = env.config.account.address
37
- // const pair = keyring.addFromAddress(env.config.account.address)
38
- // const isValid = pair.verify(message, signature, address)
39
- // if (isValid) {
40
- // const user = { address }
41
- // // temp jwt, need to verify usage with correct imports and types
42
- // const accessToken = jwt.sign(user, env.config.account.secret, { expiresIn: '1h' })
43
- // return res.json({ accessToken })
44
- // } else {
45
- // return res.status(401).json({ message: 'bad auth' })
46
- // }
47
- // } catch (err) {
48
- // // todo needs proper prosopo error handling
49
- // return res.status(500).json({ message: 'An error occurred' })
50
- // }
51
- // })
52
- // // Secure endpoint which requires auth token to access
53
- // router.get('/secure', authMiddleware, (req, res) => {
54
- // res.json({ message: 'correct auth' })
55
- // })
56
- // return router
57
- // }
58
2
  //# sourceMappingURL=admin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/api/admin.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,2DAA2D;AAC3D,4CAA4C;AAC5C,iCAAiC;;AAEjC,MAAM;AACN,0CAA0C;AAC1C,KAAK;AACL,qCAAqC;AACrC,0CAA0C;AAC1C,MAAM;AACN,kEAAkE;AAClE,uDAAuD;AAEvD,sCAAsC;AAEtC,yCAAyC;AACzC,mDAAmD;AACnD,uDAAuD;AAEvD,4BAA4B;AAC5B,qDAAqD;AAErD,mDAAmD;AACnD,6EAA6E;AAC7E,6BAA6B;AAC7B,iDAAiD;AACjD,oBAAoB;AAEpB,kCAAkC;AAClC,yBAAyB;AACzB,iBAAiB;AACjB,mBAAmB;AACnB,kCAAkC;AAClC,YAAY;AACZ,QAAQ;AAER,mFAAmF;AACnF,iDAAiD;AACjD,kDAAkD;AAElD,gBAAgB;AAChB,yDAAyD;AACzD,8EAA8E;AAC9E,uEAAuE;AAEvE,6BAA6B;AAC7B,2CAA2C;AAE3C,mFAAmF;AACnF,qGAAqG;AAErG,mDAAmD;AACnD,uBAAuB;AACvB,uEAAuE;AACvE,gBAAgB;AAChB,0BAA0B;AAC1B,0DAA0D;AAC1D,4EAA4E;AAC5E,YAAY;AACZ,SAAS;AAET,6DAA6D;AAC7D,4DAA4D;AAC5D,gDAAgD;AAChD,SAAS;AAET,oBAAoB;AACpB,IAAI"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/api/admin.ts"],"names":[],"mappings":""}
@@ -1,10 +1,4 @@
1
1
  import { ProviderEnvironment } from '@prosopo/types-env';
2
2
  import { Router } from 'express';
3
- /**
4
- * Returns a router connected to the database which can interact with the Proposo protocol
5
- *
6
- * @return {Router} - A middleware router that can interact with the Prosopo protocol
7
- * @param {Environment} env - The Prosopo environment
8
- */
9
3
  export declare function prosopoRouter(env: ProviderEnvironment): Router;
10
4
  //# sourceMappingURL=captcha.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAMxD,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAmJ9D"}
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,CAmJ9D"}
@@ -1,41 +1,15 @@
1
- // Copyright 2021-2023 Prosopo (UK) Ltd.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
1
  import { ApiParams, ApiPaths, CaptchaSolutionBody, VerifySolutionBody, } from '@prosopo/types';
15
2
  import { CaptchaRequestBody } from '@prosopo/types';
16
- import { CaptchaStatus } from '@prosopo/captcha-contract';
3
+ import { CaptchaStatus } from '@prosopo/captcha-contract/types-returns';
17
4
  import { ProsopoApiError } from '@prosopo/common';
18
5
  import { Tasks } from '../tasks/tasks.js';
19
6
  import { parseBlockNumber } from '../util.js';
20
7
  import { parseCaptchaAssets } from '@prosopo/datasets';
21
- import { validateAddress } from '@polkadot/util-crypto';
8
+ import { validateAddress } from '@polkadot/util-crypto/address';
22
9
  import express from 'express';
23
- /**
24
- * Returns a router connected to the database which can interact with the Proposo protocol
25
- *
26
- * @return {Router} - A middleware router that can interact with the Prosopo protocol
27
- * @param {Environment} env - The Prosopo environment
28
- */
29
10
  export function prosopoRouter(env) {
30
11
  const router = express.Router();
31
12
  const tasks = new Tasks(env);
32
- /**
33
- * Provides a Captcha puzzle to a Dapp User
34
- * @param {string} datasetId - Provider datasetId
35
- * @param {string} userAccount - Dapp User AccountId
36
- * @param {string} blockNumber - Block number
37
- * @return {Captcha} - The Captcha data
38
- */
39
13
  router.get(`${ApiPaths.GetCaptchaChallenge}/:${ApiParams.datasetId}/:${ApiParams.user}/:${ApiParams.dapp}/:${ApiParams.blockNumber}`, async (req, res, next) => {
40
14
  try {
41
15
  const { blockNumber, datasetId, user, dapp } = CaptchaRequestBody.parse(req.params);
@@ -47,35 +21,28 @@ export function prosopoRouter(env) {
47
21
  const blockNumberParsed = parseBlockNumber(blockNumber);
48
22
  await tasks.validateProviderWasRandomlyChosen(user, dapp, datasetId, blockNumberParsed);
49
23
  const taskData = await tasks.getRandomCaptchasAndRequestHash(datasetId, user);
50
- taskData.captchas = taskData.captchas.map((cwp) => ({
51
- ...cwp,
52
- captcha: {
53
- ...cwp.captcha,
54
- items: cwp.captcha.items.map((item) => parseCaptchaAssets(item, env.assetsResolver)),
55
- },
56
- }));
57
- return res.json(taskData);
24
+ const captchaResponse = {
25
+ captchas: taskData.captchas.map((cwp) => ({
26
+ ...cwp,
27
+ captcha: {
28
+ ...cwp.captcha,
29
+ items: cwp.captcha.items.map((item) => parseCaptchaAssets(item, env.assetsResolver)),
30
+ },
31
+ })),
32
+ requestHash: taskData.requestHash,
33
+ };
34
+ return res.json(captchaResponse);
58
35
  }
59
36
  catch (err) {
60
- // TODO fix error handling
61
37
  return next(new ProsopoApiError(err, undefined, 400));
62
38
  }
63
39
  });
64
- /**
65
- * Receives solved CAPTCHA challenges, store to database, and check against solution commitment
66
- *
67
- * @param {string} userAccount - Dapp User id
68
- * @param {string} dappAccount - Dapp Contract AccountId
69
- * @param {Captcha[]} captchas - The Captcha solutions
70
- * @return {DappUserSolutionResult} - The Captcha solution result and proof
71
- */
72
40
  router.post(ApiPaths.SubmitCaptchaSolution, async (req, res, next) => {
73
41
  let parsed;
74
42
  try {
75
43
  parsed = CaptchaSolutionBody.parse(req.body);
76
44
  }
77
45
  catch (err) {
78
- // TODO fix error handling
79
46
  return next(new ProsopoApiError(err, undefined, 400));
80
47
  }
81
48
  try {
@@ -86,79 +53,53 @@ export function prosopoRouter(env) {
86
53
  });
87
54
  }
88
55
  catch (err) {
89
- // TODO fix error handling
90
56
  return next(new ProsopoApiError(err, undefined, 400));
91
57
  }
92
58
  });
93
- /**
94
- * Verifies a user's solution as being approved or not
95
- *
96
- * @param {string} userAccount - Dapp User id
97
- * @param {string} commitmentId - The captcha solution to look up
98
- */
99
59
  router.post(ApiPaths.VerifyCaptchaSolution, async (req, res, next) => {
100
60
  let parsed;
101
61
  try {
102
62
  parsed = VerifySolutionBody.parse(req.body);
103
63
  }
104
64
  catch (err) {
105
- // TODO fix error handling
106
65
  return next(new ProsopoApiError(err, undefined, 400));
107
66
  }
108
67
  try {
109
- let solution;
110
- let statusMessage = 'API.USER_NOT_VERIFIED';
111
- if (!parsed.commitmentId) {
112
- solution = await tasks.getDappUserCommitmentByAccount(parsed.user);
68
+ const solution = await (parsed.commitmentId
69
+ ? tasks.getDappUserCommitmentById(parsed.commitmentId)
70
+ : tasks.getDappUserCommitmentByAccount(parsed.user));
71
+ if (!solution) {
72
+ return res.json({ status: req.t('API.USER_NOT_VERIFIED'), solutionApproved: false });
113
73
  }
114
- else {
115
- solution = await tasks.getDappUserCommitmentById(parsed.commitmentId);
116
- }
117
- if (solution) {
118
- let approved = false;
119
- if (solution.status === CaptchaStatus.approved) {
120
- statusMessage = 'API.USER_VERIFIED';
121
- approved = true;
122
- }
123
- return res.json({
124
- status: req.t(statusMessage),
125
- solutionApproved: approved,
126
- commitmentId: solution.id,
127
- });
74
+ const msSinceCompleted = new Date().getTime() - solution.completedAt;
75
+ if (parsed.maxVerifiedTime && msSinceCompleted > parsed.maxVerifiedTime) {
76
+ return res.json({ status: req.t('API.USER_NOT_VERIFIED'), solutionApproved: false });
128
77
  }
78
+ const isApproved = solution.status === CaptchaStatus.approved;
129
79
  return res.json({
130
- status: req.t(statusMessage),
131
- solutionApproved: false,
80
+ status: req.t(isApproved ? 'API.USER_VERIFIED' : 'API.USER_NOT_VERIFIED'),
81
+ solutionApproved: isApproved,
132
82
  });
133
83
  }
134
84
  catch (err) {
135
- // TODO fix error handling
136
85
  return next(new ProsopoApiError(err, undefined, 400));
137
86
  }
138
87
  });
139
- /**
140
- * Verifies that the provider is running and registered in the contract
141
- */
142
88
  router.get(ApiPaths.GetProviderStatus, async (req, res, next) => {
143
89
  try {
144
90
  const status = await tasks.providerStatus();
145
91
  return res.json({ status });
146
92
  }
147
93
  catch (err) {
148
- // TODO fix error handling
149
94
  return next(new ProsopoApiError(err, undefined, 400));
150
95
  }
151
96
  });
152
- /**
153
- * Gets public details of the provider
154
- */
155
97
  router.get(ApiPaths.GetProviderDetails, async (req, res, next) => {
156
98
  try {
157
99
  const details = await tasks.getProviderDetails();
158
100
  return res.json(details);
159
101
  }
160
102
  catch (err) {
161
- // TODO fix error handling
162
103
  return next(new ProsopoApiError(err, undefined, 400));
163
104
  }
164
105
  });
@@ -1 +1 @@
1
- {"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/api/captcha.ts"],"names":[],"mappings":"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"}
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,KAAK,CAAC,eAAe,CAAC,CAAA;aACnC;YACD,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YACpD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;YAEvD,MAAM,KAAK,CAAC,iCAAiC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAA;YAEvF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,+BAA+B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAC7E,MAAM,eAAe,GAAwB;gBACzC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAqB,EAAE,EAAE,CAAC,CAAC;oBACxD,GAAG,GAAG;oBACN,OAAO,EAAE;wBACL,GAAG,GAAG,CAAC,OAAO;wBACd,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;qBACvF;iBACJ,CAAC,CAAC;gBACH,WAAW,EAAE,QAAQ,CAAC,WAAW;aACpC,CAAA;YACD,OAAO,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;SACnC;QAAC,OAAO,GAAG,EAAE;YAEV,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,GAAY,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;SACjE;IACL,CAAC,CACJ,CAAA;IAUD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjE,IAAI,MAA+B,CAAA;QACnC,IAAI;YACA,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAC/C;QAAC,OAAO,GAAG,EAAE;YAEV,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,GAAY,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;SACjE;QAED,IAAI;YACA,MAAM,MAAM,GAA2B,MAAM,KAAK,CAAC,gBAAgB,CAC/D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAC7B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC1B,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAC9B,CAAA;YACD,OAAO,GAAG,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;gBACzF,GAAG,MAAM;aACZ,CAAC,CAAA;SACL;QAAC,OAAO,GAAG,EAAE;YAEV,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,GAAY,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;SACjE;IACL,CAAC,CAAC,CAAA;IASF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjE,IAAI,MAA8B,CAAA;QAClC,IAAI;YACA,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAC9C;QAAC,OAAO,GAAG,EAAE;YAEV,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,GAAY,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;SACjE;QACD,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY;gBACvC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,YAAY,CAAC;gBACtD,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAExD,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;aACvF;YAGD,MAAM,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAA;YACpE,IAAI,MAAM,CAAC,eAAe,IAAI,gBAAgB,GAAG,MAAM,CAAC,eAAe,EAAE;gBACrE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;aACvF;YAED,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,aAAa,CAAC,QAAQ,CAAA;YAC7D,OAAO,GAAG,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,uBAAuB,CAAC;gBACzE,gBAAgB,EAAE,UAAU;aAC/B,CAAC,CAAA;SACL;QAAC,OAAO,GAAG,EAAE;YAEV,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,GAAY,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;SACjE;IACL,CAAC,CAAC,CAAA;IAKF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC5D,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAA;YAC3C,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;SAC9B;QAAC,OAAO,GAAG,EAAE;YAEV,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,GAAY,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;SACjE;IACL,CAAC,CAAC,CAAA;IAKF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7D,IAAI;YACA,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,kBAAkB,EAAE,CAAA;YAChD,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC3B;QAAC,OAAO,GAAG,EAAE;YAEV,OAAO,IAAI,CAAC,IAAI,eAAe,CAAC,GAAY,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;SACjE;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACjB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="bn.js" />
2
- import { BN } from '@polkadot/util';
2
+ import { BN } from '@polkadot/util/bn';
3
3
  import { BatchCommitConfigOutput, ExtrinsicBatch } from '@prosopo/types';
4
- import { Commit, Hash } from '@prosopo/captcha-contract';
4
+ import { Commit, Hash } from '@prosopo/captcha-contract/types-returns';
5
5
  import { Database, UserCommitmentRecord } from '@prosopo/types-database';
6
6
  import { Logger } from '@prosopo/common';
7
7
  import { ProsopoCaptchaContract } from '@prosopo/contract';
@@ -1 +1 @@
1
- {"version":3,"file":"commitments.d.ts","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAA2C,MAAM,gBAAgB,CAAA;AACjH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAA0D,MAAM,mBAAmB,CAAA;AAElH,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
+ {"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,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAA0D,MAAM,mBAAmB,CAAA;AAElH,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,8 +1,8 @@
1
- import { BN } from '@polkadot/util';
1
+ import { BN } from '@polkadot/util/bn';
2
2
  import { ScheduledTaskNames, ScheduledTaskStatus } from '@prosopo/types';
3
3
  import { ProsopoContractError, batch, encodeStringArgs, oneUnit } from '@prosopo/contract';
4
4
  import { checkIfTaskIsRunning } from '../util.js';
5
- import { randomAsHex } from '@polkadot/util-crypto';
5
+ import { randomAsHex } from '@polkadot/util-crypto/random';
6
6
  const BN_TEN_THOUSAND = new BN(10000);
7
7
  const CONTRACT_METHOD_NAME = 'providerCommitMany';
8
8
  export class BatchCommitmentsTask {
@@ -14,27 +14,19 @@ export class BatchCommitmentsTask {
14
14
  this.nonce = startNonce;
15
15
  }
16
16
  async run() {
17
- // create a task id
18
17
  const taskId = randomAsHex(32);
19
18
  const taskRunning = await checkIfTaskIsRunning(ScheduledTaskNames.BatchCommitment, this.db);
20
- // taskRunning and intervalExceeded checks separated over multiple lines to avoid race conditions between providers
21
19
  if (!taskRunning) {
22
20
  const intervalExceeded = await this.batchIntervalExceeded();
23
21
  if (intervalExceeded) {
24
22
  try {
25
- // update last commit time
26
23
  await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Running);
27
- //get commitments
28
24
  const commitments = await this.getCommitments();
29
25
  if (commitments.length > 0) {
30
26
  this.logger.info(`Found ${commitments.length} commitments to commit`);
31
- // get the extrinsics that are to be batched and an id associated with each one
32
27
  const { extrinsics, ids: commitmentIds } = await this.createExtrinsics(commitments);
33
- // commit and get the Ids of the commitments that were committed on-chain
34
28
  await batch(this.contract.contract, this.contract.pair, extrinsics, this.logger);
35
- // flag commitments as batched
36
29
  await this.flagBatchedCommitments(commitmentIds);
37
- // update last commit time and store the commitmentIds that were batched
38
30
  await this.db.storeScheduledTaskStatus(taskId, ScheduledTaskNames.BatchCommitment, ScheduledTaskStatus.Completed, {
39
31
  data: {
40
32
  commitmentIds: commitments
@@ -68,9 +60,6 @@ export class BatchCommitmentsTask {
68
60
  const commit = this.convertCommit(commitment);
69
61
  commitmentArray.push(commit);
70
62
  const encodedArgs = encodeStringArgs(this.contract.abi, fragment, [commitmentArray]);
71
- // TODO can we get storage deposit from the provided query method?
72
- // https://matrix.to/#/!utTuYglskDvqRRMQta:matrix.org/$tELySFxCORlHCHveOknGJBx-MdVe-SxFN8_BsYvcDmI?via=matrix.org&via=t2bot.io&via=cardinal.ems.host
73
- // const response = await this.contract.query.providerCommitMany(commitmentArray)
74
63
  const buildExtrinsicResult = await this.contract.getExtrinsicAndGasEstimates('providerCommitMany', encodedArgs);
75
64
  extrinsic = buildExtrinsicResult.extrinsic;
76
65
  const { options, storageDeposit } = buildExtrinsicResult;
@@ -80,10 +69,8 @@ export class BatchCommitmentsTask {
80
69
  this.logger.debug(`${CONTRACT_METHOD_NAME} paymentInfo:`, paymentInfo.toNumber());
81
70
  }
82
71
  catch (e) {
83
- // TODO https://github.com/polkadot-js/api/issues/5504
84
72
  paymentInfo = new BN(0);
85
73
  }
86
- //totalEncodedLength += extrinsic.encodedLength
87
74
  totalRefTime = totalRefTime.add(this.contract.api.registry.createType('WeightV2', options.gasLimit).refTime.toBn());
88
75
  totalProofSize = totalProofSize.add(this.contract.api.registry.createType('WeightV2', options.gasLimit).proofSize.toBn());
89
76
  totalFee = totalFee.add(paymentInfo.add(storageDeposit.asCharge.toBn()));
@@ -94,8 +81,6 @@ export class BatchCommitmentsTask {
94
81
  .toString(), '`', 'UNIT');
95
82
  this.logger.debug('Total Fee `', totalFee.div(oneUnit(this.contract.api)).toString(), '`', 'UNIT');
96
83
  const feeTooHigh = totalFee.gt((await this.contract.api.query.system.account(this.contract.pair.address)).data.free.toBn());
97
- // Check if we have a maximum number of transactions that we can successfully submit in a block or if the
98
- // total fee is more than the provider has left in their account
99
84
  if (extrinsicTooHigh || feeTooHigh) {
100
85
  const msg = extrinsicTooHigh ? 'Max batch extrinsic percentage reached' : 'Fee too high';
101
86
  this.logger.warn(msg);
@@ -119,12 +104,10 @@ export class BatchCommitmentsTask {
119
104
  this.batchCommitConfig.maxBatchExtrinsicPercentage);
120
105
  }
121
106
  async batchIntervalExceeded() {
122
- //if time since last commit > batchCommitInterval
123
107
  const lastTime = await this.db.getLastBatchCommitTime();
124
108
  return Date.now() - lastTime.getSeconds() > this.batchCommitConfig.interval;
125
109
  }
126
110
  async getCommitments() {
127
- // get commitments that have not yet been batched on-chain
128
111
  return await this.db.getUnbatchedDappUserCommitments();
129
112
  }
130
113
  async flagBatchedCommitments(commitmentIds) {
@@ -135,7 +118,6 @@ export class BatchCommitmentsTask {
135
118
  return {
136
119
  ...commit,
137
120
  userSignature,
138
- // to satisfy typescript
139
121
  requestedAt: new BN(requestedAt).toNumber(),
140
122
  completedAt: new BN(completedAt).toNumber(),
141
123
  };
@@ -1 +1 @@
1
- {"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../src/batch/commitments.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,2 @@
1
- // Copyright 2021-2023 Prosopo (UK) Ltd.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
1
  export * from './commitments.js';
15
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/batch/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAA"}
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const types = require("@prosopo/types");
4
- require("../contracts/captcha/dist/index.cjs");
4
+ 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 util = require("../util.cjs");
8
8
  const datasets = require("@prosopo/datasets");
9
- const utilCrypto = require("@polkadot/util-crypto");
9
+ const address = require("@polkadot/util-crypto/address");
10
10
  const express = require("express");
11
- const captcha = require("../contracts/captcha/dist/types-arguments/captcha.cjs");
12
11
  function prosopoRouter(env) {
13
12
  const router = express.Router();
14
13
  const tasks$1 = new tasks.Tasks(env);
@@ -21,18 +20,21 @@ function prosopoRouter(env) {
21
20
  if (api === void 0) {
22
21
  throw new Error("api not setup");
23
22
  }
24
- utilCrypto.validateAddress(user, false, api.registry.chainSS58);
23
+ address.validateAddress(user, false, api.registry.chainSS58);
25
24
  const blockNumberParsed = util.parseBlockNumber(blockNumber);
26
25
  await tasks$1.validateProviderWasRandomlyChosen(user, dapp, datasetId, blockNumberParsed);
27
26
  const taskData = await tasks$1.getRandomCaptchasAndRequestHash(datasetId, user);
28
- taskData.captchas = taskData.captchas.map((cwp) => ({
29
- ...cwp,
30
- captcha: {
31
- ...cwp.captcha,
32
- items: cwp.captcha.items.map((item) => datasets.parseCaptchaAssets(item, env.assetsResolver))
33
- }
34
- }));
35
- return res.json(taskData);
27
+ const captchaResponse = {
28
+ captchas: taskData.captchas.map((cwp) => ({
29
+ ...cwp,
30
+ captcha: {
31
+ ...cwp.captcha,
32
+ items: cwp.captcha.items.map((item) => datasets.parseCaptchaAssets(item, env.assetsResolver))
33
+ }
34
+ })),
35
+ requestHash: taskData.requestHash
36
+ };
37
+ return res.json(captchaResponse);
36
38
  } catch (err) {
37
39
  return next(new common.ProsopoApiError(err, void 0, 400));
38
40
  }
@@ -69,28 +71,18 @@ function prosopoRouter(env) {
69
71
  return next(new common.ProsopoApiError(err, void 0, 400));
70
72
  }
71
73
  try {
72
- let solution;
73
- let statusMessage = "API.USER_NOT_VERIFIED";
74
- if (!parsed.commitmentId) {
75
- solution = await tasks$1.getDappUserCommitmentByAccount(parsed.user);
76
- } else {
77
- solution = await tasks$1.getDappUserCommitmentById(parsed.commitmentId);
74
+ const solution = await (parsed.commitmentId ? tasks$1.getDappUserCommitmentById(parsed.commitmentId) : tasks$1.getDappUserCommitmentByAccount(parsed.user));
75
+ if (!solution) {
76
+ return res.json({ status: req.t("API.USER_NOT_VERIFIED"), solutionApproved: false });
78
77
  }
79
- if (solution) {
80
- let approved = false;
81
- if (solution.status === captcha.CaptchaStatus.approved) {
82
- statusMessage = "API.USER_VERIFIED";
83
- approved = true;
84
- }
85
- return res.json({
86
- status: req.t(statusMessage),
87
- solutionApproved: approved,
88
- commitmentId: solution.id
89
- });
78
+ const msSinceCompleted = (/* @__PURE__ */ new Date()).getTime() - solution.completedAt;
79
+ if (parsed.maxVerifiedTime && msSinceCompleted > parsed.maxVerifiedTime) {
80
+ return res.json({ status: req.t("API.USER_NOT_VERIFIED"), solutionApproved: false });
90
81
  }
82
+ const isApproved = solution.status === typesReturns.CaptchaStatus.approved;
91
83
  return res.json({
92
- status: req.t(statusMessage),
93
- solutionApproved: false
84
+ status: req.t(isApproved ? "API.USER_VERIFIED" : "API.USER_NOT_VERIFIED"),
85
+ solutionApproved: isApproved
94
86
  });
95
87
  } catch (err) {
96
88
  return next(new common.ProsopoApiError(err, void 0, 400));
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const util = require("@polkadot/util");
3
+ const bn = require("@polkadot/util/bn");
4
4
  const types = require("@prosopo/types");
5
5
  const contract = require("@prosopo/contract");
6
- const util$1 = require("../util.cjs");
7
- const utilCrypto = require("@polkadot/util-crypto");
8
- const BN_TEN_THOUSAND = new util.BN(1e4);
6
+ const util = require("../util.cjs");
7
+ const random = require("@polkadot/util-crypto/random");
8
+ const BN_TEN_THOUSAND = new bn.BN(1e4);
9
9
  const CONTRACT_METHOD_NAME = "providerCommitMany";
10
10
  class BatchCommitmentsTask {
11
11
  constructor(batchCommitConfig, contractApi, db, startNonce, logger) {
@@ -16,8 +16,8 @@ class BatchCommitmentsTask {
16
16
  this.nonce = startNonce;
17
17
  }
18
18
  async run() {
19
- const taskId = utilCrypto.randomAsHex(32);
20
- const taskRunning = await util$1.checkIfTaskIsRunning(types.ScheduledTaskNames.BatchCommitment, this.db);
19
+ const taskId = random.randomAsHex(32);
20
+ const taskRunning = await util.checkIfTaskIsRunning(types.ScheduledTaskNames.BatchCommitment, this.db);
21
21
  if (!taskRunning) {
22
22
  const intervalExceeded = await this.batchIntervalExceeded();
23
23
  if (intervalExceeded) {
@@ -63,9 +63,9 @@ class BatchCommitmentsTask {
63
63
  const txs = [];
64
64
  const fragment = this.contract.abi.findMessage(CONTRACT_METHOD_NAME);
65
65
  const batchedCommitmentIds = [];
66
- let totalRefTime = new util.BN(0);
67
- let totalProofSize = new util.BN(0);
68
- let totalFee = new util.BN(0);
66
+ let totalRefTime = new bn.BN(0);
67
+ let totalProofSize = new bn.BN(0);
68
+ let totalFee = new bn.BN(0);
69
69
  const maxBlockWeight = this.contract.api.consts.system.blockWeights.maxBlock;
70
70
  const commitmentArray = [];
71
71
  let extrinsic;
@@ -84,7 +84,7 @@ class BatchCommitmentsTask {
84
84
  paymentInfo = (await extrinsic.paymentInfo(this.contract.pair)).partialFee.toBn();
85
85
  this.logger.debug(`${CONTRACT_METHOD_NAME} paymentInfo:`, paymentInfo.toNumber());
86
86
  } catch (e) {
87
- paymentInfo = new util.BN(0);
87
+ paymentInfo = new bn.BN(0);
88
88
  }
89
89
  totalRefTime = totalRefTime.add(
90
90
  this.contract.api.registry.createType("WeightV2", options.gasLimit).refTime.toBn()
@@ -146,8 +146,8 @@ class BatchCommitmentsTask {
146
146
  ...commit,
147
147
  userSignature,
148
148
  // to satisfy typescript
149
- requestedAt: new util.BN(requestedAt).toNumber(),
150
- completedAt: new util.BN(completedAt).toNumber()
149
+ requestedAt: new bn.BN(requestedAt).toNumber(),
150
+ completedAt: new bn.BN(completedAt).toNumber()
151
151
  };
152
152
  }
153
153
  }