@prosopo/provider 2.1.4 → 2.1.6

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 (263) hide show
  1. package/.dockerignore +5 -0
  2. package/dist/api/admin.d.ts +4 -0
  3. package/dist/api/admin.d.ts.map +1 -0
  4. package/dist/api/admin.js +36 -0
  5. package/dist/api/admin.js.map +1 -0
  6. package/dist/api/authMiddleware.d.ts +6 -0
  7. package/dist/api/authMiddleware.d.ts.map +1 -0
  8. package/dist/api/authMiddleware.js +66 -0
  9. package/dist/api/authMiddleware.js.map +1 -0
  10. package/dist/api/captcha.d.ts +4 -0
  11. package/dist/api/captcha.d.ts.map +1 -0
  12. package/dist/api/captcha.js +299 -0
  13. package/dist/api/captcha.js.map +1 -0
  14. package/dist/api/captchaScheduler.d.ts +4 -0
  15. package/dist/api/captchaScheduler.d.ts.map +1 -0
  16. package/dist/api/captchaScheduler.js +17 -0
  17. package/dist/api/captchaScheduler.js.map +1 -0
  18. package/dist/api/errorHandler.d.ts +11 -0
  19. package/dist/api/errorHandler.d.ts.map +1 -0
  20. package/dist/api/errorHandler.js +42 -0
  21. package/dist/api/errorHandler.js.map +1 -0
  22. package/dist/api/verify.d.ts +4 -0
  23. package/dist/api/verify.d.ts.map +1 -0
  24. package/dist/api/verify.js +98 -0
  25. package/dist/api/verify.js.map +1 -0
  26. package/dist/batch/commitments.d.ts +24 -0
  27. package/dist/batch/commitments.d.ts.map +1 -0
  28. package/dist/batch/commitments.js +130 -0
  29. package/dist/batch/commitments.js.map +1 -0
  30. package/dist/batch/index.d.ts +2 -0
  31. package/dist/batch/index.d.ts.map +1 -0
  32. package/dist/batch/index.js +2 -0
  33. package/dist/batch/index.js.map +1 -0
  34. package/dist/cjs/api/admin.cjs +37 -0
  35. package/dist/cjs/api/authMiddleware.cjs +66 -0
  36. package/dist/cjs/api/captcha.cjs +380 -0
  37. package/dist/cjs/api/errorHandler.cjs +42 -0
  38. package/dist/cjs/api/verify.cjs +120 -0
  39. package/dist/cjs/index.cjs +25 -0
  40. package/dist/cjs/schedulers/captchaScheduler.cjs +33 -0
  41. package/dist/cjs/schedulers/getClientList.cjs +31 -0
  42. package/dist/cjs/tasks/client/clientTasks.cjs +148 -0
  43. package/dist/cjs/tasks/dataset/datasetTasks.cjs +30 -0
  44. package/dist/cjs/tasks/dataset/datasetTasksUtils.cjs +34 -0
  45. package/dist/cjs/tasks/detection/decodePayload.cjs +549 -0
  46. package/dist/cjs/tasks/detection/getBotScore.cjs +18 -0
  47. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +313 -0
  48. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs +25 -0
  49. package/dist/cjs/tasks/index.cjs +4 -0
  50. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +134 -0
  51. package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +26 -0
  52. package/dist/cjs/tasks/tasks.cjs +40 -0
  53. package/dist/cjs/util.cjs +45 -0
  54. package/dist/index.d.ts +10 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +10 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/scheduler.d.ts +4 -0
  59. package/dist/scheduler.d.ts.map +1 -0
  60. package/dist/scheduler.js +21 -0
  61. package/dist/scheduler.js.map +1 -0
  62. package/dist/schedulers/captchaScheduler.d.ts +4 -0
  63. package/dist/schedulers/captchaScheduler.d.ts.map +1 -0
  64. package/dist/schedulers/captchaScheduler.js +28 -0
  65. package/dist/schedulers/captchaScheduler.js.map +1 -0
  66. package/dist/schedulers/getClientList.d.ts +4 -0
  67. package/dist/schedulers/getClientList.d.ts.map +1 -0
  68. package/dist/schedulers/getClientList.js +28 -0
  69. package/dist/schedulers/getClientList.js.map +1 -0
  70. package/dist/tasks/client/clientTasks.d.ts +13 -0
  71. package/dist/tasks/client/clientTasks.d.ts.map +1 -0
  72. package/dist/tasks/client/clientTasks.js +87 -0
  73. package/dist/tasks/client/clientTasks.js.map +1 -0
  74. package/dist/tasks/dataset/datasetTasks.d.ts +13 -0
  75. package/dist/tasks/dataset/datasetTasks.d.ts.map +1 -0
  76. package/dist/tasks/dataset/datasetTasks.js +19 -0
  77. package/dist/tasks/dataset/datasetTasks.js.map +1 -0
  78. package/dist/tasks/dataset/datasetTasksUtils.d.ts +3 -0
  79. package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +1 -0
  80. package/dist/tasks/dataset/datasetTasksUtils.js +34 -0
  81. package/dist/tasks/dataset/datasetTasksUtils.js.map +1 -0
  82. package/dist/tasks/detection/decodePayload.d.ts +3 -0
  83. package/dist/tasks/detection/decodePayload.d.ts.map +1 -0
  84. package/dist/tasks/detection/decodePayload.js +302 -0
  85. package/dist/tasks/detection/decodePayload.js.map +1 -0
  86. package/dist/tasks/detection/getBotScore.d.ts +2 -0
  87. package/dist/tasks/detection/getBotScore.d.ts.map +1 -0
  88. package/dist/tasks/detection/getBotScore.js +17 -0
  89. package/dist/tasks/detection/getBotScore.js.map +1 -0
  90. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +29 -0
  91. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -0
  92. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +242 -0
  93. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -0
  94. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +7 -0
  95. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -0
  96. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +18 -0
  97. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -0
  98. package/dist/tasks/index.d.ts +2 -0
  99. package/dist/tasks/index.d.ts.map +1 -0
  100. package/dist/tasks/index.js +2 -0
  101. package/dist/tasks/index.js.map +1 -0
  102. package/dist/tasks/powCaptcha/powTasks.d.ts +13 -0
  103. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -0
  104. package/dist/tasks/powCaptcha/powTasks.js +84 -0
  105. package/dist/tasks/powCaptcha/powTasks.js.map +1 -0
  106. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +3 -0
  107. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +1 -0
  108. package/dist/tasks/powCaptcha/powTasksUtils.js +22 -0
  109. package/dist/tasks/powCaptcha/powTasksUtils.js.map +1 -0
  110. package/dist/tasks/tasks.d.ts +22 -0
  111. package/dist/tasks/tasks.d.ts.map +1 -0
  112. package/dist/tasks/tasks.js +24 -0
  113. package/dist/tasks/tasks.js.map +1 -0
  114. package/dist/tests/accounts.d.ts +12 -0
  115. package/dist/tests/accounts.d.ts.map +1 -0
  116. package/dist/tests/accounts.js +35 -0
  117. package/dist/tests/accounts.js.map +1 -0
  118. package/dist/tests/contract/helpers.test.d.ts +6 -0
  119. package/dist/tests/contract/helpers.test.d.ts.map +1 -0
  120. package/dist/tests/contract/helpers.test.js +54 -0
  121. package/dist/tests/contract/helpers.test.js.map +1 -0
  122. package/dist/tests/dataUtils/DatabaseAccounts.d.ts +35 -0
  123. package/dist/tests/dataUtils/DatabaseAccounts.d.ts.map +1 -0
  124. package/dist/tests/dataUtils/DatabaseAccounts.js +84 -0
  125. package/dist/tests/dataUtils/DatabaseAccounts.js.map +1 -0
  126. package/dist/tests/dataUtils/DatabasePopulator.d.ts +73 -0
  127. package/dist/tests/dataUtils/DatabasePopulator.d.ts.map +1 -0
  128. package/dist/tests/dataUtils/DatabasePopulator.js +326 -0
  129. package/dist/tests/dataUtils/DatabasePopulator.js.map +1 -0
  130. package/dist/tests/dataUtils/dapp-example-contract/dapp.json +648 -0
  131. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts +4 -0
  132. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.d.ts.map +1 -0
  133. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js +27 -0
  134. package/dist/tests/dataUtils/dapp-example-contract/loadFiles.js.map +1 -0
  135. package/dist/tests/dataUtils/funds.d.ts +9 -0
  136. package/dist/tests/dataUtils/funds.d.ts.map +1 -0
  137. package/dist/tests/dataUtils/funds.js +105 -0
  138. package/dist/tests/dataUtils/funds.js.map +1 -0
  139. package/dist/tests/dataUtils/populateDatabase.d.ts +16 -0
  140. package/dist/tests/dataUtils/populateDatabase.d.ts.map +1 -0
  141. package/dist/tests/dataUtils/populateDatabase.js +72 -0
  142. package/dist/tests/dataUtils/populateDatabase.js.map +1 -0
  143. package/dist/tests/getUser.d.ts +4 -0
  144. package/dist/tests/getUser.d.ts.map +1 -0
  145. package/dist/tests/getUser.js +18 -0
  146. package/dist/tests/getUser.js.map +1 -0
  147. package/dist/tests/index.d.ts +2 -0
  148. package/dist/tests/index.d.ts.map +1 -0
  149. package/dist/tests/index.js +2 -0
  150. package/dist/tests/index.js.map +1 -0
  151. package/dist/tests/integration/imgCaptcha.integration.test.d.ts +2 -0
  152. package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +1 -0
  153. package/dist/tests/integration/imgCaptcha.integration.test.js +137 -0
  154. package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -0
  155. package/dist/tests/integration/imgCaptcha.test.d.ts +2 -0
  156. package/dist/tests/integration/imgCaptcha.test.d.ts.map +1 -0
  157. package/dist/tests/integration/imgCaptcha.test.js +103 -0
  158. package/dist/tests/integration/imgCaptcha.test.js.map +1 -0
  159. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +32 -0
  160. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +1 -0
  161. package/dist/tests/integration/mocks/solvedTestCaptchas.js +1046 -0
  162. package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +1 -0
  163. package/dist/tests/integration/powCaptcha.integration.test.d.ts +2 -0
  164. package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +1 -0
  165. package/dist/tests/integration/powCaptcha.integration.test.js +222 -0
  166. package/dist/tests/integration/powCaptcha.integration.test.js.map +1 -0
  167. package/dist/tests/integration/powCaptcha.test.d.ts +2 -0
  168. package/dist/tests/integration/powCaptcha.test.d.ts.map +1 -0
  169. package/dist/tests/integration/powCaptcha.test.js +133 -0
  170. package/dist/tests/integration/powCaptcha.test.js.map +1 -0
  171. package/dist/tests/integration/registerSitekey.d.ts +2 -0
  172. package/dist/tests/integration/registerSitekey.d.ts.map +1 -0
  173. package/dist/tests/integration/registerSitekey.js +28 -0
  174. package/dist/tests/integration/registerSitekey.js.map +1 -0
  175. package/dist/tests/tasks/tasks.test.d.ts +6 -0
  176. package/dist/tests/tasks/tasks.test.d.ts.map +1 -0
  177. package/dist/tests/tasks/tasks.test.js +636 -0
  178. package/dist/tests/tasks/tasks.test.js.map +1 -0
  179. package/dist/tests/unit/api/authMiddleware.test.d.ts +2 -0
  180. package/dist/tests/unit/api/authMiddleware.test.d.ts.map +1 -0
  181. package/dist/tests/unit/api/authMiddleware.test.js +87 -0
  182. package/dist/tests/unit/api/authMiddleware.test.js.map +1 -0
  183. package/dist/tests/unit/api/authMiddleware.unit.test.d.ts +2 -0
  184. package/dist/tests/unit/api/authMiddleware.unit.test.d.ts.map +1 -0
  185. package/dist/tests/unit/api/authMiddleware.unit.test.js +108 -0
  186. package/dist/tests/unit/api/authMiddleware.unit.test.js.map +1 -0
  187. package/dist/tests/unit/api/captchaScheduler.test.d.ts +2 -0
  188. package/dist/tests/unit/api/captchaScheduler.test.d.ts.map +1 -0
  189. package/dist/tests/unit/api/captchaScheduler.test.js +47 -0
  190. package/dist/tests/unit/api/captchaScheduler.test.js.map +1 -0
  191. package/dist/tests/unit/api/errorHandler.test.d.ts +2 -0
  192. package/dist/tests/unit/api/errorHandler.test.d.ts.map +1 -0
  193. package/dist/tests/unit/api/errorHandler.test.js +65 -0
  194. package/dist/tests/unit/api/errorHandler.test.js.map +1 -0
  195. package/dist/tests/unit/api/errorHandler.unit.test.d.ts +2 -0
  196. package/dist/tests/unit/api/errorHandler.unit.test.d.ts.map +1 -0
  197. package/dist/tests/unit/api/errorHandler.unit.test.js +100 -0
  198. package/dist/tests/unit/api/errorHandler.unit.test.js.map +1 -0
  199. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +2 -0
  200. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +1 -0
  201. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +63 -0
  202. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -0
  203. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +2 -0
  204. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +1 -0
  205. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +172 -0
  206. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -0
  207. package/dist/tests/unit/tasks/dataset/datasetTasks.test.d.ts +2 -0
  208. package/dist/tests/unit/tasks/dataset/datasetTasks.test.d.ts.map +1 -0
  209. package/dist/tests/unit/tasks/dataset/datasetTasks.test.js +82 -0
  210. package/dist/tests/unit/tasks/dataset/datasetTasks.test.js.map +1 -0
  211. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +2 -0
  212. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +1 -0
  213. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +86 -0
  214. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +1 -0
  215. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.d.ts +2 -0
  216. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.d.ts.map +1 -0
  217. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.js +75 -0
  218. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.test.js.map +1 -0
  219. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +2 -0
  220. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +1 -0
  221. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +75 -0
  222. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +1 -0
  223. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.d.ts +2 -0
  224. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.d.ts.map +1 -0
  225. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.js +245 -0
  226. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.js.map +1 -0
  227. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +2 -0
  228. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +1 -0
  229. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +266 -0
  230. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -0
  231. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.d.ts +2 -0
  232. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.d.ts.map +1 -0
  233. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.js +45 -0
  234. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.test.js.map +1 -0
  235. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +2 -0
  236. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +1 -0
  237. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +46 -0
  238. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +1 -0
  239. package/dist/tests/unit/tasks/powCaptcha/powTasks.test.d.ts +2 -0
  240. package/dist/tests/unit/tasks/powCaptcha/powTasks.test.d.ts.map +1 -0
  241. package/dist/tests/unit/tasks/powCaptcha/powTasks.test.js +121 -0
  242. package/dist/tests/unit/tasks/powCaptcha/powTasks.test.js.map +1 -0
  243. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +2 -0
  244. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +1 -0
  245. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +209 -0
  246. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -0
  247. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.d.ts +2 -0
  248. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.d.ts.map +1 -0
  249. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.js +94 -0
  250. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.test.js.map +1 -0
  251. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +2 -0
  252. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +1 -0
  253. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +65 -0
  254. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +1 -0
  255. package/dist/tests/util.test.d.ts +2 -0
  256. package/dist/tests/util.test.d.ts.map +1 -0
  257. package/dist/tests/util.test.js +23 -0
  258. package/dist/tests/util.test.js.map +1 -0
  259. package/dist/util.d.ts +6 -0
  260. package/dist/util.d.ts.map +1 -0
  261. package/dist/util.js +34 -0
  262. package/dist/util.js.map +1 -0
  263. package/package.json +14 -12
