@obolnetwork/obol-sdk 2.11.9 → 2.11.12

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,11 +1,32 @@
1
1
  import { type ClusterValidator, type ProviderType, type SignerType, type OVMRewardsSplitPayload, type OVMTotalSplitPayload, type OVMRequestWithdrawalPayload, type OVMDepositPayload } from '../types.js';
2
2
  /**
3
- * ObolSplits can be used for creating and managing Obol splits.
4
- * @class
5
- * @internal Access it through Client.splits.
3
+ * Deploys and manages Obol Validator Manager (OVM) and SplitV2 contracts
4
+ * for automated reward and principal splitting among cluster participants.
5
+ *
6
+ * Do not instantiate directly; access via `client.splits`.
7
+ *
8
+ * Available methods:
9
+ * - {@link ObolSplits.createValidatorManagerAndRewardsSplit} – rewards-only split (single principal recipient)
10
+ * - {@link ObolSplits.createValidatorManagerAndTotalSplit} – total split (principal also split)
11
+ * - {@link ObolSplits.requestWithdrawal} – request withdrawal from an OVM contract
12
+ * - {@link ObolSplits.deposit} – deposit to an OVM contract
13
+ *
14
+ * All write methods send on-chain transactions and require a signer with ETH for gas.
15
+ *
6
16
  * @example
7
- * const obolClient = new Client(config);
8
- * await obolClient.splits.createValidatorManagerAndRewardsSplit(OVMRewardsSplitPayload);
17
+ * ```typescript
18
+ * const client = new Client({ chainId: 560048 }, signer);
19
+ *
20
+ * const { withdrawal_address, fee_recipient_address } =
21
+ * await client.splits.createValidatorManagerAndRewardsSplit({
22
+ * rewardSplitRecipients: [
23
+ * { address: "0xOp1...", percentAllocation: 50 },
24
+ * { address: "0xOp2...", percentAllocation: 49 },
25
+ * ],
26
+ * principalRecipient: "0xPrincipal...",
27
+ * OVMOwnerAddress: "0xOwner...",
28
+ * });
29
+ * ```
9
30
  */
