@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.
- package/dist/cjs/server.cjs +32 -30
- package/dist/config.d.ts +18 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/server.d.ts +4 -7
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +21 -21
- package/dist/server.js.map +1 -1
- package/package.json +7 -7
package/dist/cjs/server.cjs
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
150
|
-
|
|
151
|
-
|
|
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
|
|
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;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,eAAe
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
package/dist/server.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
117
|
-
|
|
118
|
-
|
|
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
|
|
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
|
|
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() {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,
|
|
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.
|
|
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.
|
|
45
|
-
"@prosopo/common": "0.3.
|
|
46
|
-
"@prosopo/contract": "0.3.
|
|
47
|
-
"@prosopo/captcha-contract": "0.3.
|
|
48
|
-
"@prosopo/util": "0.3.
|
|
49
|
-
"@prosopo/types": "0.3.
|
|
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",
|