@prosopo/types 0.3.40 → 0.3.42

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.
@@ -6,7 +6,15 @@ const index = require("../networks/index.cjs");
6
6
  const LogLevel = z.enum(["trace", "debug", "info", "warn", "error", "fatal", "log"]);
7
7
  const DatabaseTypes = z.enum(["mongo", "mongoMemory"]);
8
8
  const EnvironmentTypesSchema = z.enum(["development", "staging", "production"]);
9
- const DEFAULT_MAX_VERIFIED_TIME_CACHED = 60 * 1e3;
9
+ const ONE_MINUTE = 60 * 1e3;
10
+ const DEFAULT_IMAGE_CAPTCHA_TIMEOUT = ONE_MINUTE;
11
+ const DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT = DEFAULT_IMAGE_CAPTCHA_TIMEOUT * 2;
12
+ const DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT = DEFAULT_IMAGE_CAPTCHA_TIMEOUT * 3;
13
+ const DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED = DEFAULT_IMAGE_CAPTCHA_TIMEOUT * 15;
14
+ const DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT = ONE_MINUTE;
15
+ const DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT = DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT * 2;
16
+ const DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT = DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT * 3;
17
+ const DEFAULT_MAX_VERIFIED_TIME_CONTRACT = ONE_MINUTE * 15;
10
18
  const DatabaseConfigSchema = z.record(
11
19
  EnvironmentTypesSchema,
12
20
  z.object({
@@ -23,7 +31,7 @@ const BatchCommitConfigSchema = z.object({
23
31
  const ProsopoBaseConfigSchema = z.object({
24
32
  logLevel: LogLevel.optional().default(LogLevel.enum.info),
25
33
  defaultEnvironment: EnvironmentTypesSchema.default(EnvironmentTypesSchema.Values.production),
26
- defaultNetwork: network.NetworkNamesSchema.default(network.NetworkNamesSchema.Values.rococo),
34
+ defaultNetwork: network.NetworkNamesSchema.default(network.NetworkNamesSchema.Values.astar),
27
35
  // The account with which to query the contract.merge sign transactions
28
36
  account: z.object({
29
37
  address: z.string().optional(),
@@ -31,9 +39,23 @@ const ProsopoBaseConfigSchema = z.object({
31
39
  password: z.string().optional()
32
40
  })
33
41
  });
42
+ const PolkadotSecretJSONSpec = z.object({
43
+ encoded: z.string(),
44
+ encoding: z.object({
45
+ content: z.array(z.string()),
46
+ type: z.array(z.string()),
47
+ version: z.string()
48
+ }),
49
+ address: z.string(),
50
+ meta: z.object({
51
+ genesisHash: z.string(),
52
+ name: z.string(),
53
+ whenCreated: z.number()
54
+ })
55
+ });
34
56
  const ProsopoBasicConfigSchema = ProsopoBaseConfigSchema.merge(
35
57
  z.object({
36
- networks: network.ProsopoNetworksSchema.default(index),
58
+ networks: network.ProsopoNetworkSchema.default(index),
37
59
  database: DatabaseConfigSchema.optional(),
38
60
  devOnlyWatchEvents: z.boolean().optional()
39
61
  })
@@ -64,9 +86,47 @@ const ProsopoClientConfigSchema = ProsopoBasicConfigSchema.merge(
64
86
  serverUrl: z.string().optional()
65
87
  })
66
88
  );
89
+ const defaultImageCaptchaTimeouts = {
90
+ challengeTimeout: DEFAULT_IMAGE_CAPTCHA_TIMEOUT,
91
+ solutionTimeout: DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT,
92
+ verifiedTimeout: DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT,
93
+ cachedTimeout: DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED
94
+ };
95
+ const defaultPoWCaptchaTimeouts = {
96
+ challengeTimeout: DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT,
97
+ solutionTimeout: DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT,
98
+ cachedTimeout: DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT
99
+ };
100
+ const defaultContractCaptchaTimeouts = {
101
+ maxVerifiedTime: DEFAULT_MAX_VERIFIED_TIME_CONTRACT
102
+ };
103
+ const defaultCaptchaTimeouts = {
104
+ image: defaultImageCaptchaTimeouts,
105
+ pow: defaultPoWCaptchaTimeouts,
106
+ contract: defaultContractCaptchaTimeouts
107
+ };
108
+ const CaptchaTimeoutSchema = z.object({
109
+ image: z.object({
110
+ // Set this to a default value for the frontend
111
+ challengeTimeout: z.number().positive().optional().default(DEFAULT_IMAGE_CAPTCHA_TIMEOUT),
112
+ // Set this to a default value for the frontend
113
+ solutionTimeout: z.number().positive().optional().default(DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT),
114
+ verifiedTimeout: z.number().positive().optional().default(DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT),
115
+ cachedTimeout: z.number().positive().optional().default(DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED)
116
+ }).default(defaultImageCaptchaTimeouts),
117
+ pow: z.object({
118
+ verifiedTimeout: z.number().positive().optional().default(DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT),
119
+ solutionTimeout: z.number().positive().optional().default(DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT),
120
+ cachedTimeout: z.number().positive().optional().default(DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT)
121
+ }).default(defaultPoWCaptchaTimeouts),
122
+ contract: z.object({
123
+ maxVerifiedTime: z.number().positive().optional().default(DEFAULT_MAX_VERIFIED_TIME_CONTRACT)
124
+ }).default(defaultContractCaptchaTimeouts)
125
+ }).default(defaultCaptchaTimeouts);
67
126
  const ProsopoServerConfigSchema = ProsopoClientConfigSchema.merge(
68
127
  z.object({
69
- serverUrl: z.string().url().optional()
128
+ serverUrl: z.string().url().optional(),
129
+ timeouts: CaptchaTimeoutSchema.optional().default(defaultCaptchaTimeouts)
70
130
  })
71
131
  );
72
132
  const AccountCreatorConfigSchema = z.object({
@@ -86,7 +146,7 @@ const ProcaptchaConfigSchema = ProsopoClientConfigSchema.and(
86
146
  z.object({
87
147
  accountCreator: AccountCreatorConfigSchema.optional(),
88
148
  theme: ThemeType.optional(),
89
- challengeValidLength: z.number().positive().optional().default(DEFAULT_MAX_VERIFIED_TIME_CACHED)
149
+ captchas: CaptchaTimeoutSchema.optional().default(defaultCaptchaTimeouts)
90
150
  })
91
151
  );
92
152
  const ProsopoConfigSchema = ProsopoBasicConfigSchema.merge(
@@ -110,9 +170,19 @@ const ProsopoConfigSchema = ProsopoBasicConfigSchema.merge(
110
170
  );
111
171
  exports.AccountCreatorConfigSchema = AccountCreatorConfigSchema;
112
172
  exports.BatchCommitConfigSchema = BatchCommitConfigSchema;
173
+ exports.CaptchaTimeoutSchema = CaptchaTimeoutSchema;
174
+ exports.DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT = DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT;
175
+ exports.DEFAULT_IMAGE_CAPTCHA_TIMEOUT = DEFAULT_IMAGE_CAPTCHA_TIMEOUT;
176
+ exports.DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT = DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT;
177
+ exports.DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED = DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED;
178
+ exports.DEFAULT_MAX_VERIFIED_TIME_CONTRACT = DEFAULT_MAX_VERIFIED_TIME_CONTRACT;
179
+ exports.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT = DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT;
180
+ exports.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT = DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT;
181
+ exports.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT = DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT;
113
182
  exports.DatabaseConfigSchema = DatabaseConfigSchema;
114
183
  exports.DatabaseTypes = DatabaseTypes;
115
184
  exports.EnvironmentTypesSchema = EnvironmentTypesSchema;
185
+ exports.PolkadotSecretJSONSpec = PolkadotSecretJSONSpec;
116
186
  exports.ProcaptchaConfigSchema = ProcaptchaConfigSchema;
117
187
  exports.ProsopoBaseConfigSchema = ProsopoBaseConfigSchema;
118
188
  exports.ProsopoBasicConfigSchema = ProsopoBasicConfigSchema;
@@ -4,9 +4,19 @@ const config = require("./config.cjs");
4
4
  const network = require("./network.cjs");
5
5
  exports.AccountCreatorConfigSchema = config.AccountCreatorConfigSchema;
6
6
  exports.BatchCommitConfigSchema = config.BatchCommitConfigSchema;
7
+ exports.CaptchaTimeoutSchema = config.CaptchaTimeoutSchema;
8
+ exports.DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT = config.DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT;
9
+ exports.DEFAULT_IMAGE_CAPTCHA_TIMEOUT = config.DEFAULT_IMAGE_CAPTCHA_TIMEOUT;
10
+ exports.DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT = config.DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT;
11
+ exports.DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED = config.DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED;
12
+ exports.DEFAULT_MAX_VERIFIED_TIME_CONTRACT = config.DEFAULT_MAX_VERIFIED_TIME_CONTRACT;
13
+ exports.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT = config.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT;
14
+ exports.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT = config.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT;
15
+ exports.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT = config.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT;
7
16
  exports.DatabaseConfigSchema = config.DatabaseConfigSchema;
8
17
  exports.DatabaseTypes = config.DatabaseTypes;
9
18
  exports.EnvironmentTypesSchema = config.EnvironmentTypesSchema;
19
+ exports.PolkadotSecretJSONSpec = config.PolkadotSecretJSONSpec;
10
20
  exports.ProcaptchaConfigSchema = config.ProcaptchaConfigSchema;
11
21
  exports.ProsopoBaseConfigSchema = config.ProsopoBaseConfigSchema;
12
22
  exports.ProsopoBasicConfigSchema = config.ProsopoBasicConfigSchema;
@@ -19,4 +29,4 @@ exports.ProsopoServerConfigSchema = config.ProsopoServerConfigSchema;
19
29
  exports.NetworkConfigSchema = network.NetworkConfigSchema;
20
30
  exports.NetworkNamesSchema = network.NetworkNamesSchema;
21
31
  exports.NetworkPairTypeSchema = network.NetworkPairTypeSchema;
22
- exports.ProsopoNetworksSchema = network.ProsopoNetworksSchema;
32
+ exports.ProsopoNetworkSchema = network.ProsopoNetworkSchema;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const enumMap = require("./enumMap.cjs");
4
3
  const z = require("zod");
5
- const NetworkNamesSchema = z.enum(["development", "rococo", "shiden"]);
4
+ const enumMap = require("./enumMap.cjs");
5
+ const NetworkNamesSchema = z.enum(["development", "rococo", "shiden", "astar"]);
6
6
  const NetworkPairTypeSchema = z.union([
7
7
  z.literal("sr25519"),
8
8
  z.literal("ed25519"),
@@ -10,7 +10,7 @@ const NetworkPairTypeSchema = z.union([
10
10
  z.literal("ethereum")
11
11
  ]);
12
12
  const NetworkConfigSchema = z.object({
13
- endpoint: z.string().url(),
13
+ endpoint: z.array(z.string().url()),
14
14
  contract: z.object({
15
15
  address: z.string(),
16
16
  name: z.string()
@@ -18,7 +18,7 @@ const NetworkConfigSchema = z.object({
18
18
  pairType: NetworkPairTypeSchema,
19
19
  ss58Format: z.number().positive().default(42)
20
20
  });
21
- const ProsopoNetworksSchema = enumMap.enumMap(
21
+ const ProsopoNetworkSchema = enumMap.enumMap(
22
22
  NetworkNamesSchema,
23
23
  NetworkConfigSchema.required({
24
24
  endpoint: true,
@@ -29,4 +29,4 @@ const ProsopoNetworksSchema = enumMap.enumMap(
29
29
  exports.NetworkConfigSchema = NetworkConfigSchema;
30
30
  exports.NetworkNamesSchema = NetworkNamesSchema;
31
31
  exports.NetworkPairTypeSchema = NetworkPairTypeSchema;
32
- exports.ProsopoNetworksSchema = ProsopoNetworksSchema;
32
+ exports.ProsopoNetworkSchema = ProsopoNetworkSchema;
@@ -22,9 +22,19 @@ exports.FeaturesEnum = index$1.FeaturesEnum;
22
22
  exports.networks = index;
23
23
  exports.AccountCreatorConfigSchema = config.AccountCreatorConfigSchema;
24
24
  exports.BatchCommitConfigSchema = config.BatchCommitConfigSchema;
25
+ exports.CaptchaTimeoutSchema = config.CaptchaTimeoutSchema;
26
+ exports.DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT = config.DEFAULT_IMAGE_CAPTCHA_SOLUTION_TIMEOUT;
27
+ exports.DEFAULT_IMAGE_CAPTCHA_TIMEOUT = config.DEFAULT_IMAGE_CAPTCHA_TIMEOUT;
28
+ exports.DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT = config.DEFAULT_IMAGE_CAPTCHA_VERIFIED_TIMEOUT;
29
+ exports.DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED = config.DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED;
30
+ exports.DEFAULT_MAX_VERIFIED_TIME_CONTRACT = config.DEFAULT_MAX_VERIFIED_TIME_CONTRACT;
31
+ exports.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT = config.DEFAULT_POW_CAPTCHA_CACHED_TIMEOUT;
32
+ exports.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT = config.DEFAULT_POW_CAPTCHA_SOLUTION_TIMEOUT;
33
+ exports.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT = config.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT;
25
34
  exports.DatabaseConfigSchema = config.DatabaseConfigSchema;
26
35
  exports.DatabaseTypes = config.DatabaseTypes;
27
36
  exports.EnvironmentTypesSchema = config.EnvironmentTypesSchema;
37
+ exports.PolkadotSecretJSONSpec = config.PolkadotSecretJSONSpec;
28
38
  exports.ProcaptchaConfigSchema = config.ProcaptchaConfigSchema;
29
39
  exports.ProsopoBaseConfigSchema = config.ProsopoBaseConfigSchema;
30
40
  exports.ProsopoBasicConfigSchema = config.ProsopoBasicConfigSchema;
@@ -37,7 +47,7 @@ exports.ProsopoServerConfigSchema = config.ProsopoServerConfigSchema;
37
47
  exports.NetworkConfigSchema = network.NetworkConfigSchema;
38
48
  exports.NetworkNamesSchema = network.NetworkNamesSchema;
39
49
  exports.NetworkPairTypeSchema = network.NetworkPairTypeSchema;
40
- exports.ProsopoNetworksSchema = network.ProsopoNetworksSchema;
50
+ exports.ProsopoNetworkSchema = network.ProsopoNetworkSchema;
41
51
  exports.AbiCellSpec = artifacts.AbiCellSpec;
42
52
  exports.AbiDetailsSpec = artifacts.AbiDetailsSpec;
43
53
  exports.AbiEnumSpec = artifacts.AbiEnumSpec;
@@ -7,7 +7,7 @@ const getContractAddress = (defaultAddress) => {
7
7
  const networks = () => {
8
8
  return {
9
9
  [network.NetworkNamesSchema.Values.development]: {
10
- endpoint: process.env.PROSOPO_SUBSTRATE_ENDPOINT || "ws://127.0.0.1:9944",
10
+ endpoint: process.env.PROSOPO_SUBSTRATE_ENDPOINT ? [process.env.PROSOPO_SUBSTRATE_ENDPOINT] : ["ws://127.0.0.1:9944"],
11
11
  contract: {
12
12
  name: "captcha",
13
13
  address: getContractAddress("CONTRACT_NOT_DEPLOYED")
@@ -16,7 +16,7 @@ const networks = () => {
16
16
  ss58Format: 42
17
17
  },
18
18
  [network.NetworkNamesSchema.Values.rococo]: {
19
- endpoint: process.env.PROSOPO_SUBSTRATE_ENDPOINT || "wss://rococo-contracts-rpc.polkadot.io:443",
19
+ endpoint: process.env.PROSOPO_SUBSTRATE_ENDPOINT ? [process.env.PROSOPO_SUBSTRATE_ENDPOINT] : ["wss://rococo-contracts-rpc.polkadot.io:443"],
20
20
  contract: {
21
21
  name: "captcha",
22
22
  address: getContractAddress("5HiVWQhJrysNcFNEWf2crArKht16zrhro3FcekVWocyQjx5u")
@@ -25,13 +25,27 @@ const networks = () => {
25
25
  ss58Format: 42
26
26
  },
27
27
  [network.NetworkNamesSchema.Values.shiden]: {
28
- endpoint: process.env.PROSOPO_SUBSTRATE_ENDPOINT || "wss://shiden.public.blastapi.io",
28
+ endpoint: process.env.PROSOPO_SUBSTRATE_ENDPOINT ? [process.env.PROSOPO_SUBSTRATE_ENDPOINT] : ["wss://shiden.public.blastapi.io"],
29
29
  contract: {
30
30
  address: getContractAddress("XpRox5bNg6YV8BHafsuHQ3b8i7gSq3GKPeYLA1b8EZwrDb3"),
31
31
  name: "captcha"
32
32
  },
33
33
  pairType: pairTypeSr25519,
34
34
  ss58Format: 5
35
+ },
36
+ [network.NetworkNamesSchema.Values.astar]: {
37
+ endpoint: process.env.PROSOPO_SUBSTRATE_ENDPOINT ? [process.env.PROSOPO_SUBSTRATE_ENDPOINT] : [
38
+ "wss://rpc.astar.network",
39
+ "wss://1rpc.io/astr",
40
+ "wss://astar.public.blastapi.io",
41
+ "wss://astar.public.curie.radiumblock.co/ws"
42
+ ],
43
+ contract: {
44
+ address: getContractAddress("X2NLPj49L4UKWAzX8tS1LHTwioMHNyVurCsvTyUNYxcPuWA"),
45
+ name: "captcha"
46
+ },
47
+ pairType: pairTypeSr25519,
48
+ ss58Format: 5
35
49
  }
36
50
  };
37
51
  };
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("../datasets/index.cjs");
4
+ require("../config/index.cjs");
4
5
  const z = require("zod");
5
6
  const captcha = require("../datasets/captcha.cjs");
7
+ const config = require("../config/config.cjs");
6
8
  var ApiPaths = /* @__PURE__ */ ((ApiPaths2) => {
7
9
  ApiPaths2["GetCaptchaChallenge"] = "/v1/prosopo/provider/captcha";
8
10
  ApiPaths2["GetPowCaptchaChallenge"] = "/v1/prosopo/provider/captcha/pow";
@@ -35,6 +37,7 @@ var ApiParams = /* @__PURE__ */ ((ApiParams2) => {
35
37
  ApiParams2["proof"] = "proof";
36
38
  ApiParams2["providerUrl"] = "providerUrl";
37
39
  ApiParams2["procaptchaResponse"] = "procaptcha-response";
40
+ ApiParams2["verifiedTimeout"] = "verifiedTimeout";
38
41
  ApiParams2["maxVerifiedTime"] = "maxVerifiedTime";
39
42
  ApiParams2["verified"] = "verified";
40
43
  ApiParams2["status"] = "status";
@@ -104,7 +107,7 @@ const VerifySolutionBody = z.object({
104
107
  [
105
108
  "maxVerifiedTime"
106
109
  /* maxVerifiedTime */
107
- ]: z.number().optional()
110
+ ]: z.number().optional().default(config.DEFAULT_IMAGE_MAX_VERIFIED_TIME_CACHED)
108
111
  });
109
112
  const ServerPowCaptchaVerifyRequestBody = z.object({
110
113
  [
@@ -114,7 +117,11 @@ const ServerPowCaptchaVerifyRequestBody = z.object({
114
117
  [
115
118
  "dapp"
116
119
  /* dapp */
117
- ]: z.string()
120
+ ]: z.string(),
121
+ [
122
+ "verifiedTimeout"
123
+ /* verifiedTimeout */
124
+ ]: z.number().optional().default(config.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT)
118
125
  });
119
126
  const GetPowCaptchaChallengeRequestBody = z.object({
120
127
  [
@@ -154,7 +161,11 @@ const SubmitPowCaptchaSolutionBody = z.object({
154
161
  [
155
162
  "nonce"
156
163
  /* nonce */
157
- ]: z.number()
164
+ ]: z.number(),
165
+ [
166
+ "verifiedTimeout"
167
+ /* verifiedTimeout */
168
+ ]: z.number().optional().default(config.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT)
158
169
  });
159
170
  exports.AdminApiPaths = AdminApiPaths;
160
171
  exports.ApiParams = ApiParams;