@obolnetwork/obol-sdk 2.12.2 → 2.12.4

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 (37) hide show
  1. package/dist/browser/src/index.js +70 -11
  2. package/dist/browser/src/index.js.map +1 -1
  3. package/dist/cjs/src/index.js +71 -11
  4. package/dist/cjs/src/index.js.map +1 -1
  5. package/dist/cjs/src/verification/clusterLockValidationWorker.js +38 -7
  6. package/dist/cjs/src/verification/clusterLockValidationWorker.js.map +1 -1
  7. package/dist/cjs/src/verification/parallelPool.js +25 -5
  8. package/dist/cjs/src/verification/parallelPool.js.map +1 -1
  9. package/dist/esm/src/{chunk-YSXFCSVK.js → chunk-FGMJVLIN.js} +37 -6
  10. package/dist/esm/src/chunk-FGMJVLIN.js.map +1 -0
  11. package/dist/esm/src/{chunk-T74RX3N2.js → chunk-YZWJJHPO.js} +8 -4
  12. package/dist/esm/src/chunk-YZWJJHPO.js.map +1 -0
  13. package/dist/esm/src/index.js +33 -6
  14. package/dist/esm/src/index.js.map +1 -1
  15. package/dist/esm/src/verification/clusterLockValidationWorker.js +9 -3
  16. package/dist/esm/src/verification/clusterLockValidationWorker.js.map +1 -1
  17. package/dist/esm/src/verification/parallelPool.js +1 -1
  18. package/dist/types/src/errors.d.ts +17 -7
  19. package/dist/types/src/index.d.ts +1 -1
  20. package/dist/types/src/services.d.ts +6 -3
  21. package/dist/types/src/verification/parallelPool.d.ts +4 -0
  22. package/dist/types/src/verification/validationConcurrency.d.ts +11 -0
  23. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  24. package/package.json +2 -2
  25. package/dist/esm/src/chunk-T74RX3N2.js.map +0 -1
  26. package/dist/esm/src/chunk-YSXFCSVK.js.map +0 -1
  27. package/dist/types/test/client/ajv.spec.d.ts +0 -1
  28. package/dist/types/test/client/baseUrl.spec.d.ts +0 -1
  29. package/dist/types/test/client/methods.spec.d.ts +0 -18
  30. package/dist/types/test/eoa/eoa.spec.d.ts +0 -1
  31. package/dist/types/test/exit/ethUtils.spec.d.ts +0 -1
  32. package/dist/types/test/exit/exit.spec.d.ts +0 -1
  33. package/dist/types/test/exit/verificationHelpers.spec.d.ts +0 -1
  34. package/dist/types/test/fixtures.d.ts +0 -359
  35. package/dist/types/test/incentives/incentives.spec.d.ts +0 -1
  36. package/dist/types/test/splits/splits.spec.d.ts +0 -1
  37. package/dist/types/test/verification/parallelPool.spec.d.ts +0 -1
@@ -57,15 +57,16 @@ import {
57
57
  verifyBuilderRegistration,
58
58
  verifyDepositData,
59
59
  verifyNodeSignatures
60
- } from "./chunk-T74RX3N2.js";
60
+ } from "./chunk-YZWJJHPO.js";
61
61
  import {
62
+ ClusterLockValidationBusyError,
62
63
  ClusterLockValidationTimeoutError,
63
64
  ConflictError,
64
65
  InvalidBaseUrlError,
65
66
  SignerRequiredError,
66
67
  UnsupportedChainError,
67
68
  validateClusterLockInWorker
68
- } from "./chunk-YSXFCSVK.js";
69
+ } from "./chunk-FGMJVLIN.js";
69
70
  import {
70
71
  __async,
71
72
  __spreadProps,
@@ -5065,15 +5066,40 @@ var EOA = class {
5065
5066
  }
5066
5067
  };
5067
5068
 
5069
+ // src/verification/validationConcurrency.ts
5070
+ function getMaxConcurrentLockValidations() {
5071
+ const raw = process.env.OBOL_SDK_MAX_CONCURRENT_LOCK_VALIDATIONS;
5072
+ if (raw === "0") return 0;
5073
+ if (raw !== void 0 && raw !== "") {
5074
+ const n = Number.parseInt(raw, 10);
5075
+ if (Number.isFinite(n) && n > 0) return n;
5076
+ }
5077
+ return 2;
5078
+ }
5079
+ var activeValidations = 0;
5080
+ function withLockValidationConcurrency(fn) {
5081
+ return __async(this, null, function* () {
5082
+ const max = getMaxConcurrentLockValidations();
5083
+ if (max === 0) return yield fn();
5084
+ if (activeValidations >= max) {
5085
+ throw new ClusterLockValidationBusyError(max);
5086
+ }
5087
+ activeValidations++;
5088
+ try {
5089
+ return yield fn();
5090
+ } finally {
5091
+ activeValidations--;
5092
+ }
5093
+ });
5094
+ }
5095
+
5068
5096
  // src/services.ts
5069
5097
  var validateClusterLock = (lock, safeRpcUrl) => __async(null, null, function* () {
5070
- try {
5098
+ return yield withLockValidationConcurrency(() => __async(null, null, function* () {
5071
5099
  const inWorker = yield validateClusterLockInWorker(lock, safeRpcUrl);
5072
5100
  if (inWorker !== null) return inWorker;
5073
5101
  return yield isValidClusterLock(lock, safeRpcUrl);
5074
- } catch (err) {
5075
- throw err;
5076
- }
5102
+ }));
5077
5103
  });
5078
5104
 
5079
5105
  // src/index.ts
@@ -5671,6 +5697,7 @@ export {
5671
5697
  CONFIG_VERSION,
5672
5698
  CONFLICT_ERROR_MSG,
5673
5699
  Client,
5700
+ ClusterLockValidationBusyError,
5674
5701
  ClusterLockValidationTimeoutError,
5675
5702
  ConflictError,
5676
5703
  CreatorConfigHashSigningTypes,