@@ -0,0 +1,326 @@
1
+ import { BN, BN_ZERO } from '@polkadot/util/bn';
2
+ import { ContractDeployer, getPairAsync, wrapQuery } from '@prosopo/contract';
3
+ import { DappPayee, Payee } from '@prosopo/captcha-contract/types-returns';
4
+ import { ProsopoContractError, ProsopoEnvError, getLogLevel, getLogger } from '@prosopo/common';
5
+ import { Tasks } from '../../tasks/index.js';
6
+ import { TransactionQueue, submitTx } from '@prosopo/tx';
7
+ import { sendFunds as _sendFunds, getSendAmount, getStakeAmount } from './funds.js';
8
+ import { accountAddress, accountContract, accountMnemonic } from '../accounts.js';
9
+ import { createType } from '@polkadot/types/create';
10
+ import { datasetWithSolutionHashes } from '@prosopo/datasets';
11
+ import { get } from '@prosopo/util';
12
+ import { mnemonicGenerate } from '@polkadot/util-crypto/mnemonic';
13
+ import { randomAsHex } from '@polkadot/util-crypto/random';
14
+ import { stringToU8a } from '@polkadot/util/string';
15
+ const urlBase = 'http://localhost';
16
+ const PROVIDER_FEE = 10;
17
+ const PROVIDER_PAYEE = Payee.dapp;
18
+ export var IDatabasePopulatorMethodNames;
19
+ (function (IDatabasePopulatorMethodNames) {
20
+ IDatabasePopulatorMethodNames["registerProvider"] = "registerProvider";
21
+ IDatabasePopulatorMethodNames["registerProviderWithStake"] = "registerProviderWithStake";
22
+ IDatabasePopulatorMethodNames["registerProviderWithStakeAndDataset"] = "registerProviderWithStakeAndDataset";
23
+ IDatabasePopulatorMethodNames["registerDapp"] = "registerDapp";
24
+ IDatabasePopulatorMethodNames["registerDappWithStake"] = "registerDappWithStake";
25
+ IDatabasePopulatorMethodNames["registerDappUser"] = "registerDappUser";
26
+ })(IDatabasePopulatorMethodNames || (IDatabasePopulatorMethodNames = {}));
27
+ export class IDatabasePopulatorMethods {
28
+ }
29
+ class DatabasePopulator {
30
+ constructor(env, dappAbiMetadata, dappWasm, logLevel) {
31
+ this._registeredProviders = [];
32
+ this._registeredProvidersWithStake = [];
33
+ this._registeredProvidersWithStakeAndDataset = [];
34
+ this._registeredDapps = [];
35
+ this._registeredDappsWithStake = [];
36
+ this._registeredDappUsers = [];
37
+ this._registeredProviderUrls = new Set();
38
+ this.providerStakeDefault = BN_ZERO;
39
+ this.stakeAmount = BN_ZERO;
40
+ this.sendAmount = BN_ZERO;
41
+ this.mockEnv = env;
42
+ this.dappAbiMetadata = dappAbiMetadata;
43
+ this.dappWasm = dappWasm;
44
+ this.logger = getLogger(getLogLevel(logLevel), 'DatabasePopulator');
45
+ this._isReady = this.mockEnv.isReady().then(async () => {
46
+ try {
47
+ this._transactionQueue = new TransactionQueue(this.mockEnv.getApi(), this.mockEnv.getPair(), this.logger.getLogLevel());
48
+ const tasks = new Tasks(this.mockEnv);
49
+ const promiseStakeDefault = wrapQuery(tasks.contract.query.getProviderStakeThreshold, tasks.contract.query)();
50
+ const res = await promiseStakeDefault;
51
+ this.providerStakeDefault = new BN(res.rawNumber);
52
+ this.stakeAmount = getStakeAmount(env, this.providerStakeDefault);
53
+ this.sendAmount = getSendAmount(env, this.stakeAmount);
54
+ }
55
+ catch (e) {
56
+ throw new Error(String(e));
57
+ }
58
+ });
59
+ }
60
+ get transactionQueue() {
61
+ if (!this._transactionQueue) {
62
+ throw new ProsopoEnvError('GENERAL.ENVIRONMENT_NOT_READY');
63
+ }
64
+ return this._transactionQueue;
65
+ }
66
+ set transactionQueue(txQueue) {
67
+ this._transactionQueue = txQueue;
68
+ }
69
+ get providers() {
70
+ return this._registeredProviders;
71
+ }
72
+ set providers(providers) {
73
+ this._registeredProviders = providers;
74
+ }
75
+ get providersWithStake() {
76
+ return this._registeredProvidersWithStake;
77
+ }
78
+ set providersWithStake(accounts) {
79
+ this._registeredProvidersWithStake = accounts;
80
+ }
81
+ get providersWithStakeAndDataset() {
82
+ return this._registeredProvidersWithStakeAndDataset;
83
+ }
84
+ set providersWithStakeAndDataset(accounts) {
85
+ this._registeredProvidersWithStakeAndDataset = accounts;
86
+ }
87
+ get dapps() {
88
+ return this._registeredDapps;
89
+ }
90
+ set dapps(accounts) {
91
+ this._registeredDapps = accounts;
92
+ }
93
+ get dappsWithStake() {
94
+ return this._registeredDappsWithStake;
95
+ }
96
+ set dappsWithStake(accounts) {
97
+ this._registeredDappsWithStake = accounts;
98
+ }
99
+ get dappUsers() {
100
+ return this._registeredDappUsers;
101
+ }
102
+ set dappUsers(accounts) {
103
+ this._registeredDappUsers = accounts;
104
+ }
105
+ isReady() {
106
+ return this._isReady;
107
+ }
108
+ createAccount() {
109
+ const account = this.createAccountAndAddToKeyring();
110
+ if (!account) {
111
+ throw new ProsopoEnvError('DEVELOPER.CREATE_ACCOUNT_FAILED');
112
+ }
113
+ return { address: account[1], mnemonic: account[0], contractAddress: undefined };
114
+ }
115
+ createAccountAndAddToKeyring() {
116
+ const mnemonic = mnemonicGenerate();
117
+ const account = this.mockEnv.keyring.addFromMnemonic(mnemonic);
118
+ const { address } = account;
119
+ return [mnemonic, address];
120
+ }
121
+ sendFunds(account, payee, amount) {
122
+ const address = typeof account === 'string' ? account : accountAddress(account);
123
+ return _sendFunds(this.mockEnv, address, payee.toString(), amount, this.transactionQueue);
124
+ }
125
+ async changeSigner(account) {
126
+ const mnemonic = typeof account === 'string' ? account : accountMnemonic(account);
127
+ if (!this.mockEnv.contractInterface) {
128
+ throw new ProsopoEnvError('DEVELOPER.NO_MOCK_ENV');
129
+ }
130
+ const network = this.mockEnv.config.networks[this.mockEnv.defaultNetwork];
131
+ const pair = await getPairAsync(network, mnemonic, '');
132
+ return this.mockEnv.changeSigner(pair);
133
+ }
134
+ async registerProvider(fund, url, noPush) {
135
+ try {
136
+ const urlString = url || this.randomUrl();
137
+ const _url = Array.from(stringToU8a(urlString));
138
+ const account = this.createAccount();
139
+ this.logger.debug('Registering provider', '`', accountAddress(account), '`', 'with url', urlString, 'and mnemonic', '`', accountMnemonic(account), '`');
140
+ if (fund) {
141
+ await this.sendFunds(accountAddress(account), 'Provider', this.sendAmount);
142
+ }
143
+ await this.changeSigner(accountMnemonic(account));
144
+ const pair = await this.mockEnv.getSigner();
145
+ const tasks = new Tasks(this.mockEnv);
146
+ const args = [_url, PROVIDER_FEE, PROVIDER_PAYEE];
147
+ const result = await submitTx(this.transactionQueue, tasks.contract, 'providerRegister', args, this.stakeAmount, pair);
148
+ this.logger.info('Provider registered with account', accountAddress(account), 'url', urlString, result.toHuman());
149
+ const _provider = (await tasks.contract.query.getProvider(accountAddress(account))).value.unwrap().unwrap();
150
+ const providerTestAccount = {
151
+ ...account,
152
+ contractValue: _provider,
153
+ };
154
+ if (!noPush) {
155
+ this._registeredProviders.push(providerTestAccount);
156
+ }
157
+ return providerTestAccount;
158
+ }
159
+ catch (e) {
160
+ throw this.createError(e, this.registerProvider.name);
161
+ }
162
+ }
163
+ async updateProvider(account) {
164
+ try {
165
+ await this.changeSigner(account);
166
+ const pair = await this.mockEnv.getSigner();
167
+ const tasks = new Tasks(this.mockEnv);
168
+ const args = [
169
+ account.contractValue.url,
170
+ createType(this.mockEnv.getContractInterface().abi.registry, 'Balance', PROVIDER_FEE),
171
+ PROVIDER_PAYEE,
172
+ ];
173
+ this.logger.info('Updating provider', account.address, account.contractValue);
174
+ await submitTx(this.transactionQueue, tasks.contract, 'providerUpdate', args, BN_ZERO, pair);
175
+ this.logger.info('Provider updated', account.address);
176
+ return (await tasks.contract.query.getProvider(accountAddress(account))).value.unwrap().unwrap();
177
+ }
178
+ catch (e) {
179
+ throw this.createError(e, this.updateProvider.name);
180
+ }
181
+ }
182
+ async registerProviderWithStake(fund) {
183
+ try {
184
+ const url = this.randomUrl();
185
+ const account = await this.registerProvider(fund, url, true);
186
+ const provider = await this.updateProvider(account);
187
+ this._registeredProvidersWithStake.push({
188
+ ...account,
189
+ contractValue: provider,
190
+ });
191
+ return account;
192
+ }
193
+ catch (e) {
194
+ throw this.createError(e, this.registerProviderWithStake.name);
195
+ }
196
+ }
197
+ async addDataset(account, dataset) {
198
+ try {
199
+ await this.changeSigner(account);
200
+ const tasks = new Tasks(this.mockEnv);
201
+ await tasks.providerSetDataset(dataset);
202
+ return (await tasks.contract.query.getProvider(accountAddress(account))).value.unwrap().unwrap();
203
+ }
204
+ catch (e) {
205
+ throw this.createError(e, this.addDataset.name);
206
+ }
207
+ }
208
+ async registerProviderWithStakeAndDataset(fund) {
209
+ try {
210
+ const url = this.randomUrl();
211
+ this.logger.debug('url when registering provider with stake and dataset', url);
212
+ const account = await this.registerProvider(fund, url, true);
213
+ this.logger.debug('url when registering provider with stake and dataset', url, account.address);
214
+ await this.updateProvider(account);
215
+ const provider = await this.addDataset(account, datasetWithSolutionHashes);
216
+ this._registeredProvidersWithStakeAndDataset.push({
217
+ ...account,
218
+ contractValue: provider,
219
+ });
220
+ return account;
221
+ }
222
+ catch (e) {
223
+ throw this.createError(e, this.registerProviderWithStakeAndDataset.name);
224
+ }
225
+ }
226
+ async registerDapp(fund, noPush) {
227
+ try {
228
+ const account = this.createAccount();
229
+ this.logger.debug('Sending funds to `', accountAddress(account), '`');
230
+ if (fund) {
231
+ await this.sendFunds(accountAddress(account), 'Dapp', this.sendAmount);
232
+ }
233
+ this.logger.debug('Changing signer to `', accountAddress(account), '`');
234
+ await this.changeSigner(accountMnemonic(account));
235
+ this.logger.debug('Pair address`', this.mockEnv.pair?.address, '`');
236
+ const tasks = new Tasks(this.mockEnv);
237
+ const dappParams = ['1000000000000000000', 1000, this.mockEnv.getContractInterface().address, 65, 1000000];
238
+ if (!this.mockEnv.pair) {
239
+ throw new ProsopoContractError('CONTRACT.SIGNER_UNDEFINED');
240
+ }
241
+ const deployer = new ContractDeployer(this.mockEnv.getApi(), this.dappAbiMetadata, this.dappWasm, this.mockEnv.pair, dappParams, 0, 0, randomAsHex(), this.mockEnv.config.logLevel, this.transactionQueue);
242
+ const deployResult = await deployer.deploy();
243
+ const instantiateEvent = deployResult.events.find((event) => event.event.section === 'contracts' && event.event.method === 'Instantiated');
244
+ const contractAddress = String(get(instantiateEvent?.event.data, 'contract'));
245
+ account.contractAddress = contractAddress;
246
+ this.logger.debug('Dapp contract address', contractAddress);
247
+ const queryResult = await tasks.contract.query.dappRegister(contractAddress, DappPayee.dapp);
248
+ this.logger.debug('Dapp contract queryResult', JSON.stringify(queryResult, null, 4));
249
+ const error = queryResult.value.err || queryResult.value.ok?.err;
250
+ if (error) {
251
+ throw new ProsopoContractError(new Error(error));
252
+ }
253
+ this.logger.debug('Submitting TX to queue using account', tasks.contract.pair.address);
254
+ const txResult = await submitTx(this.transactionQueue, tasks.contract, 'dappRegister', [contractAddress, DappPayee.dapp], BN_ZERO, tasks.contract.pair);
255
+ this.logger.info('App registered', contractAddress, txResult.toHuman());
256
+ if (txResult.isError) {
257
+ throw new ProsopoContractError(new Error(txResult.isError.toString()));
258
+ }
259
+ const dapp = await tasks.contract.query.getDapp(contractAddress);
260
+ this.logger.info('App registered result', dapp.value.unwrap().unwrap());
261
+ if (!noPush) {
262
+ this._registeredDapps.push({
263
+ ...account,
264
+ contractValue: dapp.value.unwrap().unwrap(),
265
+ contractAddress,
266
+ });
267
+ }
268
+ return account;
269
+ }
270
+ catch (e) {
271
+ throw this.createError(e, this.registerDapp.name);
272
+ }
273
+ }
274
+ async dappFund(account) {
275
+ await this.changeSigner(account);
276
+ const tasks = new Tasks(this.mockEnv);
277
+ this.logger.info('Funding app', accountContract(account), 'from account', tasks.contract.pair.address);
278
+ await submitTx(this.transactionQueue, tasks.contract, 'dappFund', [accountContract(account)], this.stakeAmount, tasks.contract.pair);
279
+ this.logger.info('App funded');
280
+ return (await tasks.contract.query.getDapp(accountContract(account))).value.unwrap().unwrap();
281
+ }
282
+ async registerDappWithStake(fund) {
283
+ try {
284
+ const url = this.randomUrl();
285
+ const account = await this.registerDapp(fund, true);
286
+ const dapp = await this.dappFund(account);
287
+ this._registeredDappsWithStake.push({
288
+ ...account,
289
+ contractValue: dapp,
290
+ });
291
+ return account;
292
+ }
293
+ catch (e) {
294
+ throw new Error(String(e));
295
+ }
296
+ }
297
+ async registerDappUser(fund) {
298
+ const account = this.createAccount();
299
+ if (fund) {
300
+ await this.sendFunds(accountAddress(account), 'DappUser', this.sendAmount);
301
+ }
302
+ this._registeredDappUsers.push({
303
+ ...account,
304
+ });
305
+ return account;
306
+ }
307
+ randomUrl() {
308
+ let url = `${urlBase}/${randomAsHex()}`;
309
+ while (this._registeredProviderUrls.has(url)) {
310
+ url = urlBase + randomAsHex();
311
+ }
312
+ this._registeredProviderUrls.add(url);
313
+ return url;
314
+ }
315
+ createError(err, functionName) {
316
+ const e = {
317
+ error: err,
318
+ };
319
+ return new ProsopoEnvError('DEVELOPER.CREATE_ACCOUNT_FAILED', {
320
+ context: { functionName, e },
321
+ logLevel: this.logger.getLogLevel(),
322
+ });
323
+ }
324
+ }
325
+ export default DatabasePopulator;
326
+ //# sourceMappingURL=DatabasePopulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabasePopulator.js","sourceRoot":"","sources":["../../../src/tests/dataUtils/DatabasePopulator.ts"],"names":[],"mappings":"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"}