@prosopo/procaptcha-pow 2.10.23 → 2.10.24

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.
@@ -1,279 +1,194 @@
1
+ import { ExtensionLoader, buildUpdateState, getDefaultEvents, getProcaptchaRandomActiveProvider, getSimdReadingsForSubmit, pickIpMode, providerRetry } from "@prosopo/procaptcha-common";
2
+ import { ApiParams, CaptchaType, ProcaptchaConfigSchema, encodeProcaptchaOutput } from "@prosopo/types";
1
3
  import { stringToHex } from "@polkadot/util/string";
2
4
  import { ProviderApi } from "@prosopo/api";
3
5
  import { ProsopoEnvError } from "@prosopo/common";
4
- import { encodeFingerprintProof, getFingerprintProof, FINGERPRINT_DISCLOSURE_KEYS } from "@prosopo/fingerprint";
5
- import { getDefaultEvents, buildUpdateState, providerRetry, ExtensionLoader, getProcaptchaRandomActiveProvider, pickIpMode } from "@prosopo/procaptcha-common";
6
- import { ProcaptchaConfigSchema, ApiParams, CaptchaType, encodeProcaptchaOutput } from "@prosopo/types";
7
- import { sleep, solvePoW, embedData } from "@prosopo/util";
6
+ import { FINGERPRINT_DISCLOSURE_KEYS, encodeFingerprintProof, getFingerprintProof } from "@prosopo/fingerprint";
7
+ import { embedData, sleep, solvePoW } from "@prosopo/util";
8
8
  import { randomAsHex } from "@prosopo/util-crypto";
