@prosopo/server 0.3.40 → 0.3.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,8 +9,6 @@ const api = require("@prosopo/api");
9
9
  const ws = require("@polkadot/rpc-provider/ws");
10
10
  const contractInfo = require("@prosopo/captcha-contract/contract-info");
11
11
  const util = require("@prosopo/util");
12
- const DEFAULT_MAX_VERIFIED_TIME_CACHED = 60 * 1e3;
13
- const DEFAULT_MAX_VERIFIED_TIME_CONTRACT = 5 * 60 * 1e3;
14
12
  class ProsopoServer {
15
13
  constructor(config, pair) {
16
14
  this.config = config;
@@ -97,18 +95,6 @@ class ProsopoServer {
97
95
  }
98
96
  return void 0;
99
97
  }
100
- /**
101
- * Verify the time since the blockNumber is equal to or less than the maxVerifiedTime.
102
- * @param maxVerifiedTime
103
- * @param blockNumber
104
- */
105
- async verifyRecency(blockNumber, maxVerifiedTime) {
106
- const contractApi = await this.getContractApi();
107
- const currentBlock = await contract.getCurrentBlockNumber(contractApi.api);
108
- const blocksPassed = currentBlock - blockNumber;
109
- const blockTime = contract.getBlockTimeMs(contractApi.api);
110
- return blockTime * blocksPassed <= maxVerifiedTime;
111
- }
112
98
  /**
113
99
  * Verify the user with the contract. We check the contract to see if the user has completed a captcha in the
114
100
  * past. If they have, we check the time since the last correct captcha is within the maxVerifiedTime and we check
@@ -116,15 +102,25 @@ class ProsopoServer {
116
102
  * @param user
117
103
  * @param maxVerifiedTime
118
104
  */
119
- async verifyContract(user, maxVerifiedTime = DEFAULT_MAX_VERIFIED_TIME_CONTRACT) {
105
+ async verifyContract(user, maxVerifiedTime) {
120
106
  try {
121
107
  const contractApi = await this.getContractApi();
122
108
  this.logger.info("Provider URL not provided. Verifying with contract.");
123
109
  const correctCaptchaBlockNumber = (await contractApi.query.dappOperatorLastCorrectCaptcha(user)).value.unwrap().unwrap().before.valueOf();
124
- const verifyRecency = await this.verifyRecency(correctCaptchaBlockNumber, maxVerifiedTime);
110
+ const recent = await contract.verifyRecency(
111
+ (await this.getContractApi()).api,
112
+ correctCaptchaBlockNumber,
113
+ maxVerifiedTime
114
+ );
115
+ if (!recent) {
116
+ this.logger.info("User has not completed a captcha recently");
117
+ return false;
118
+ }
125
119
  const isHuman = (await contractApi.query.dappOperatorIsHumanUser(user, this.config.solutionThreshold)).value.unwrap().unwrap();
126
- return isHuman && verifyRecency;
120
+ this.logger.info("isHuman", isHuman);
121
+ return isHuman;
127
122
  } catch (error) {
123
+ this.logger.error(error);
128
124
  return false;
129
125
  }
130
126
  }
@@ -135,28 +131,36 @@ class ProsopoServer {
135
131
  * @param dapp
136
132
  * @param user
137
133
  * @param blockNumber
134
+ * @param timeouts
138
135
  * @param challenge
139
136
  * @param commitmentId
140
- * @param maxVerifiedTime
141
137
  */
142
- async verifyProvider(providerUrl, dapp, user, blockNumber, challenge, commitmentId, maxVerifiedTime = DEFAULT_MAX_VERIFIED_TIME_CACHED) {
138
+ async verifyProvider(providerUrl, dapp, user, blockNumber, timeouts, challenge, commitmentId) {
143
139
  this.logger.info("Verifying with provider.");
144
140
  const providerApi = await this.getProviderApi(providerUrl);
145
141
  if (challenge) {
146
- const result2 = await providerApi.submitPowCaptchaVerify(challenge, dapp);
142
+ const result2 = await providerApi.submitPowCaptchaVerify(challenge, dapp, timeouts.pow.cachedTimeout);
147
143
  return result2.verified;
148
144
  }
149
- const result = await providerApi.verifyDappUser(dapp, user, blockNumber, commitmentId, maxVerifiedTime);
150
- const verifyRecency = await this.verifyRecency(result.blockNumber, maxVerifiedTime);
151
- return result.verified && verifyRecency;
145
+ const recent = await contract.verifyRecency((await this.getContractApi()).api, blockNumber, timeouts.image.cachedTimeout);
146
+ if (!recent) {
147
+ return false;
148
+ }
149
+ const result = await providerApi.verifyDappUser(
150
+ dapp,
151
+ user,
152
+ blockNumber,
153
+ commitmentId,
154
+ timeouts.image.cachedTimeout
155
+ );
156
+ return result.verified;
152
157
  }
153
158
  /**
154
159
  *
155
160
  * @param payload Info output by procaptcha on completion of the captcha process
156
- * @param maxVerifiedTime Maximum time in milliseconds since the blockNumber
157
161
  * @returns
158
162
  */
159
- async isVerified(payload, maxVerifiedTime) {
163
+ async isVerified(payload) {
160
164
  const { user, dapp, providerUrl, commitmentId, blockNumber, challenge } = payload;
161
165
  if (providerUrl && blockNumber) {
162
166
  return await this.verifyProvider(
@@ -164,12 +168,12 @@ class ProsopoServer {
164
168
  dapp,
165
169
  user,
166
170
  blockNumber,
171
+ this.config.timeouts,
167
172
  challenge,
168
- commitmentId,
169
- maxVerifiedTime
173
+ commitmentId
170
174
  );
171
175
  } else {
172
- return await this.verifyContract(user, maxVerifiedTime);
176
+ return await this.verifyContract(user, this.config.timeouts.contract.maxVerifiedTime);
173
177
  }
174
178
  }
175
179
  async getContractApi() {
@@ -184,6 +188,4 @@ class ProsopoServer {
184
188
  return this.contract;
185
189
  }
186
190
  }
187
- exports.DEFAULT_MAX_VERIFIED_TIME_CACHED = DEFAULT_MAX_VERIFIED_TIME_CACHED;
188
- exports.DEFAULT_MAX_VERIFIED_TIME_CONTRACT = DEFAULT_MAX_VERIFIED_TIME_CONTRACT;
189
191
  exports.ProsopoServer = ProsopoServer;
package/dist/config.d.ts CHANGED
@@ -8,17 +8,33 @@ export declare const getServerConfig: () => {
8
8
  password?: string | undefined;
9
9
  };
10
10
  networks: Record<"development" | "rococo" | "shiden", {
11
+ endpoint: string;
11
12
  contract: {
12
- name: string;
13
13
  address: string;
14
+ name: string;
14
15
  };
15
- endpoint: string;
16
16
  pairType: "sr25519" | "ed25519" | "ecdsa" | "ethereum";
17
17
  ss58Format: number;
18
18
  }>;
19
19
  web2: boolean;
20
20
  solutionThreshold: number;
21
21
  dappName: string;
22
+ timeouts: {
23
+ image: {
24
+ challengeTimeout: number;
25
+ solutionTimeout: number;
26
+ verifiedTimeout: number;
27
+ cachedTimeout: number;
28
+ };
29
+ contract: {
30
+ maxVerifiedTime: number;
31
+ };
32
+ pow: {
33
+ solutionTimeout: number;
34
+ verifiedTimeout: number;
35
+ cachedTimeout: number;
36
+ };
37
+ };
22
38
  database?: Partial<Record<"development" | "staging" | "production", {
23
39
  type: string;
24
40
  endpoint: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUtB,CAAA;AAEN,eAAO,MAAM,YAAY,QAAO,MAQ/B,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUtB,CAAA;AAEN,eAAO,MAAM,YAAY,QAAO,MAQ/B,CAAA"}
package/dist/server.d.ts CHANGED
@@ -1,13 +1,11 @@
1
1
  import { ApiPromise } from '@polkadot/api/promise/Api';
2
- import { ContractAbi, NetworkConfig, ProcaptchaOutput, ProsopoServerConfigOutput } from '@prosopo/types';
2
+ import { CaptchaTimeoutOutput, ContractAbi, NetworkConfig, ProcaptchaOutput, ProsopoServerConfigOutput } from '@prosopo/types';
3
3
  import { Keyring } from '@polkadot/keyring';
4
4
  import { KeyringPair } from '@polkadot/keyring/types';
5
5
  import { Logger } from '@prosopo/common';
6
6
  import { ProsopoCaptchaContract } from '@prosopo/contract';
7
7
  import { ProviderApi } from '@prosopo/api';
8
8
  import { WsProvider } from '@polkadot/rpc-provider/ws';
9
- export declare const DEFAULT_MAX_VERIFIED_TIME_CACHED: number;
10
- export declare const DEFAULT_MAX_VERIFIED_TIME_CONTRACT: number;
11
9
  export declare class ProsopoServer {
12
10
  config: ProsopoServerConfigOutput;
13
11
  contract: ProsopoCaptchaContract | undefined;
@@ -30,10 +28,9 @@ export declare class ProsopoServer {
30
28
  getApi(): ApiPromise;
31
29
  getContract(): ProsopoCaptchaContract;
32
30
  checkRandomProvider(user: string, dapp: string, providerUrl: string, blockNumber: number): Promise<import("@prosopo/captcha-contract/types-returns").Provider | undefined>;
33
- verifyRecency(blockNumber: number, maxVerifiedTime: number): Promise<boolean>;
34
- verifyContract(user: string, maxVerifiedTime?: number): Promise<boolean>;
35
- verifyProvider(providerUrl: string, dapp: string, user: string, blockNumber: number, challenge?: string, commitmentId?: string, maxVerifiedTime?: number): Promise<boolean>;
36
- isVerified(payload: ProcaptchaOutput, maxVerifiedTime?: number): Promise<boolean>;
31
+ verifyContract(user: string, maxVerifiedTime: number): Promise<boolean>;
32
+ verifyProvider(providerUrl: string, dapp: string, user: string, blockNumber: number, timeouts: CaptchaTimeoutOutput, challenge?: string, commitmentId?: string): Promise<boolean>;
33
+ isVerified(payload: ProcaptchaOutput): Promise<boolean>;
37
34
  getContractApi(): Promise<ProsopoCaptchaContract>;
38
35
  }
39
36
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EACH,WAAW,EACX,aAAa,EAEb,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAY,MAAM,EAA+C,MAAM,iBAAiB,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAyD,MAAM,mBAAmB,CAAA;AACjH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAItD,eAAO,MAAM,gCAAgC,QAAY,CAAA;AACzD,eAAO,MAAM,kCAAkC,QAAgB,CAAA;AAE/D,qBAAa,aAAa;IACtB,MAAM,EAAE,yBAAyB,CAAA;IACjC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,CAAA;IAC5C,sBAAsB,EAAE,MAAM,CAAA;IAC9B,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,WAAW,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7B,GAAG,EAAE,UAAU,GAAG,SAAS,CAAA;IAC3B,OAAO,EAAE,aAAa,CAAA;gBAEV,MAAM,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE,WAAW;IAiBpD,cAAc,CAAC,WAAW,EAAE,MAAM;IAIxC,sBAAsB,IAAI,MAAM;IAOjC,OAAO;IAUP,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBhC,MAAM,IAAI,UAAU;IAOpB,WAAW,IAAI,sBAAsB;IAkB/B,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAoBjF,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAmB1D,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,SAAqC;IA8BjF,cAAc,CACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,SAAmC;IAoBzC,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BjF,cAAc,IAAI,OAAO,CAAC,sBAAsB,CAAC;CAWjE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EACH,oBAAoB,EACpB,WAAW,EACX,aAAa,EAEb,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAY,MAAM,EAA+C,MAAM,iBAAiB,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAiC,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAItD,qBAAa,aAAa;IACtB,MAAM,EAAE,yBAAyB,CAAA;IACjC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,CAAA;IAC5C,sBAAsB,EAAE,MAAM,CAAA;IAC9B,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,WAAW,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7B,GAAG,EAAE,UAAU,GAAG,SAAS,CAAA;IAC3B,OAAO,EAAE,aAAa,CAAA;gBAEV,MAAM,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE,WAAW;IAiBpD,cAAc,CAAC,WAAW,EAAE,MAAM;IAIxC,sBAAsB,IAAI,MAAM;IAOjC,OAAO;IAUP,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBhC,MAAM,IAAI,UAAU;IAOpB,WAAW,IAAI,sBAAsB;IAkB/B,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAsBjF,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAwCpD,cAAc,CACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM;IAgCZ,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BvD,cAAc,IAAI,OAAO,CAAC,sBAAsB,CAAC;CAWjE"}
package/dist/server.js CHANGED
@@ -2,13 +2,11 @@ import { ApiPromise } from '@polkadot/api/promise/Api';
2
2
  import { NetworkNamesSchema, } from '@prosopo/types';
3
3
  import { Keyring } from '@polkadot/keyring';
4
4
  import { ProsopoEnvError, getLogger, trimProviderUrl } from '@prosopo/common';
5
- import { ProsopoCaptchaContract, getBlockTimeMs, getCurrentBlockNumber, getZeroAddress } from '@prosopo/contract';
5
+ import { ProsopoCaptchaContract, getZeroAddress, verifyRecency } from '@prosopo/contract';
6
6
  import { ProviderApi } from '@prosopo/api';
7
7
  import { WsProvider } from '@polkadot/rpc-provider/ws';
8
8
  import { ContractAbi as abiJson } from '@prosopo/captcha-contract/contract-info';
9
9
  import { get } from '@prosopo/util';
10
- export const DEFAULT_MAX_VERIFIED_TIME_CACHED = 60 * 1000;
11
- export const DEFAULT_MAX_VERIFIED_TIME_CONTRACT = 5 * 60 * 1000;
12
10
  export class ProsopoServer {
13
11
  constructor(config, pair) {
14
12
  this.config = config;
@@ -81,14 +79,7 @@ export class ProsopoServer {
81
79
  }
82
80
  return undefined;
83
81
  }
84
- async verifyRecency(blockNumber, maxVerifiedTime) {
85
- const contractApi = await this.getContractApi();
86
- const currentBlock = await getCurrentBlockNumber(contractApi.api);
87
- const blocksPassed = currentBlock - blockNumber;
88
- const blockTime = getBlockTimeMs(contractApi.api);
89
- return blockTime * blocksPassed <= maxVerifiedTime;
90
- }
91
- async verifyContract(user, maxVerifiedTime = DEFAULT_MAX_VERIFIED_TIME_CONTRACT) {
82
+ async verifyContract(user, maxVerifiedTime) {
92
83
  try {
93
84
  const contractApi = await this.getContractApi();
94
85
  this.logger.info('Provider URL not provided. Verifying with contract.');
@@ -96,34 +87,43 @@ export class ProsopoServer {
96
87
  .unwrap()
97
88
  .unwrap()
98
89
  .before.valueOf();
99
- const verifyRecency = await this.verifyRecency(correctCaptchaBlockNumber, maxVerifiedTime);
90
+ const recent = await verifyRecency((await this.getContractApi()).api, correctCaptchaBlockNumber, maxVerifiedTime);
91
+ if (!recent) {
92
+ this.logger.info('User has not completed a captcha recently');
93
+ return false;
94
+ }
100
95
  const isHuman = (await contractApi.query.dappOperatorIsHumanUser(user, this.config.solutionThreshold)).value
101
96
  .unwrap()
102
97
  .unwrap();
103
- return isHuman && verifyRecency;
98
+ this.logger.info('isHuman', isHuman);
99
+ return isHuman;
104
100
  }
105
101
  catch (error) {
102
+ this.logger.error(error);
106
103
  return false;
107
104
  }
108
105
  }
109
- async verifyProvider(providerUrl, dapp, user, blockNumber, challenge, commitmentId, maxVerifiedTime = DEFAULT_MAX_VERIFIED_TIME_CACHED) {
106
+ async verifyProvider(providerUrl, dapp, user, blockNumber, timeouts, challenge, commitmentId) {
110
107
  this.logger.info('Verifying with provider.');
111
108
  const providerApi = await this.getProviderApi(providerUrl);
112
109
  if (challenge) {
113
- const result = await providerApi.submitPowCaptchaVerify(challenge, dapp);
110
+ const result = await providerApi.submitPowCaptchaVerify(challenge, dapp, timeouts.pow.cachedTimeout);
114
111
  return result.verified;
115
112
  }
116
- const result = await providerApi.verifyDappUser(dapp, user, blockNumber, commitmentId, maxVerifiedTime);
117
- const verifyRecency = await this.verifyRecency(result.blockNumber, maxVerifiedTime);
118
- return result.verified && verifyRecency;
113
+ const recent = await verifyRecency((await this.getContractApi()).api, blockNumber, timeouts.image.cachedTimeout);
114
+ if (!recent) {
115
+ return false;
116
+ }
117
+ const result = await providerApi.verifyDappUser(dapp, user, blockNumber, commitmentId, timeouts.image.cachedTimeout);
118
+ return result.verified;
119
119
  }
120
- async isVerified(payload, maxVerifiedTime) {
120
+ async isVerified(payload) {
121
121
  const { user, dapp, providerUrl, commitmentId, blockNumber, challenge } = payload;
122
122
  if (providerUrl && blockNumber) {
123
- return await this.verifyProvider(providerUrl, dapp, user, blockNumber, challenge, commitmentId, maxVerifiedTime);
123
+ return await this.verifyProvider(providerUrl, dapp, user, blockNumber, this.config.timeouts, challenge, commitmentId);
124
124
  }
125
125
  else {
126
- return await this.verifyContract(user, maxVerifiedTime);
126
+ return await this.verifyContract(user, this.config.timeouts.contract.maxVerifiedTime);
127
127
  }
128
128
  }
129
129
  async getContractApi() {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/server",
3
- "version": "0.3.40",
3
+ "version": "0.3.41",
4
4
  "description": "NodeJS package for server side communication with the prosopo captcha client",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",
@@ -41,12 +41,12 @@
41
41
  "@polkadot/api": "10.13.1",
42
42
  "@polkadot/keyring": "12.6.2",
43
43
  "@polkadot/rpc-provider": "10.13.1",
44
- "@prosopo/api": "0.3.40",
45
- "@prosopo/common": "0.3.40",
46
- "@prosopo/contract": "0.3.40",
47
- "@prosopo/captcha-contract": "0.3.40",
48
- "@prosopo/util": "0.3.40",
49
- "@prosopo/types": "0.3.40"
44
+ "@prosopo/api": "0.3.41",
45
+ "@prosopo/common": "0.3.41",
46
+ "@prosopo/contract": "0.3.41",
47
+ "@prosopo/captcha-contract": "0.3.41",
48
+ "@prosopo/util": "0.3.41",
49
+ "@prosopo/types": "0.3.41"
50
50
  },
51
51
  "devDependencies": {
52
52
  "tslib": "2.6.2",