10
31
  export declare class ObolSplits {
11
32
  private readonly signer;
@@ -13,100 +34,110 @@ export declare class ObolSplits {
13
34
  readonly provider: ProviderType | undefined | null;
14
35
  constructor(signer: SignerType | undefined, chainId: number, provider: ProviderType | undefined | null);
15
36
  /**
16
- * Creates an Obol OVM and Pull split configuration for rewards-only scenario.
37
+ * Deploys an OVM and SplitV2 contract for a **rewards-only** split scenario.
17
38
  *
18
- * This method deploys OVM and SplitV2 contracts for managing validator rewards only.
19
- * Principal is handled by a single address, while rewards are split among recipients.
39
+ * Principal goes to a single address; only validator rewards are split among
40
+ * the configured recipients. Automatically appends the Obol RAF recipient.
20
41
  *
21
- * @remarks
22
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
23
- * and not pushed to version control.
42
+ * - Sends one or more on-chain transactions (irreversible).
43
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
24
44
  *
25
- * **📌 Note:** The Obol Validator Manager (OVM) feature is only enabled on Hoodi on launchpad.
45
+ * @param payload - Configuration for the OVM and SplitV2 deployment.
46
+ * @returns The OVM address as `withdrawal_address` and splitter as `fee_recipient_address`.
47
+ * @throws {SignerRequiredError} If no signer was provided.
48
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
26
49
  *
27
- * @param {OVMRewardsSplitPayload} payload - Data needed to deploy OVM and SplitV2
28
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
29
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
30
- *
31
- * An example of how to use createValidatorManagerAndRewardsSplit:
32
- * [createValidatorManagerAndRewardsSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L333)
50
+ * @example
51
+ * ```typescript
52
+ * const { withdrawal_address, fee_recipient_address } =
53
+ * await client.splits.createValidatorManagerAndRewardsSplit({
54
+ * rewardSplitRecipients: [
55
+ * { address: "0xOp1...", percentAllocation: 50 },
56
+ * { address: "0xOp2...", percentAllocation: 49 },
57
+ * ],
58
+ * principalRecipient: "0xPrincipal...",
59
+ * OVMOwnerAddress: "0xOwner...",
60
+ * });
61
+ * ```
33
62
  */
34
63
  createValidatorManagerAndRewardsSplit(payload: OVMRewardsSplitPayload): Promise<ClusterValidator>;
35
64
  /**
36
- * Creates an Obol OVM and Total split configuration for total split scenario.
65
+ * Deploys an OVM and SplitV2 contract for a **total split** scenario.
37
66
  *
38
- * This method deploys OVM and SplitV2 contracts for managing both validator rewards and principal.
39
- * Both rewards and principal are split among recipients, with rewards including RAF recipient.
67
+ * Both principal and rewards are split among recipients via separate SplitV2
68
+ * contracts. Automatically appends the Obol RAF recipient to rewards.
40
69
  *
41
- * @remarks
42
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
43
- * and not pushed to version control.
70
+ * - Sends one or more on-chain transactions (irreversible).
71
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
44
72
  *
45
- * **📌 Note:** The Obol Validator Manager (OVM) feature is only enabled on Hoodi on launchpad.
73
+ * @param payload - Configuration for the OVM and SplitV2 deployment.
74
+ * @returns The OVM address as `withdrawal_address` and rewards splitter as `fee_recipient_address`.
75
+ * @throws {SignerRequiredError} If no signer was provided.
76
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
46
77
  *
47
- * @param {OVMTotalSplitPayload} payload - Data needed to deploy OVM and SplitV2
48
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
49
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
50
- *
51
- * An example of how to use createValidatorManagerAndTotalSplit:
52
- * [createValidatorManagerAndTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#340)
78
+ * @example
79
+ * ```typescript
80
+ * const { withdrawal_address, fee_recipient_address } =
81
+ * await client.splits.createValidatorManagerAndTotalSplit({
82
+ * rewardSplitRecipients: [
83
+ * { address: "0xOp1...", percentAllocation: 50 },
84
+ * { address: "0xOp2...", percentAllocation: 49 },
85
+ * ],
86
+ * principalSplitRecipients: [
87
+ * { address: "0xOp1...", percentAllocation: 50 },
88
+ * { address: "0xOp2...", percentAllocation: 50 },
89
+ * ],
90
+ * OVMOwnerAddress: "0xOwner...",
91
+ * });
92
+ * ```
53
93
  */
54
94
  createValidatorManagerAndTotalSplit(payload: OVMTotalSplitPayload): Promise<ClusterValidator>;
55
95
  /**
56
- * Requests withdrawal from an OVM contract.
57
- *
58
- * This method allows requesting withdrawal of validator funds from an OVM contract.
59
- * The withdrawal request includes OVM address, validator public keys and corresponding withdrawal amounts.
96
+ * Requests withdrawal of validator funds from an OVM contract.
60
97
  *
61
- * @remarks
62
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
63
- * and not pushed to version control.
98
+ * Sends an on-chain transaction to the OVM contract requesting withdrawal
99
+ * for the specified validator public keys and amounts.
64
100
  *
65
- * @param {OVMRequestWithdrawalPayload} payload - Data needed to request withdrawal
66
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
67
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the request fails
101
+ * @param payload - Withdrawal request data including OVM address, validator
102
+ * public keys, amounts, and fees.
103
+ * @returns The transaction hash of the withdrawal request.
104
+ * @throws {SignerRequiredError} If no signer was provided.
68
105
  *
69
- * An example of how to use requestWithdrawal:
106
+ * @example
70
107
  * ```typescript
71
- * const result = await client.splits.requestWithdrawal({
72
- * ovmAddress: '0x1234567890123456789012345678901234567890',
73
- * pubKeys: ['0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456'],
74
- * amounts: ['32000000000'], // 32 ETH in gwei
75
- * withdrawalFees: '1000000000000000' // Total fees in wei
108
+ * const { txHash } = await client.splits.requestWithdrawal({
109
+ * ovmAddress: "0xOVM...",
110
+ * pubKeys: ["0xValidatorPubkey..."],
111
+ * amounts: ["32000000000"],
112
+ * withdrawalFees: "1000000000000000",
76
113
  * });
77
- * console.log('Withdrawal requested:', result.txHash);
78
114
  * ```
79
115
  */
80
116
  requestWithdrawal(payload: OVMRequestWithdrawalPayload): Promise<{
81
117
  txHash: string;
82
118
  }>;
83
119
  /**
84
- * Deposits to OVM contract by sending individual transactions for each deposit.
85
- *
86
- * This method allows depositing to an OVM contract. Each deposit is sent as a separate transaction
87
- * Each deposit includes validator public key, withdrawal credentials, signature, deposit data root, and amount.
88
- *
89
- * @remarks
90
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
91
- * and not pushed to version control.
120
+ * Deposits validators to an OVM contract. Each deposit is sent as a separate
121
+ * on-chain transaction.
92
122
  *
93
- * @param {OVMDepositPayload} payload - Data needed to deposit to OVM
94
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes, one for each deposit
95
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the deposit fails
123
+ * @param payload - Deposit data including the OVM address and an array of
124
+ * validator deposit objects (pubkey, withdrawal_credentials, signature,
125
+ * deposit_data_root, amount).
126
+ * @returns An array of transaction hashes, one per deposit.
127
+ * @throws {SignerRequiredError} If no signer was provided.
96
128
  *
97
- * An example of how to use deposit:
129
+ * @example
98
130
  * ```typescript
99
- * const result = await client.splits.deposit({
100
- * ovmAddress: '0x1234567890123456789012345678901234567890',
131
+ * const { txHashes } = await client.splits.deposit({
132
+ * ovmAddress: "0xOVM...",
101
133
  * deposits: [{
102
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
103
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
104
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
105
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
106
- * amount: '32000000000000000000' // 32 ETH in wei
107
- * }]
134
+ * pubkey: "0x...",
135
+ * withdrawal_credentials: "0x...",
136
+ * signature: "0x...",
137
+ * deposit_data_root: "0x...",
138
+ * amount: "32000000000000000000",
139
+ * }],
108
140
  * });
109
- * console.log('Deposits completed:', result.txHashes);
110
141
  * ```
111
142
  */
112
143
  deposit(payload: OVMDepositPayload): Promise<{
@@ -1,16 +1,18 @@
1
1
  import { type Wallet, type ethers, type JsonRpcApiProvider, type JsonRpcProvider, type JsonRpcSigner, type Provider } from 'ethers';
2
2
  /**
3
- * Permitted ChainID's
3
+ * Maps Ethereum consensus-layer fork versions (hex) to execution-layer chain IDs.
4
+ *
5
+ * Supported networks:
6
+ * - `0x00000000` → 1 (Mainnet)
7
+ * - `0x00000064` → 100 (Gnosis Chain)
8
+ * - `0x90000069` → 11155111 (Sepolia)
9
+ * - `0x10000910` → 560048 (Hoodi)
4
10
  */
5
11
  export declare enum FORK_MAPPING {
6
12
  /** Mainnet. */
7
13
  '0x00000000' = 1,
8
- /** Goerli/Prater. */
9
- '0x00001020' = 5,
10
14
  /** Gnosis Chain. */
11
15
  '0x00000064' = 100,
12
- /** Holesky. */
13
- '0x01017000' = 17000,
14
16
  /** Sepolia. */
15
17
  '0x90000069' = 11155111,
16
18
  /** Hoodi Chain. */
@@ -18,7 +20,11 @@ export declare enum FORK_MAPPING {
18
20
  }
19
21
  export declare const FORK_NAMES: Record<number, string>;
20
22
  /**
21
- * Node operator data
23
+ * Represents a node operator in a distributed validator cluster.
24
+ *
25
+ * When creating a cluster definition via {@link Client.createClusterDefinition},
26
+ * only `address` is required. The remaining fields are populated during the
27
+ * cluster acceptance and DKG process.
22
28
  */
23
29
  export type ClusterOperator = {
24
30
  /** The operator address. */
@@ -35,7 +41,11 @@ export type ClusterOperator = {
35
41
  config_signature?: string;
36
42
  };
37
43
  /**
38
- * A partial view of `ClusterOperator` with `enr` and `version` as required properties.
44
+ * Payload an operator provides when joining a cluster via
45
+ * {@link Client.acceptClusterDefinition}.
46
+ *
47
+ * Requires at minimum `enr` (Ethereum Node Record) and `version`.
48
+ * Other `ClusterOperator` fields are optional overrides.
39
49
  */
40
50
  export type OperatorPayload = Partial<ClusterOperator> & Required<Pick<ClusterOperator, 'enr' | 'version'>>;
41
51
  /**
@@ -57,7 +67,11 @@ export type ClusterValidator = {
57
67
  withdrawal_address: string;
58
68
  };
59
69
  /**
60
- * Cluster configuration
70
+ * Input payload for creating a new cluster definition via
71
+ * {@link Client.createClusterDefinition}.
72
+ *
73
+ * Required fields: `name`, `operators`, `validators`.
74
+ * Optional fields have sensible defaults applied by the SDK.
61
75
  */
62
76
  export type ClusterPayload = {
63
77
  /** The cluster name. */
@@ -76,7 +90,11 @@ export type ClusterPayload = {
76
90
  consensus_protocol?: string;
77
91
  };
78
92
  /**
79
- * Cluster definition data needed for dkg
93
+ * Full cluster definition as stored by the Obol API. Extends {@link ClusterPayload}
94
+ * with server-generated metadata (uuid, timestamp, config_hash, etc.).
95
+ *
96
+ * Returned by {@link Client.createClusterDefinition},
97
+ * {@link Client.acceptClusterDefinition}, and {@link Client.getClusterDefinition}.
80
98
  */
81
99
  export interface ClusterDefinition extends ClusterPayload {
82
100
  /** The creator of the cluster. */
@@ -107,7 +125,8 @@ export interface ClusterDefinition extends ClusterPayload {
107
125
  compounding?: boolean;
108
126
  }
109
127
  /**
110
- * Split Recipient Keys
128
+ * A recipient in a V1 splitter contract configuration.
129
+ * Used with {@link Client.createObolRewardsSplit} and {@link Client.createObolTotalSplit}.
111
130
  */
112
131
  export type SplitRecipient = {
113
132
  /** The split recipient address. */
@@ -116,7 +135,8 @@ export type SplitRecipient = {
116
135
  percentAllocation: number;
117
136
  };
118
137
  /**
119
- * Split Proxy Params
138
+ * Input payload for {@link Client.createObolTotalSplit}.
139
+ * Deploys a splitter that splits **both principal and rewards**.
120
140
  */
121
141
  export type TotalSplitPayload = {
122
142
  /** The split recipients addresses and splits. */
@@ -129,7 +149,8 @@ export type TotalSplitPayload = {
129
149
  controllerAddress?: string;
130
150
  };
131
151
  /**
132
- * OWR and Split Proxy Params
152
+ * Input payload for {@link Client.createObolRewardsSplit}.
153
+ * Deploys an OWR (principal goes to one address) and a splitter (rewards split among recipients).
133
154
  */
134
155
  export interface RewardsSplitPayload extends TotalSplitPayload {
135
156
  /** Address that will reclaim validator principal after exit. */
@@ -140,7 +161,9 @@ export interface RewardsSplitPayload extends TotalSplitPayload {
140
161
  recoveryAddress?: string;
141
162
  }
142
163
  /**
143
- * OVM and SplitV2 Base Params
164
+ * Base parameters shared by both OVM split scenarios (rewards-only and total split).
165
+ * Used with {@link ObolSplits.createValidatorManagerAndRewardsSplit} and
166
+ * {@link ObolSplits.createValidatorManagerAndTotalSplit}.
144
167
  */
145
168
  export type OVMBaseSplitPayload = {
146
169
  /** The split recipients addresses and splits. */
@@ -155,21 +178,25 @@ export type OVMBaseSplitPayload = {
155
178
  distributorFeePercent?: number;
156
179
  };
157
180
  /**
158
- * OVM and SplitV2 Params for rewards-only split
181
+ * Input payload for {@link ObolSplits.createValidatorManagerAndRewardsSplit}.
182
+ * Principal goes to a single address; rewards are split among recipients.
159
183
  */
160
184
  export type OVMRewardsSplitPayload = OVMBaseSplitPayload & {
161
185
  /** Principal recipient address (single address for rewards-only split). */
162
186
  principalRecipient: string;
163
187
  };
164
188
  /**
165
- * OVM and SplitV2 Params for total split scenario
189
+ * Input payload for {@link ObolSplits.createValidatorManagerAndTotalSplit}.
190
+ * Both principal and rewards are split among recipients.
166
191
  */
167
192
  export type OVMTotalSplitPayload = OVMBaseSplitPayload & {
168
193
  /** Principal recipients addresses and splits (array for total split scenario). */
169
194
  principalSplitRecipients: SplitV2Recipient[];
170
195
  };
171
196
  /**
172
- * Union type for both OVM split scenarios
197
+ * Union type covering both OVM split scenarios.
198
+ * Discriminate by checking for `principalRecipient` (rewards-only) vs
199
+ * `principalSplitRecipients` (total split).
173
200
  */
174
201
  export type OVMSplitPayload = OVMRewardsSplitPayload | OVMTotalSplitPayload;
175
202
  /**
@@ -230,7 +257,8 @@ export type DepositData = {
230
257
  signature: string;
231
258
  };
232
259
  /**
233
- * Required deposit data for validator activation
260
+ * A distributed validator within a cluster lock.
261
+ * Contains the aggregate public key, per-operator public shares, and deposit data.
234
262
  */
235
263
  export type DistributedValidator = {
236
264
  /** The public key of the distributed validator. */
@@ -245,7 +273,12 @@ export type DistributedValidator = {
245
273
  builder_registration?: BuilderRegistration;
246
274
  };
247
275
  /**
248
- * Cluster Details after DKG is complete
276
+ * Cluster lock – the finalized cluster state after a successful DKG ceremony.
277
+ *
278
+ * Contains the distributed validators with their public key shares and deposit data,
279
+ * plus the aggregated BLS signature.
280
+ *
281
+ * Returned by {@link Client.getClusterLock} and {@link Client.getClusterLockByHash}.
249
282
  */
250
283
  export type ClusterLock = {
251
284
  /** The cluster definition. */
@@ -275,11 +308,12 @@ export type ClaimableIncentives = {
275
308
  contract_address: string;
276
309
  };
277
310
  /**
278
- * String expected to be Ethereum Address
311
+ * A string expected to be a checksummed or lowercase Ethereum address (e.g. `"0xAbC...123"`).
279
312
  */
280
313
  export type ETH_ADDRESS = string;
281
314
  /**
282
- * Provider Types
315
+ * Accepted ethers provider types for on-chain reads.
316
+ * Pass any of these as the third argument to `new Client(config, signer, provider)`.
283
317
  */
284
318
  export type ProviderType = Provider | JsonRpcProvider | JsonRpcApiProvider | ethers.BrowserProvider;
285
319
  /**
@@ -287,7 +321,8 @@ export type ProviderType = Provider | JsonRpcProvider | JsonRpcApiProvider | eth
287
321
  */
288
322
  export type SafeRpcUrl = string;
289
323
  /**
290
- * Signer Types
324
+ * Accepted ethers signer types for signing transactions and EIP-712 messages.
325
+ * Pass as the second argument to `new Client(config, signer)`.
291
326
  */
292
327
  export type SignerType = JsonRpcSigner | Wallet;
293
328
  /**
@@ -479,7 +514,8 @@ export type ChainConfig = {
479
514
  };
480
515
  };
481
516
  /**
482
- * Payload for requesting withdrawal from OVM contract
517
+ * Input payload for {@link ObolSplits.requestWithdrawal}.
518
+ * Requests withdrawal of validator funds from an OVM contract.
483
519
  */
484
520
  export type OVMRequestWithdrawalPayload = {
485
521
  /** request withdrawal fees in wei */
@@ -492,7 +528,7 @@ export type OVMRequestWithdrawalPayload = {
492
528
  amounts: string[];
493
529
  };
494
530
  /**
495
- * Payload for requesting withdrawal from EOA contract
531
+ * Input payload for {@link EOA.requestWithdrawal}.
496
532
  */
497
533
  export type EOAWithdrawalPayload = {
498
534
  /** Validator public key in hex format */
@@ -503,7 +539,8 @@ export type EOAWithdrawalPayload = {
503
539
  requiredFee: string;
504
540
  };
505
541
  /**
506
- * Payload for depositing to OVM contract with multicall3
542
+ * Input payload for {@link ObolSplits.deposit}.
543
+ * Deposits one or more validators to an OVM contract.
507
544
  */
508
545
  export type OVMDepositPayload = {
509
546
  /** OVM contract address */
@@ -523,7 +560,8 @@ export type OVMDepositPayload = {
523
560
  }>;
524
561
  };
525
562
  /**
526
- * Payload for depositing to batch deposit contract
563
+ * Input payload for {@link EOA.deposit}.
564
+ * Batch-deposits validators to the beacon chain via the Pier Two batch deposit contract.
527
565
  */
528
566
  export type EOADepositPayload = {
529
567
  /** Array of deposit objects */
@@ -9,7 +9,7 @@ export declare const TEST_ADDRESSES: {
9
9
  readonly ZERO_ADDRESS: string;
10
10
  };
11
11
  export declare const enr = "enr:-HW4QLlrtMjFLGkFT1bwdGbvZQlH8hLi0M2g44JAxEYP3BZmYpcsy9Q56HPPD87fMucjvLv4-obEFacpsg0ehRilbHeAgmlkgnY0iXNlY3AyNTZrMaEDRaa5o2aSgqyFq_ERZcQTztrOij1mFtXX1bJuVI6ieak";
12
- export declare const clusterLockV1X6: {
12
+ export declare const clusterLockSoloV1X10: {
13
13
  cluster_definition: {
14
14
  name: string;
15
15
  creator: {
@@ -33,68 +33,23 @@ export declare const clusterLockV1X6: {
33
33
  }[];
34
34
  dkg_algorithm: string;
35
35
  fork_version: string;
36
+ deposit_amounts: string[];
36
37
  config_hash: string;
37
38
  definition_hash: string;
39
+ consensus_protocol: string;
40
+ target_gas_limit: number;
41
+ compounding: boolean;
38
42
  };
39
43
  distributed_validators: {
40
44
  distributed_public_key: string;
41
45
  public_shares: string[];
42
- deposit_data: {
46
+ partial_deposit_data: {
43
47
  pubkey: string;
44
48
  withdrawal_credentials: string;
45
49
  amount: string;
46
50
  signature: string;
47
- };
48
- }[];
49
- signature_aggregate: string;
50
- lock_hash: string;
51
- };
52
- export declare const clusterConfigV1X7: {
53
- name: string;
54
- operators: {
55
- address: string;
56
- }[];
57
- validators: {
58
- fee_recipient_address: string;
59
- withdrawal_address: string;
60
- }[];
61
- };
62
- export declare const clusterLockV1X7: {
63
- cluster_definition: {
64
- name: string;
65
- creator: {
66
- address: string;
67
- config_signature: string;
68
- };
69
- operators: {
70
- address: string;
71
- enr: string;
72
- config_signature: string;
73
- enr_signature: string;
74
- }[];
75
- uuid: string;
76
- version: string;
77
- timestamp: string;
78
- num_validators: number;
79
- threshold: number;
80
- validators: {
81
- fee_recipient_address: string;
82
- withdrawal_address: string;
51
+ deposit_data_root: string;
83
52
  }[];
84
- dkg_algorithm: string;
85
- fork_version: string;
86
- config_hash: string;
87
- definition_hash: string;
88
- };
89
- distributed_validators: {
90
- distributed_public_key: string;
91
- public_shares: string[];
92
- deposit_data: {
93
- pubkey: string;
94
- withdrawal_credentials: string;
95
- amount: string;
96
- signature: string;
97
- };
98
53
  builder_registration: {
99
54
  message: {
100
55
  fee_recipient: string;
@@ -109,57 +64,6 @@ export declare const clusterLockV1X7: {
109
64
  lock_hash: string;
110
65
  node_signatures: string[];
111
66
  };
112
- export declare const clusterLockV1X8: {
113
- cluster_definition: {
114
- name: string;
115
- creator: {
116
- address: string;
117
- config_signature: string;
118
- };
119
- operators: {
120
- address: string;
121
- enr: string;
122
- config_signature: string;
123
- enr_signature: string;
124
- }[];
125
- uuid: string;
126
- version: string;
127
- timestamp: string;
128
- num_validators: number;
129
- threshold: number;
130
- validators: {
131
- fee_recipient_address: string;
132
- withdrawal_address: string;
133
- }[];
134
- dkg_algorithm: string;
135
- fork_version: string;
136
- deposit_amounts: string[];
137
- config_hash: string;
138
- definition_hash: string;
139
- };
140
- distributed_validators: {
141
- distributed_public_key: string;
142
- public_shares: string[];
143
- builder_registration: {
144
- message: {
145
- fee_recipient: string;
146
- gas_limit: number;
147
- timestamp: number;
148
- pubkey: string;
149
- };
150
- signature: string;
151
- };
152
- partial_deposit_data: {
153
- pubkey: string;
154
- withdrawal_credentials: string;
155
- amount: string;
156
- signature: string;
157
- }[];
158
- }[];
159
- signature_aggregate: string;
160
- lock_hash: string;
161
- node_signatures: string[];
162
- };
163
67
  export declare const nullDepositAmountsClusterLockV1X8: {
164
68
  cluster_definition: {
165
69
  name: string;
@@ -235,7 +139,10 @@ export declare const clusterLockWithSafe: {
235
139
  }[];
236
140
  dkg_algorithm: string;
237
141
  fork_version: string;
238
- deposit_amounts: string[];
142
+ deposit_amounts: null;
143
+ consensus_protocol: string;
144
+ target_gas_limit: number;
145
+ compounding: boolean;
239
146
  config_hash: string;
240
147
  definition_hash: string;
241
148
  };
@@ -310,16 +217,23 @@ export declare const clusterLockV1X10: {
310
217
  }[];
311
218
  dkg_algorithm: string;
312
219
  fork_version: string;
313
- deposit_amounts: null;
220
+ deposit_amounts: string[];
221
+ config_hash: string;
222
+ definition_hash: string;
314
223
  consensus_protocol: string;
315
224
  target_gas_limit: number;
316
225
  compounding: boolean;
317
- config_hash: string;
318
- definition_hash: string;
319
226
  };
320
227
  distributed_validators: {
321
228
  distributed_public_key: string;
322
229
  public_shares: string[];
230
+ partial_deposit_data: {
231
+ pubkey: string;
232
+ withdrawal_credentials: string;
233
+ amount: string;
234
+ signature: string;
235
+ deposit_data_root: string;
236
+ }[];
323
237
  builder_registration: {
324
238
  message: {
325
239
  fee_recipient: string;
@@ -329,12 +243,6 @@ export declare const clusterLockV1X10: {
329
243
  };
330
244
  signature: string;
331
245
  };
332
- partial_deposit_data: {
333
- pubkey: string;
334
- withdrawal_credentials: string;
335
- amount: string;
336
- signature: string;
337
- }[];
338
246
  }[];
339
247
  signature_aggregate: string;
340
248
  lock_hash: string;
@@ -364,16 +272,23 @@ export declare const clusterLockWithCompoundingWithdrawals: {
364
272
  }[];
365
273
  dkg_algorithm: string;
366
274
  fork_version: string;
367
- deposit_amounts: null;
275
+ deposit_amounts: string[];
276
+ config_hash: string;
277
+ definition_hash: string;
368
278
  consensus_protocol: string;
369
279
  target_gas_limit: number;
370
280
  compounding: boolean;
371
- config_hash: string;
372
- definition_hash: string;
373
281
  };
374
282
  distributed_validators: {
375
283
  distributed_public_key: string;
376
284
  public_shares: string[];
285
+ partial_deposit_data: {
286
+ pubkey: string;
287
+ withdrawal_credentials: string;
288
+ amount: string;
289
+ signature: string;
290
+ deposit_data_root: string;
291
+ }[];
377
292
  builder_registration: {
378
293
  message: {
379
294
  fee_recipient: string;
@@ -383,12 +298,6 @@ export declare const clusterLockWithCompoundingWithdrawals: {
383
298
  };
384
299
  signature: string;
385
300
  };
386
- partial_deposit_data: {
387
- pubkey: string;
388
- withdrawal_credentials: string;
389
- amount: string;
390
- signature: string;
391
- }[];
392
301
  }[];
393
302
  signature_aggregate: string;
394
303
  lock_hash: string;