9
- const Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState, onEscalate, getHoneypotValue) => {
10
- const events = getDefaultEvents(callbacks);
11
- let previousProviderUrl;
12
- const defaultState = () => {
13
- return {
14
- // note order matters! see buildUpdateState. These fields are set in order, so disable modal first, then set loading to false, etc.
15
- showModal: false,
16
- loading: false,
17
- index: 0,
18
- challenge: void 0,
19
- solutions: void 0,
20
- isHuman: false,
21
- captchaApi: void 0,
22
- account: void 0
23
- // don't handle timeout here, this should be handled by the state management
24
- };
25
- };
26
- const clearTimeout = () => {
27
- window.clearTimeout(Number(state.timeout));
28
- updateState({ timeout: void 0 });
29
- };
30
- const onFailed = () => {
31
- updateState({
32
- isHuman: false,
33
- loading: false
34
- });
35
- events.onFailed();
36
- resetState(frictionlessState?.restart);
37
- };
38
- const clearSuccessfulChallengeTimeout = () => {
39
- window.clearTimeout(Number(state.successfullChallengeTimeout));
40
- updateState({ successfullChallengeTimeout: void 0 });
41
- };
42
- const getConfig = () => {
43
- const config = {
44
- userAccountAddress: configInput.userAccountAddress || "",
45
- ...configInput
46
- };
47
- if (state.account) {
48
- config.userAccountAddress = state.account.account.address;
49
- }
50
- return ProcaptchaConfigSchema.parse(config);
51
- };
52
- const getAccount = () => {
53
- if (!state.account) {
54
- throw new ProsopoEnvError("GENERAL.ACCOUNT_NOT_FOUND", {
55
- context: { error: "Account not loaded" }
56
- });
57
- }
58
- const account = state.account;
59
- return { account };
60
- };
61
- const getDappAccount = () => {
62
- if (!state.dappAccount) {
63
- throw new ProsopoEnvError("GENERAL.SITE_KEY_MISSING");
64
- }
65
- const dappAccount = state.dappAccount;
66
- return dappAccount;
67
- };
68
- const updateState = buildUpdateState(state, onStateUpdate);
69
- const resetState = (frictionlessRestart) => {
70
- clearTimeout();
71
- clearSuccessfulChallengeTimeout();
72
- updateState(defaultState());
73
- events.onReset();
74
- if (frictionlessRestart) {
75
- frictionlessRestart();
76
- }
77
- };
78
- const setValidChallengeTimeout = () => {
79
- const timeMillis = getConfig().captchas.pow.solutionTimeout;
80
- const successfullChallengeTimeout = setTimeout(() => {
81
- updateState({ isHuman: false });
82
- events.onExpired();
83
- resetState(frictionlessState?.restart);
84
- }, timeMillis);
85
- updateState({ successfullChallengeTimeout });
86
- };
87
- let checkboxClickX = 0;
88
- let checkboxClickY = 0;
89
- const start = async (x = 0, y = 0) => {
90
- checkboxClickX = x;
91
- checkboxClickY = y;
92
- await providerRetry(
93
- async () => {
94
- if (state.loading) {
95
- return;
96
- }
97
- if (state.isHuman) {
98
- return;
99
- }
100
- resetState();
101
- updateState({
102
- loading: true
103
- });
104
- updateState({ attemptCount: state.attemptCount + 1 });
105
- const config = getConfig();
106
- const selectAccount = async () => {
107
- if (frictionlessState) {
108
- return frictionlessState.userAccount;
109
- }
110
- const ext = new (await ExtensionLoader(config.web2))();
111
- return ext.getAccount(config);
112
- };
113
- const user = await selectAccount();
114
- const userAccount = user.account.address;
115
- updateState({
116
- account: { account: { address: userAccount } }
117
- });
118
- updateState({ dappAccount: config.account.address });
119
- await sleep(100);
120
- if (!config.web2 && !config.userAccountAddress) {
121
- throw new ProsopoEnvError("GENERAL.ACCOUNT_NOT_FOUND", {
122
- context: {
123
- error: "Account address has not been set for web3 mode"
124
- }
125
- });
126
- }
127
- let getRandomProviderResponse = void 0;
128
- if (frictionlessState?.provider) {
129
- getRandomProviderResponse = frictionlessState.provider;
130
- } else {
131
- const currentConfig = getConfig();
132
- getRandomProviderResponse = await getProcaptchaRandomActiveProvider(
133
- currentConfig.defaultEnvironment,
134
- pickIpMode(currentConfig),
135
- { attempt: state.attemptCount, excludeUrl: previousProviderUrl }
136
- );
137
- }
138
- const providerUrl = getRandomProviderResponse.provider.url;
139
- previousProviderUrl = providerUrl;
140
- const providerApi = new ProviderApi(providerUrl, getDappAccount());
141
- const simdReadingsOnChallenge = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings(0) : void 0;
142
- const challenge = await providerApi.getPowCaptchaChallenge(
143
- userAccount,
144
- getDappAccount(),
145
- frictionlessState?.sessionId,
146
- simdReadingsOnChallenge
147
- );
148
- if (challenge.error) {
149
- updateState({
150
- loading: false,
151
- error: {
152
- message: challenge.error.message,
153
- key: challenge.error.key || "API.UNKNOWN_ERROR"
154
- }
155
- });
156
- } else {
157
- const solution = await solvePoW(
158
- challenge.challenge,
159
- challenge.difficulty
160
- );
161
- let salt;
162
- if (x !== void 0 && y !== void 0) {
163
- const coords = [x, y];
164
- const randomSalt = randomAsHex(
165
- coords.map((coord) => coord.toString(16).length + 4).reduce((acc, curr) => acc + curr, 0)
166
- );
167
- salt = embedData(randomSalt, coords);
168
- }
169
- const signer = user.extension?.signer;
170
- if (!signer || !signer.signRaw) {
171
- throw new ProsopoEnvError("GENERAL.CANT_FIND_KEYRINGPAIR", {
172
- context: {
173
- error: "Signer is not defined, cannot sign message to prove account ownership"
174
- }
175
- });
176
- }
177
- const userTimestampSignature = await signer.signRaw({
178
- address: userAccount,
179
- data: stringToHex(challenge[ApiParams.timestamp].toString()),
180
- type: "bytes"
181
- });
182
- let encryptedBehavioralData;
183
- if (frictionlessState?.encryptBehavioralData && (frictionlessState?.behaviorCollector1 || frictionlessState?.behaviorCollector2 || frictionlessState?.behaviorCollector3)) {
184
- try {
185
- const behavioralData = {
186
- collector1: frictionlessState.behaviorCollector1?.getData() || [],
187
- collector2: frictionlessState.behaviorCollector2?.getData() || [],
188
- collector3: frictionlessState.behaviorCollector3?.getData() || [],
189
- deviceCapability: frictionlessState.deviceCapability || "unknown"
190
- };
191
- const dataToEncrypt = frictionlessState.packBehavioralData ? frictionlessState.packBehavioralData(behavioralData) : behavioralData;
192
- encryptedBehavioralData = await frictionlessState.encryptBehavioralData(
193
- JSON.stringify(dataToEncrypt)
194
- );
195
- } catch {
196
- }
197
- }
198
- const simdReadings = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings() : void 0;
199
- const hpValue = getHoneypotValue?.();
200
- const clientMetaData = hpValue ? { hp: hpValue } : void 0;
201
- let fingerprintProof;
202
- try {
203
- fingerprintProof = encodeFingerprintProof(
204
- await getFingerprintProof(FINGERPRINT_DISCLOSURE_KEYS)
205
- );
206
- } catch {
207
- fingerprintProof = void 0;
208
- }
209
- const fpTest = globalThis.__prosopoFingerprintProofTest__;
210
- if (fpTest === "omit") {
211
- fingerprintProof = void 0;
212
- } else if (typeof fpTest === "string" && fpTest.length > 0) {
213
- fingerprintProof = "invalid-fingerprint-proof";
214
- }
215
- const verifiedSolution = await providerApi.submitPowCaptchaSolution(
216
- challenge,
217
- getAccount().account.account.address,
218
- getDappAccount(),
219
- solution,
220
- userTimestampSignature.signature.toString(),
221
- encryptedBehavioralData,
222
- salt,
223
- simdReadings,
224
- clientMetaData,
225
- fingerprintProof
226
- );
227
- const escalation = verifiedSolution[ApiParams.escalation];
228
- if (escalation && (escalation[ApiParams.captchaType] === CaptchaType.image || escalation[ApiParams.captchaType] === CaptchaType.puzzle)) {
229
- updateState({ loading: false });
230
- const isRealClick = checkboxClickX !== 0 || checkboxClickY !== 0;
231
- onEscalate?.(
232
- escalation[ApiParams.captchaType],
233
- escalation[ApiParams.sessionId],
234
- isRealClick ? { x: checkboxClickX, y: checkboxClickY } : void 0
235
- );
236
- } else if (verifiedSolution[ApiParams.verified]) {
237
- updateState({
238
- isHuman: true,
239
- loading: false
240
- });
241
- events.onHuman(
242
- encodeProcaptchaOutput({
243
- [ApiParams.providerUrl]: providerUrl,
244
- [ApiParams.user]: getAccount().account.account.address,
245
- [ApiParams.dapp]: getDappAccount(),
246
- [ApiParams.challenge]: challenge.challenge,
247
- [ApiParams.nonce]: solution,
248
- [ApiParams.timestamp]: challenge.timestamp,
249
- [ApiParams.signature]: {
250
- [ApiParams.provider]: challenge.signature.provider,
251
- [ApiParams.user]: {
252
- [ApiParams.timestamp]: userTimestampSignature.signature.toString()
253
- }
254
- },
255
- [ApiParams.captchaType]: CaptchaType.pow
256
- })
257
- );
258
- setValidChallengeTimeout();
259
- } else {
260
- onFailed();
261
- }
262
- }
263
- },
264
- start,
265
- () => {
266
- resetState();
267
- },
268
- state.attemptCount,
269
- 3
270
- );
271
- };
272
- return {
273
- start,
274
- resetState
275
- };
276
- };
277
- export {
278
- Manager
9
+ //#region src/services/Manager.ts
10
+ var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState, onEscalate, getHoneypotValue) => {
11
+ const events = getDefaultEvents(callbacks);
12
+ let previousProviderUrl;
13
+ const defaultState = () => {
14
+ return {
15
+ showModal: false,
16
+ loading: false,
17
+ index: 0,
18
+ challenge: void 0,
19
+ solutions: void 0,
20
+ isHuman: false,
21
+ captchaApi: void 0,
22
+ account: void 0
23
+ };
24
+ };
25
+ const clearTimeout = () => {
26
+ window.clearTimeout(Number(state.timeout));
27
+ updateState({ timeout: void 0 });
28
+ };
29
+ const onFailed = () => {
30
+ updateState({
31
+ isHuman: false,
32
+ loading: false
33
+ });
34
+ events.onFailed();
35
+ resetState(frictionlessState?.restart);
36
+ };
37
+ const clearSuccessfulChallengeTimeout = () => {
38
+ window.clearTimeout(Number(state.successfullChallengeTimeout));
39
+ updateState({ successfullChallengeTimeout: void 0 });
40
+ };
41
+ const getConfig = () => {
42
+ const config = {
43
+ userAccountAddress: configInput.userAccountAddress || "",
44
+ ...configInput
45
+ };
46
+ if (state.account) config.userAccountAddress = state.account.account.address;
47
+ return ProcaptchaConfigSchema.parse(config);
48
+ };
49
+ const getAccount = () => {
50
+ if (!state.account) throw new ProsopoEnvError("GENERAL.ACCOUNT_NOT_FOUND", { context: { error: "Account not loaded" } });
51
+ return { account: state.account };
52
+ };
53
+ const getDappAccount = () => {
54
+ if (!state.dappAccount) throw new ProsopoEnvError("GENERAL.SITE_KEY_MISSING");
55
+ return state.dappAccount;
56
+ };
57
+ const updateState = buildUpdateState(state, onStateUpdate);
58
+ const resetState = (frictionlessRestart) => {
59
+ clearTimeout();
60
+ clearSuccessfulChallengeTimeout();
61
+ updateState(defaultState());
62
+ events.onReset();
63
+ if (frictionlessRestart) frictionlessRestart();
64
+ };
65
+ const setValidChallengeTimeout = () => {
66
+ const timeMillis = getConfig().captchas.pow.solutionTimeout;
67
+ const successfullChallengeTimeout = setTimeout(() => {
68
+ updateState({ isHuman: false });
69
+ events.onExpired();
70
+ resetState(frictionlessState?.restart);
71
+ }, timeMillis);
72
+ updateState({ successfullChallengeTimeout });
73
+ };
74
+ let checkboxClickX = 0;
75
+ let checkboxClickY = 0;
76
+ const start = async (x = 0, y = 0) => {
77
+ checkboxClickX = x;
78
+ checkboxClickY = y;
79
+ await providerRetry(async () => {
80
+ if (state.loading) return;
81
+ if (state.isHuman) return;
82
+ resetState();
83
+ updateState({ loading: true });
84
+ updateState({ attemptCount: state.attemptCount + 1 });
85
+ const config = getConfig();
86
+ const selectAccount = async () => {
87
+ if (frictionlessState) return frictionlessState.userAccount;
88
+ return new (await (ExtensionLoader(config.web2)))().getAccount(config);
89
+ };
90
+ const user = await selectAccount();
91
+ const userAccount = user.account.address;
92
+ updateState({ account: { account: { address: userAccount } } });
93
+ updateState({ dappAccount: config.account.address });
94
+ await sleep(100);
95
+ if (!config.web2 && !config.userAccountAddress) throw new ProsopoEnvError("GENERAL.ACCOUNT_NOT_FOUND", { context: { error: "Account address has not been set for web3 mode" } });
96
+ let getRandomProviderResponse = void 0;
97
+ if (frictionlessState?.provider) getRandomProviderResponse = frictionlessState.provider;
98
+ else {
99
+ const currentConfig = getConfig();
100
+ getRandomProviderResponse = await getProcaptchaRandomActiveProvider(currentConfig.defaultEnvironment, pickIpMode(currentConfig), {
101
+ attempt: state.attemptCount,
102
+ excludeUrl: previousProviderUrl
103
+ });
104
+ }
105
+ const providerUrl = getRandomProviderResponse.provider.url;
106
+ previousProviderUrl = providerUrl;
107
+ const providerApi = new ProviderApi(providerUrl, getDappAccount());
108
+ const simdReadingsOnChallenge = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings(0) : void 0;
109
+ const challenge = await providerApi.getPowCaptchaChallenge(userAccount, getDappAccount(), frictionlessState?.sessionId, simdReadingsOnChallenge);
110
+ if (challenge.error) updateState({
111
+ loading: false,
112
+ error: {
113
+ message: challenge.error.message,
114
+ key: challenge.error.key || "API.UNKNOWN_ERROR"
115
+ }
116
+ });
117
+ else {
118
+ const solution = await solvePoW(challenge.challenge, challenge.difficulty);
119
+ let salt;
120
+ if (x !== void 0 && y !== void 0) {
121
+ const coords = [x, y];
122
+ salt = embedData(randomAsHex(coords.map((coord) => coord.toString(16).length + 4).reduce((acc, curr) => acc + curr, 0)), coords);
123
+ }
124
+ const signer = user.extension?.signer;
125
+ if (!signer || !signer.signRaw) throw new ProsopoEnvError("GENERAL.CANT_FIND_KEYRINGPAIR", { context: { error: "Signer is not defined, cannot sign message to prove account ownership" } });
126
+ const userTimestampSignature = await signer.signRaw({
127
+ address: userAccount,
128
+ data: stringToHex(challenge[ApiParams.timestamp].toString()),
129
+ type: "bytes"
130
+ });
131
+ let encryptedBehavioralData;
132
+ if (frictionlessState?.encryptBehavioralData && (frictionlessState?.behaviorCollector1 || frictionlessState?.behaviorCollector2 || frictionlessState?.behaviorCollector3)) try {
133
+ const behavioralData = {
134
+ collector1: frictionlessState.behaviorCollector1?.getData() || [],
135
+ collector2: frictionlessState.behaviorCollector2?.getData() || [],
136
+ collector3: frictionlessState.behaviorCollector3?.getData() || [],
137
+ deviceCapability: frictionlessState.deviceCapability || "unknown"
138
+ };
139
+ const dataToEncrypt = frictionlessState.packBehavioralData ? frictionlessState.packBehavioralData(behavioralData) : behavioralData;
140
+ encryptedBehavioralData = await frictionlessState.encryptBehavioralData(JSON.stringify(dataToEncrypt));
141
+ } catch {}
142
+ const simdReadings = await getSimdReadingsForSubmit(frictionlessState);
143
+ const hpValue = getHoneypotValue?.();
144
+ const clientMetaData = hpValue ? { hp: hpValue } : void 0;
145
+ let fingerprintProof;
146
+ try {
147
+ fingerprintProof = encodeFingerprintProof(await getFingerprintProof(FINGERPRINT_DISCLOSURE_KEYS));
148
+ } catch {
149
+ fingerprintProof = void 0;
150
+ }
151
+ const fpTest = globalThis.__prosopoFingerprintProofTest__;
152
+ if (fpTest === "omit") fingerprintProof = void 0;
153
+ else if (typeof fpTest === "string" && fpTest.length > 0) fingerprintProof = "invalid-fingerprint-proof";
154
+ const verifiedSolution = await providerApi.submitPowCaptchaSolution(challenge, getAccount().account.account.address, getDappAccount(), solution, userTimestampSignature.signature.toString(), encryptedBehavioralData, salt, simdReadings, clientMetaData, fingerprintProof);
155
+ const escalation = verifiedSolution[ApiParams.escalation];
156
+ if (escalation && (escalation[ApiParams.captchaType] === CaptchaType.image || escalation[ApiParams.captchaType] === CaptchaType.puzzle)) {
157
+ updateState({ loading: false });
158
+ const isRealClick = checkboxClickX !== 0 || checkboxClickY !== 0;
159
+ onEscalate?.(escalation[ApiParams.captchaType], escalation[ApiParams.sessionId], isRealClick ? {
160
+ x: checkboxClickX,
161
+ y: checkboxClickY
162
+ } : void 0);
163
+ } else if (verifiedSolution[ApiParams.verified]) {
164
+ updateState({
165
+ isHuman: true,
166
+ loading: false
167
+ });
168
+ events.onHuman(encodeProcaptchaOutput({
169
+ [ApiParams.providerUrl]: providerUrl,
170
+ [ApiParams.user]: getAccount().account.account.address,
171
+ [ApiParams.dapp]: getDappAccount(),
172
+ [ApiParams.challenge]: challenge.challenge,
173
+ [ApiParams.nonce]: solution,
174
+ [ApiParams.timestamp]: challenge.timestamp,
175
+ [ApiParams.signature]: {
176
+ [ApiParams.provider]: challenge.signature.provider,
177
+ [ApiParams.user]: { [ApiParams.timestamp]: userTimestampSignature.signature.toString() }
178
+ },
179
+ [ApiParams.captchaType]: CaptchaType.pow
180
+ }));
181
+ setValidChallengeTimeout();
182
+ } else onFailed();
183
+ }
184
+ }, start, () => {
185
+ resetState();
186
+ }, state.attemptCount, 3);
187
+ };
188
+ return {
189
+ start,
190
+ resetState
191
+ };
279
192
  };
