@obolnetwork/obol-sdk 2.12.1 → 2.12.2
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/README.md +6 -4
- package/dist/browser/src/index.js +77 -52
- package/dist/browser/src/index.js.map +1 -1
- package/dist/cjs/src/index.js +79 -52
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/verification/clusterLockValidationWorker.js +2 -4
- package/dist/cjs/src/verification/clusterLockValidationWorker.js.map +1 -1
- package/dist/cjs/src/verification/parallelPool.js +8 -9
- package/dist/cjs/src/verification/parallelPool.js.map +1 -1
- package/dist/esm/src/{chunk-5ASVONSJ.js → chunk-T74RX3N2.js} +4 -6
- package/dist/esm/src/chunk-T74RX3N2.js.map +1 -0
- package/dist/esm/src/{chunk-RYTIXFRX.js → chunk-YSXFCSVK.js} +17 -10
- package/dist/esm/src/{chunk-RYTIXFRX.js.map → chunk-YSXFCSVK.js.map} +1 -1
- package/dist/esm/src/index.js +25 -3
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/verification/clusterLockValidationWorker.js +2 -2
- package/dist/esm/src/verification/parallelPool.js +1 -1
- package/dist/types/src/base.d.ts +5 -3
- package/dist/types/src/errors.d.ts +8 -0
- package/dist/types/src/index.d.ts +5 -6
- package/dist/types/test/client/baseUrl.spec.d.ts +1 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/esm/src/chunk-5ASVONSJ.js.map +0 -1
package/dist/cjs/src/index.js
CHANGED
|
@@ -108,6 +108,7 @@ var __yieldStar = (value) => {
|
|
|
108
108
|
// src/index.ts
|
|
109
109
|
var index_exports = {};
|
|
110
110
|
__export(index_exports, {
|
|
111
|
+
ALLOWED_OBOL_API_BASE_URLS: () => ALLOWED_OBOL_API_BASE_URLS,
|
|
111
112
|
AVAILABLE_SPLITTER_CHAINS: () => AVAILABLE_SPLITTER_CHAINS,
|
|
112
113
|
CAPELLA_FORK_MAPPING: () => CAPELLA_FORK_MAPPING,
|
|
113
114
|
CHAIN_CONFIGURATION: () => CHAIN_CONFIGURATION,
|
|
@@ -140,6 +141,7 @@ __export(index_exports, {
|
|
|
140
141
|
FORK_NAMES: () => FORK_NAMES,
|
|
141
142
|
GENESIS_VALIDATOR_ROOT: () => GENESIS_VALIDATOR_ROOT,
|
|
142
143
|
Incentives: () => Incentives,
|
|
144
|
+
InvalidBaseUrlError: () => InvalidBaseUrlError,
|
|
143
145
|
OBOL_SDK_EMAIL: () => OBOL_SDK_EMAIL,
|
|
144
146
|
ObolSplits: () => ObolSplits,
|
|
145
147
|
OperatorConfigHashSigningTypes: () => OperatorConfigHashSigningTypes,
|
|
@@ -183,7 +185,7 @@ var import_uuid = require("uuid");
|
|
|
183
185
|
// package.json
|
|
184
186
|
var package_default = {
|
|
185
187
|
name: "@obolnetwork/obol-sdk",
|
|
186
|
-
version: "2.12.
|
|
188
|
+
version: "2.12.2",
|
|
187
189
|
description: "A package for creating Distributed Validators using the Obol API.",
|
|
188
190
|
bugs: {
|
|
189
191
|
url: "https://github.com/obolnetwork/obol-sdk/issues"
|
|
@@ -261,7 +263,6 @@ var package_default = {
|
|
|
261
263
|
"ajv-formats": "3.0.1",
|
|
262
264
|
"ajv-keywords": "5.1.0",
|
|
263
265
|
"cross-fetch": "4.1.0",
|
|
264
|
-
dotenv: "17.4.2",
|
|
265
266
|
elliptic: "6.6.1",
|
|
266
267
|
ethers: "6.16.0",
|
|
267
268
|
semver: "7.7.4",
|
|
@@ -274,6 +275,7 @@ var package_default = {
|
|
|
274
275
|
"@types/node": "24.12.2",
|
|
275
276
|
"@types/semver": "7.7.1",
|
|
276
277
|
"@types/uuid": "9.0.8",
|
|
278
|
+
dotenv: "17.4.2",
|
|
277
279
|
"@typescript-eslint/eslint-plugin": "6.21.0",
|
|
278
280
|
"@typescript-eslint/parser": "6.21.0",
|
|
279
281
|
eslint: "8.57.1",
|
|
@@ -401,8 +403,6 @@ var MAINNET_SPLIT_V2_FACTORY_BYTECODE = "0x6080604090808252600480361015610015575
|
|
|
401
403
|
var HOODI_SPLIT_V2_FACTORY_BYTECODE = "0x6080604090808252600480361015610015575f80fd5b5f3560e01c9182632556fa391461043c5750816380ebf0ab146102be5781639e317f121461027a578163cd6bc1211461023f578163e9889edd1461016d578163f79918b0146100de575063fc6119b11461006d575f80fd5b346100da575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100da576020905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000f9c25250523df26343222fc46de932355b850c97168152f35b5f80fd5b82346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc916080833601126100da5780359267ffffffffffffffff84116100da5760809084360301126100da5761016573ffffffffffffffffffffffffffffffffffffffff916020946101526105e7565b61015a61060a565b91606435930161090f565b915191168152f35b82346100da5760209073ffffffffffffffffffffffffffffffffffffffff6101656101a061019a3661062d565b91610b37565b309061023a7f000000000000000000000000f9c25250523df26343222fc46de932355b850c9790604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b610b7a565b82346100da576102546101a061019a3661062d565b803b151573ffffffffffffffffffffffffffffffffffffffff8351921682526020820152f35b82346100da5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100da57602091355f525f8252805f20549051908152f35b82346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9181833601126100da5780359267ffffffffffffffff84116100da5760809084360301126100da5761016561039c73ffffffffffffffffffffffffffffffffffffffff9261034a6103766103376105e7565b875192839160209a8b84019601866107c7565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610858565b519020805f525f8652845f205490855191878301528682526103978261083c565b6108c2565b848151910120309061023a7f000000000000000000000000f9c25250523df26343222fc46de932355b850c9790604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b9083346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126100da5782359067ffffffffffffffff82116100da5760809082850192360301126100da576104976105e7565b6105286104a261060a565b6104e4602097888101906104bb8161034a888a866107c7565b519020805f525f8952865f20908154916001830190558751918a8301528982526103978261083c565b73ffffffffffffffffffffffffffffffffffffffff9281898593519101207f000000000000000000000000f9c25250523df26343222fc46de932355b850c97610aae565b1695863b156100da575f858592610569895194859384937fbaa7fda400000000000000000000000000000000000000000000000000000000855284016107c7565b0381838b5af180156105dd57928795927fb3ec24e9259e438f9917b49f27c0dd89a11b7626cb63e6fc977863c0b26a681b95926105ba956105ce575b508188519586956060875260608701906106f5565b93168a85015216868301520390a251908152f35b6105d7906107fb565b8a6105a5565b86513d5f823e3d90fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100da57565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036100da57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc906060828201126100da576004359167ffffffffffffffff83116100da57826080920301126100da576004019060243573ffffffffffffffffffffffffffffffffffffffff811681036100da579060443590565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112156100da57016020813591019167ffffffffffffffff82116100da578160051b360383136100da57565b6080820161070382806106a2565b608085529182905260a08401915f905b80821061078f5750505061072a60208301836106a2565b909284830360208601528183527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82116100da5760609160051b8094602085013760408101356040860152013561ffff81168091036100da5760606020940152010190565b90919283359073ffffffffffffffffffffffffffffffffffffffff82168092036100da57600191815260208091019401920190610713565b9073ffffffffffffffffffffffffffffffffffffffff6107f46020929594956040855260408501906106f5565b9416910152565b67ffffffffffffffff811161080f57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761080f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761080f57604052565b908151915f5b8381106108af575050015f815290565b806020809284010151818501520161089f565b61090d909291926108e160405194859260208401526040830190610899565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283610858565b565b93929161091d838387610b37565b7f000000000000000000000000f9c25250523df26343222fc46de932355b850c976109bb308361023a8490604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b803b610aa55750906109cc91610aae565b9473ffffffffffffffffffffffffffffffffffffffff9283871694853b156100da57604051947fbaa7fda40000000000000000000000000000000000000000000000000000000086525f8680610a268688600484016107c7565b0381838b5af1948515610a9a577fc4cec5a1846f5c98dc275670618bfecffec4da2e7cba63760ef46f38c75d236e96610a7496610a8b575b50816040519687966080885260808801906106f5565b9416602086015216604084015260608301520390a2565b610a94906107fb565b5f610a5e565b6040513d5f823e3d90fd5b96505050505050565b9190604051926c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f5ff5916040525f6060528115610b2a57565b63301164255f526004601cfd5b6040519291610b4f9184916108e191602084016107c7565b610b7460206040518093610b668383018097610899565b908152038084520182610858565b51902090565b91909160ff5f5360355260601b60015260155260555f20905f60355256fea2646970667358221220edd55753c55f257991df670fc562cdf54adb62d710125933fc4a0a7afddbc02564736f6c63430008170033";
|
|
402
404
|
|
|
403
405
|
// src/constants.ts
|
|
404
|
-
var dotenv = __toESM(require("dotenv"));
|
|
405
|
-
dotenv.config();
|
|
406
406
|
var CONFLICT_ERROR_MSG = "Conflict";
|
|
407
407
|
var EIP712_DOMAIN_NAME = "Obol";
|
|
408
408
|
var EIP712_DOMAIN_VERSION = "1";
|
|
@@ -611,40 +611,6 @@ var CAPELLA_FORK_MAPPING = {
|
|
|
611
611
|
// Hoodi
|
|
612
612
|
};
|
|
613
613
|
|
|
614
|
-
// src/base.ts
|
|
615
|
-
var Base = class {
|
|
616
|
-
constructor({
|
|
617
|
-
baseUrl = DEFAULT_BASE_URL,
|
|
618
|
-
chainId = DEFAULT_CHAIN_ID
|
|
619
|
-
}) {
|
|
620
|
-
this.baseUrl = baseUrl;
|
|
621
|
-
this.chainId = chainId;
|
|
622
|
-
this.fork_version = FORK_MAPPING[this.chainId];
|
|
623
|
-
}
|
|
624
|
-
request(endpoint, options) {
|
|
625
|
-
return __async(this, null, function* () {
|
|
626
|
-
const url = `${this.baseUrl}${endpoint}`;
|
|
627
|
-
const config2 = __spreadProps(__spreadValues({}, options), {
|
|
628
|
-
headers: __spreadValues({
|
|
629
|
-
"Content-Type": "application/json",
|
|
630
|
-
"User-Agent": `Obol-SDK/${SDK_VERSION}`
|
|
631
|
-
}, options == null ? void 0 : options.headers)
|
|
632
|
-
});
|
|
633
|
-
try {
|
|
634
|
-
const response = yield fetch(url, config2);
|
|
635
|
-
if (response.ok) {
|
|
636
|
-
return yield response.json();
|
|
637
|
-
} else {
|
|
638
|
-
const errorResponse = yield response.json();
|
|
639
|
-
throw errorResponse;
|
|
640
|
-
}
|
|
641
|
-
} catch (e) {
|
|
642
|
-
throw e;
|
|
643
|
-
}
|
|
644
|
-
});
|
|
645
|
-
}
|
|
646
|
-
};
|
|
647
|
-
|
|
648
614
|
// src/errors.ts
|
|
649
615
|
var ConflictError = class _ConflictError extends Error {
|
|
650
616
|
constructor() {
|
|
@@ -667,6 +633,13 @@ var UnsupportedChainError = class _UnsupportedChainError extends Error {
|
|
|
667
633
|
Object.setPrototypeOf(this, _UnsupportedChainError.prototype);
|
|
668
634
|
}
|
|
669
635
|
};
|
|
636
|
+
var InvalidBaseUrlError = class _InvalidBaseUrlError extends Error {
|
|
637
|
+
constructor(message2) {
|
|
638
|
+
super(message2);
|
|
639
|
+
this.name = "InvalidBaseUrlError";
|
|
640
|
+
Object.setPrototypeOf(this, _InvalidBaseUrlError.prototype);
|
|
641
|
+
}
|
|
642
|
+
};
|
|
670
643
|
var ClusterLockValidationTimeoutError = class _ClusterLockValidationTimeoutError extends Error {
|
|
671
644
|
/**
|
|
672
645
|
* @param timeoutMs - Same value as SDK whole-lock validation worker timeout.
|
|
@@ -681,6 +654,58 @@ var ClusterLockValidationTimeoutError = class _ClusterLockValidationTimeoutError
|
|
|
681
654
|
}
|
|
682
655
|
};
|
|
683
656
|
|
|
657
|
+
// src/base.ts
|
|
658
|
+
var ALLOWED_OBOL_API_BASE_URLS = [
|
|
659
|
+
DEFAULT_BASE_URL,
|
|
660
|
+
"https://obol-api-nonprod-dev.dev.obol.tech",
|
|
661
|
+
"https://obol-api-nonprod-qa.dev.obol.tech"
|
|
662
|
+
];
|
|
663
|
+
var ALLOWED_BASE_URLS = new Set(ALLOWED_OBOL_API_BASE_URLS);
|
|
664
|
+
function assertAllowedBaseUrl(baseUrl) {
|
|
665
|
+
let candidate = baseUrl.trim();
|
|
666
|
+
while (candidate.endsWith("/")) {
|
|
667
|
+
candidate = candidate.slice(0, -1);
|
|
668
|
+
}
|
|
669
|
+
if (!ALLOWED_BASE_URLS.has(candidate)) {
|
|
670
|
+
throw new InvalidBaseUrlError(
|
|
671
|
+
`baseUrl must be one of: ${ALLOWED_OBOL_API_BASE_URLS.join(", ")}`
|
|
672
|
+
);
|
|
673
|
+
}
|
|
674
|
+
return candidate;
|
|
675
|
+
}
|
|
676
|
+
var Base = class {
|
|
677
|
+
constructor({
|
|
678
|
+
baseUrl = DEFAULT_BASE_URL,
|
|
679
|
+
chainId = DEFAULT_CHAIN_ID
|
|
680
|
+
}) {
|
|
681
|
+
this.baseUrl = assertAllowedBaseUrl(baseUrl);
|
|
682
|
+
this.chainId = chainId;
|
|
683
|
+
this.fork_version = FORK_MAPPING[this.chainId];
|
|
684
|
+
}
|
|
685
|
+
request(endpoint, options) {
|
|
686
|
+
return __async(this, null, function* () {
|
|
687
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
688
|
+
const config = __spreadProps(__spreadValues({}, options), {
|
|
689
|
+
headers: __spreadValues({
|
|
690
|
+
"Content-Type": "application/json",
|
|
691
|
+
"User-Agent": `Obol-SDK/${SDK_VERSION}`
|
|
692
|
+
}, options == null ? void 0 : options.headers)
|
|
693
|
+
});
|
|
694
|
+
try {
|
|
695
|
+
const response = yield fetch(url, config);
|
|
696
|
+
if (response.ok) {
|
|
697
|
+
return yield response.json();
|
|
698
|
+
} else {
|
|
699
|
+
const errorResponse = yield response.json();
|
|
700
|
+
throw errorResponse;
|
|
701
|
+
}
|
|
702
|
+
} catch (e) {
|
|
703
|
+
throw e;
|
|
704
|
+
}
|
|
705
|
+
});
|
|
706
|
+
}
|
|
707
|
+
};
|
|
708
|
+
|
|
684
709
|
// src/verification/common.ts
|
|
685
710
|
var import_ssz7 = require("@chainsafe/ssz");
|
|
686
711
|
var import_elliptic = __toESM(require("elliptic"));
|
|
@@ -5333,15 +5358,7 @@ function validateClusterLockInWorker(lock, safeRpcUrl) {
|
|
|
5333
5358
|
const worker = new wt.Worker(workerFile, {
|
|
5334
5359
|
workerData: { lock, safeRpcUrl }
|
|
5335
5360
|
});
|
|
5336
|
-
|
|
5337
|
-
const finish = (result) => {
|
|
5338
|
-
if (settled) return;
|
|
5339
|
-
settled = true;
|
|
5340
|
-
clearTimeout(timer);
|
|
5341
|
-
worker.terminate();
|
|
5342
|
-
resolve(result);
|
|
5343
|
-
};
|
|
5344
|
-
timer = setTimeout(() => {
|
|
5361
|
+
const timer = setTimeout(() => {
|
|
5345
5362
|
if (settled) return;
|
|
5346
5363
|
settled = true;
|
|
5347
5364
|
clearTimeout(timer);
|
|
@@ -5350,6 +5367,13 @@ function validateClusterLockInWorker(lock, safeRpcUrl) {
|
|
|
5350
5367
|
new ClusterLockValidationTimeoutError(VALIDATION_WORKER_TIMEOUT_MS)
|
|
5351
5368
|
);
|
|
5352
5369
|
}, VALIDATION_WORKER_TIMEOUT_MS);
|
|
5370
|
+
const finish = (result) => {
|
|
5371
|
+
if (settled) return;
|
|
5372
|
+
settled = true;
|
|
5373
|
+
clearTimeout(timer);
|
|
5374
|
+
worker.terminate();
|
|
5375
|
+
resolve(result);
|
|
5376
|
+
};
|
|
5353
5377
|
worker.once("message", (msg) => {
|
|
5354
5378
|
finish(msg === true);
|
|
5355
5379
|
});
|
|
@@ -18262,11 +18286,11 @@ var encodeCreateSplitV2DeterministicTxData = (splitParams, splitOwnerAddress, sa
|
|
|
18262
18286
|
);
|
|
18263
18287
|
};
|
|
18264
18288
|
var getChainConfig = (chainId) => {
|
|
18265
|
-
const
|
|
18266
|
-
if (!
|
|
18289
|
+
const config = CHAIN_CONFIGURATION[chainId];
|
|
18290
|
+
if (!config) {
|
|
18267
18291
|
throw new Error(`Chain configuration not found for chain ID ${chainId}`);
|
|
18268
18292
|
}
|
|
18269
|
-
return
|
|
18293
|
+
return config;
|
|
18270
18294
|
};
|
|
18271
18295
|
var requestWithdrawalFromOVM = (_0) => __async(null, [_0], function* ({
|
|
18272
18296
|
ovmAddress,
|
|
@@ -19856,6 +19880,7 @@ var Client = class extends Base {
|
|
|
19856
19880
|
*
|
|
19857
19881
|
* @param config - Client configuration object.
|
|
19858
19882
|
* @param config.baseUrl - Obol API base URL. Defaults to `https://api.obol.tech`.
|
|
19883
|
+
* Must match one of {@link ALLOWED_OBOL_API_BASE_URLS} (API paths use `/v1/...` separately).
|
|
19859
19884
|
* @param config.chainId - Target chain ID. Defaults to `560048` (Hoodi).
|
|
19860
19885
|
* Supported: 1 (Mainnet), 560048 (Hoodi), 100 (Gnosis), 11155111 (Sepolia).
|
|
19861
19886
|
* @param signer - An ethers `Wallet` or `JsonRpcSigner`. Required for any
|
|
@@ -19873,8 +19898,8 @@ var Client = class extends Base {
|
|
|
19873
19898
|
* const client = new Client({ chainId: 560048 }, signer);
|
|
19874
19899
|
* ```
|
|
19875
19900
|
*/
|
|
19876
|
-
constructor(
|
|
19877
|
-
super(
|
|
19901
|
+
constructor(config, signer, provider) {
|
|
19902
|
+
super(config);
|
|
19878
19903
|
this.signer = signer;
|
|
19879
19904
|
this.provider = provider != null ? provider : signer && "provider" in signer ? signer.provider : void 0;
|
|
19880
19905
|
this.incentives = new Incentives(
|
|
@@ -20437,6 +20462,7 @@ var Client = class extends Base {
|
|
|
20437
20462
|
};
|
|
20438
20463
|
// Annotate the CommonJS export names for ESM import in node:
|
|
20439
20464
|
0 && (module.exports = {
|
|
20465
|
+
ALLOWED_OBOL_API_BASE_URLS,
|
|
20440
20466
|
AVAILABLE_SPLITTER_CHAINS,
|
|
20441
20467
|
CAPELLA_FORK_MAPPING,
|
|
20442
20468
|
CHAIN_CONFIGURATION,
|
|
@@ -20469,6 +20495,7 @@ var Client = class extends Base {
|
|
|
20469
20495
|
FORK_NAMES,
|
|
20470
20496
|
GENESIS_VALIDATOR_ROOT,
|
|
20471
20497
|
Incentives,
|
|
20498
|
+
InvalidBaseUrlError,
|
|
20472
20499
|
OBOL_SDK_EMAIL,
|
|
20473
20500
|
ObolSplits,
|
|
20474
20501
|
OperatorConfigHashSigningTypes,
|