193
+ //#endregion
194
+ export { Manager };
@@ -1 +1 @@
1
- {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/services/Manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/services/Manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/procaptcha-pow",
3
- "version": "2.10.23",
3
+ "version": "2.10.24",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -30,31 +30,31 @@
30
30
  "browserslist": ["> 0.5%, last 2 versions, not dead"],
31
31
  "dependencies": {
32
32
  "@polkadot/util": "13.5.7",
33
- "@prosopo/api": "3.5.19",
34
- "@prosopo/common": "3.1.47",
35
- "@prosopo/fingerprint": "2.7.18",
36
- "@prosopo/locale": "3.2.7",
37
- "@prosopo/procaptcha-common": "2.11.17",
38
- "@prosopo/types": "4.9.12",
39
- "@prosopo/util": "3.3.4",
33
+ "@prosopo/api": "3.5.20",
34
+ "@prosopo/common": "3.1.48",
35
+ "@prosopo/fingerprint": "2.7.19",
36
+ "@prosopo/locale": "3.2.8",
37
+ "@prosopo/procaptcha-common": "2.11.18",
38
+ "@prosopo/types": "4.10.0",
39
+ "@prosopo/util": "3.3.5",
40
40
  "@prosopo/util-crypto": "13.5.30",
41
41
  "@prosopo/widget-skeleton": "2.8.4",
42
42
  "react": "18.3.1"
43
43
  },
44
44
  "devDependencies": {
45
- "@prosopo/config": "3.3.4",
45
+ "@prosopo/config": "3.3.5",
46
46
  "@emotion/react": "11.11.1",
47
47
  "@emotion/styled": "11.11.0",
48
48
  "@types/node": "22.10.2",
49
- "@vitest/coverage-v8": "3.2.4",
49
+ "@vitest/coverage-v8": "4.1.10",
50
50
  "concurrently": "9.0.1",
51
51
  "del-cli": "6.0.0",
52
52
  "npm-run-all": "4.1.5",
53
53
  "tslib": "2.7.0",
54
54
  "tsx": "4.20.3",
55
55
  "typescript": "5.6.2",
56
- "vite": "6.4.1",
57
- "vitest": "3.2.4"
56
+ "vite": "8.1.5",
57
+ "vitest": "4.1.10"
58
58
  },
59
59
  "repository": {
60
60
  "type": "git",
@@ -23,11 +23,12 @@ import {
23
23
  import {
24
24
  ExtensionLoader,
25
25
  buildUpdateState,
26
+ getDefaultEvents,
26
27
  getProcaptchaRandomActiveProvider,
28
+ getSimdReadingsForSubmit,
27
29
  pickIpMode,
28
30
  providerRetry,
29
31
  } from "@prosopo/procaptcha-common";
30
- import { getDefaultEvents } from "@prosopo/procaptcha-common";
31
32
  import {
32
33
  type Account,
33
34
  ApiParams,
@@ -337,9 +338,9 @@ export const Manager = (
337
338
  }
338
339
  }
339
340
 
340
- const simdReadings = frictionlessState?.getSimdReadings
341
- ? await frictionlessState.getSimdReadings()
342
- : undefined;
341
+ // Wait 5 secs for ongoing SIMD, else submit without
342
+ const simdReadings =
343
+ await getSimdReadingsForSubmit(frictionlessState);
343
344
  const hpValue = getHoneypotValue?.();
344
345
  const clientMetaData = hpValue ? { hp: hpValue } : undefined;
345
346
  // Best-effort proof of fingerprint; submission proceeds without it