@lodestar/types 1.48.0-dev.f22c5ce63e → 1.48.0-dev.ff9749be2c

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 (50) hide show
  1. package/lib/bellatrix/sszTypes.d.ts +18 -0
  2. package/lib/bellatrix/sszTypes.d.ts.map +1 -1
  3. package/lib/bellatrix/sszTypes.js +3 -0
  4. package/lib/bellatrix/sszTypes.js.map +1 -1
  5. package/lib/bellatrix/types.d.ts +1 -0
  6. package/lib/bellatrix/types.d.ts.map +1 -1
  7. package/lib/capella/sszTypes.d.ts +24 -0
  8. package/lib/capella/sszTypes.d.ts.map +1 -1
  9. package/lib/capella/sszTypes.js +3 -0
  10. package/lib/capella/sszTypes.js.map +1 -1
  11. package/lib/capella/types.d.ts +1 -0
  12. package/lib/capella/types.d.ts.map +1 -1
  13. package/lib/deneb/sszTypes.d.ts +29 -0
  14. package/lib/deneb/sszTypes.d.ts.map +1 -1
  15. package/lib/deneb/sszTypes.js +6 -0
  16. package/lib/deneb/sszTypes.js.map +1 -1
  17. package/lib/deneb/types.d.ts +2 -0
  18. package/lib/deneb/types.d.ts.map +1 -1
  19. package/lib/electra/sszTypes.d.ts +47 -0
  20. package/lib/electra/sszTypes.d.ts.map +1 -1
  21. package/lib/electra/sszTypes.js +4 -0
  22. package/lib/electra/sszTypes.js.map +1 -1
  23. package/lib/electra/types.d.ts +1 -0
  24. package/lib/electra/types.d.ts.map +1 -1
  25. package/lib/gloas/sszTypes.d.ts +62 -1
  26. package/lib/gloas/sszTypes.d.ts.map +1 -1
  27. package/lib/gloas/sszTypes.js +75 -17
  28. package/lib/gloas/sszTypes.js.map +1 -1
  29. package/lib/gloas/types.d.ts +4 -1
  30. package/lib/gloas/types.d.ts.map +1 -1
  31. package/lib/sszTypes.d.ts +586 -4
  32. package/lib/sszTypes.d.ts.map +1 -1
  33. package/lib/types.d.ts +8 -0
  34. package/lib/types.d.ts.map +1 -1
  35. package/lib/utils/array.d.ts.map +1 -1
  36. package/lib/utils/array.js +1 -1
  37. package/lib/utils/array.js.map +1 -1
  38. package/package.json +4 -4
  39. package/src/bellatrix/sszTypes.ts +7 -0
  40. package/src/bellatrix/types.ts +1 -0
  41. package/src/capella/sszTypes.ts +7 -0
  42. package/src/capella/types.ts +1 -0
  43. package/src/deneb/sszTypes.ts +10 -0
  44. package/src/deneb/types.ts +2 -0
  45. package/src/electra/sszTypes.ts +8 -0
  46. package/src/electra/types.ts +1 -0
  47. package/src/gloas/sszTypes.ts +99 -16
  48. package/src/gloas/types.ts +4 -1
  49. package/src/types.ts +8 -0
  50. package/src/utils/array.ts +4 -1
@@ -18,13 +18,33 @@ import {
18
18
  EXECUTION_BLOCK_HASH_DEPTH_GLOAS,
19
19
  FINALIZED_ROOT_DEPTH_GLOAS,
20
20
  HISTORICAL_ROOTS_LIMIT,
21
+ MAX_ATTESTATIONS_ELECTRA,
22
+ MAX_ATTESTER_SLASHINGS_ELECTRA,
23
+ MAX_BLOB_COMMITMENTS_PER_BLOCK,
24
+ MAX_BLS_TO_EXECUTION_CHANGES,
21
25
  MAX_BUILDER_AUTH_DATA_SIZE,
26
+ MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD,
27
+ MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD,
28
+ MAX_BYTES_PER_TRANSACTION,
29
+ MAX_COMMITTEES_PER_SLOT,
30
+ MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD,
31
+ MAX_PAYLOAD_ATTESTATIONS,
32
+ MAX_PROPOSER_SLASHINGS,
33
+ MAX_TRANSACTIONS_PER_PAYLOAD,
34
+ MAX_VALIDATORS_PER_COMMITTEE,
35
+ MAX_VOLUNTARY_EXITS,
36
+ MAX_WITHDRAWALS_PER_PAYLOAD,
37
+ MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD,
22
38
  MIN_SEED_LOOKAHEAD,
23
39
  NEXT_SYNC_COMMITTEE_DEPTH_GLOAS,
24
40
  NUMBER_OF_COLUMNS,
41
+ PENDING_CONSOLIDATIONS_LIMIT,
42
+ PENDING_DEPOSITS_LIMIT,
43
+ PENDING_PARTIAL_WITHDRAWALS_LIMIT,
25
44
  PTC_SIZE,
26
45
  SLOTS_PER_EPOCH,
27
46
  SLOTS_PER_HISTORICAL_ROOT,
47
+ VALIDATOR_REGISTRY_LIMIT,
28
48
  } from "@lodestar/params";
29
49
  import {ssz as altairSsz} from "../altair/index.js";
30
50
  import {ssz as capellaSsz} from "../capella/index.js";
@@ -67,16 +87,35 @@ export const FinalityBranch = new VectorCompositeType(Bytes32, FINALIZED_ROOT_DE
67
87
 
68
88
  export const NextSyncCommitteeBranch = new VectorCompositeType(Bytes32, NEXT_SYNC_COMMITTEE_DEPTH_GLOAS);
69
89
 
70
- export const AggregationBits = new ProgressiveBitListType({typeName: "AggregationBits"});
71
- export const AttestingIndices = new ProgressiveListBasicType(ValidatorIndex, {typeName: "AttestingIndices"});
72
- export const Transaction = new ProgressiveByteListType({typeName: "Transaction"});
73
- export const Transactions = new ProgressiveListCompositeType(Transaction, {typeName: "Transactions"});
74
- export const Withdrawals = new ProgressiveListCompositeType(capellaSsz.Withdrawal, {typeName: "Withdrawals"});
90
+ export const AggregationBits = new ProgressiveBitListType({
91
+ typeName: "AggregationBits",
92
+ limit: MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT,
93
+ });
94
+ export const AttestingIndices = new ProgressiveListBasicType(ValidatorIndex, {
95
+ typeName: "AttestingIndices",
96
+ limit: MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT,
97
+ });
98
+ export const Transaction = new ProgressiveByteListType({typeName: "Transaction", limit: MAX_BYTES_PER_TRANSACTION});
99
+ export const Transactions = new ProgressiveListCompositeType(Transaction, {
100
+ typeName: "Transactions",
101
+ limit: MAX_TRANSACTIONS_PER_PAYLOAD,
102
+ });
103
+ export const Withdrawals = new ProgressiveListCompositeType(capellaSsz.Withdrawal, {
104
+ typeName: "Withdrawals",
105
+ limit: MAX_WITHDRAWALS_PER_PAYLOAD,
106
+ });
75
107
  export const BlobKzgCommitments = new ProgressiveListCompositeType(denebSsz.KZGCommitment, {
76
108
  typeName: "BlobKzgCommitments",
109
+ limit: MAX_BLOB_COMMITMENTS_PER_BLOCK,
110
+ });
111
+ export const KZGProofs = new ProgressiveListCompositeType(denebSsz.KZGProof, {
112
+ typeName: "KZGProofs",
113
+ limit: MAX_BLOB_COMMITMENTS_PER_BLOCK,
114
+ });
115
+ export const DataColumn = new ProgressiveListCompositeType(fuluSsz.Cell, {
116
+ typeName: "DataColumn",
117
+ limit: MAX_BLOB_COMMITMENTS_PER_BLOCK,
77
118
  });
78
- export const KZGProofs = new ProgressiveListCompositeType(denebSsz.KZGProof, {typeName: "KZGProofs"});
79
- export const DataColumn = new ProgressiveListCompositeType(fuluSsz.Cell, {typeName: "DataColumn"});
80
119
 
81
120
  export const Attestation = new ProgressiveContainerType(
82
121
  {
@@ -140,10 +179,12 @@ export const DepositRequests = new ProgressiveListCompositeType(DepositRequest,
140
179
  export const WithdrawalRequest = electraSsz.WithdrawalRequest;
141
180
  export const WithdrawalRequests = new ProgressiveListCompositeType(WithdrawalRequest, {
142
181
  typeName: "WithdrawalRequests",
182
+ limit: MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD,
143
183
  });
144
184
  export const ConsolidationRequest = electraSsz.ConsolidationRequest;
145
185
  export const ConsolidationRequests = new ProgressiveListCompositeType(ConsolidationRequest, {
146
186
  typeName: "ConsolidationRequests",
187
+ limit: MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD,
147
188
  });
148
189
 
149
190
  // New in GLOAS:EIP8282
@@ -158,6 +199,7 @@ export const BuilderDepositRequest = new ContainerType(
158
199
  );
159
200
  export const BuilderDepositRequests = new ProgressiveListCompositeType(BuilderDepositRequest, {
160
201
  typeName: "BuilderDepositRequests",
202
+ limit: MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD,
161
203
  });
162
204
 
163
205
  // New in GLOAS:EIP8282
@@ -170,6 +212,7 @@ export const BuilderExitRequest = new ContainerType(
170
212
  );
171
213
  export const BuilderExitRequests = new ProgressiveListCompositeType(BuilderExitRequest, {
172
214
  typeName: "BuilderExitRequests",
215
+ limit: MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD,
173
216
  });
174
217
 
175
218
  export const ExecutionRequests = new ProgressiveContainerType(
@@ -186,33 +229,57 @@ export const ExecutionRequests = new ProgressiveContainerType(
186
229
 
187
230
  export const ProposerSlashings = new ProgressiveListCompositeType(phase0Ssz.ProposerSlashing, {
188
231
  typeName: "ProposerSlashings",
232
+ limit: MAX_PROPOSER_SLASHINGS,
189
233
  });
190
234
  export const AttesterSlashings = new ProgressiveListCompositeType(AttesterSlashing, {
191
235
  typeName: "AttesterSlashings",
236
+ limit: MAX_ATTESTER_SLASHINGS_ELECTRA,
237
+ });
238
+ export const Attestations = new ProgressiveListCompositeType(Attestation, {
239
+ typeName: "Attestations",
240
+ limit: MAX_ATTESTATIONS_ELECTRA,
241
+ });
242
+ export const Deposits = new ProgressiveListCompositeType(phase0Ssz.Deposit, {
243
+ typeName: "Deposits",
244
+ // Legacy deposits are removed since Fulu, the list must always be empty
245
+ limit: 0,
192
246
  });
193
- export const Attestations = new ProgressiveListCompositeType(Attestation, {typeName: "Attestations"});
194
- export const Deposits = new ProgressiveListCompositeType(phase0Ssz.Deposit, {typeName: "Deposits"});
195
247
  export const VoluntaryExits = new ProgressiveListCompositeType(phase0Ssz.SignedVoluntaryExit, {
196
248
  typeName: "VoluntaryExits",
249
+ limit: MAX_VOLUNTARY_EXITS,
197
250
  });
198
251
  export const BlsToExecutionChanges = new ProgressiveListCompositeType(capellaSsz.SignedBLSToExecutionChange, {
199
252
  typeName: "BLSToExecutionChanges",
253
+ limit: MAX_BLS_TO_EXECUTION_CHANGES,
200
254
  });
201
255
 
202
- export const Validators = new ProgressiveListCompositeType(phase0Ssz.Validator, {typeName: "Validators"});
203
- export const Balances = new ProgressiveListBasicType(UintNum64, {typeName: "Balances"});
256
+ export const Validators = new ProgressiveListCompositeType(phase0Ssz.Validator, {
257
+ typeName: "Validators",
258
+ limit: VALIDATOR_REGISTRY_LIMIT,
259
+ });
260
+ export const Balances = new ProgressiveListBasicType(UintNum64, {
261
+ typeName: "Balances",
262
+ limit: VALIDATOR_REGISTRY_LIMIT,
263
+ });
204
264
  export const EpochParticipation = new ProgressiveListBasicType(ParticipationFlags, {
205
265
  typeName: "EpochParticipation",
266
+ limit: VALIDATOR_REGISTRY_LIMIT,
267
+ });
268
+ export const InactivityScores = new ProgressiveListBasicType(UintNum64, {
269
+ typeName: "InactivityScores",
270
+ limit: VALIDATOR_REGISTRY_LIMIT,
206
271
  });
207
- export const InactivityScores = new ProgressiveListBasicType(UintNum64, {typeName: "InactivityScores"});
208
272
  export const PendingDeposits = new ProgressiveListCompositeType(electraSsz.PendingDeposit, {
209
273
  typeName: "PendingDeposits",
274
+ limit: PENDING_DEPOSITS_LIMIT,
210
275
  });
211
276
  export const PendingPartialWithdrawals = new ProgressiveListCompositeType(electraSsz.PendingPartialWithdrawal, {
212
277
  typeName: "PendingPartialWithdrawals",
278
+ limit: PENDING_PARTIAL_WITHDRAWALS_LIMIT,
213
279
  });
214
280
  export const PendingConsolidations = new ProgressiveListCompositeType(electraSsz.PendingConsolidation, {
215
281
  typeName: "PendingConsolidations",
282
+ limit: PENDING_CONSOLIDATIONS_LIMIT,
216
283
  });
217
284
 
218
285
  export const Builder = new ContainerType(
@@ -238,6 +305,9 @@ export const BuilderPendingWithdrawal = new ContainerType(
238
305
 
239
306
  export const BuilderPendingPayment = new ContainerType(
240
307
  {
308
+ // weight sums attesting validators' effective balances, which are multiples of 1e9 Gwei;
309
+ // such multiples stay exactly representable as JS numbers far beyond any reachable Ethereum
310
+ // stake, so UintNum64 is safe here.
241
311
  weight: UintNum64,
242
312
  withdrawal: BuilderPendingWithdrawal,
243
313
  proposerIndex: ValidatorIndex,
@@ -251,7 +321,9 @@ export const BuilderPendingWithdrawals = new ProgressiveListCompositeType(Builde
251
321
  });
252
322
 
253
323
  export const PayloadTimelinessCommittee = new VectorBasicType(ValidatorIndex, PTC_SIZE);
254
- export const PtcWindow = new VectorCompositeType(
324
+ export const PayloadTimelinessCommitteeIndices = new ListBasicType(ValidatorIndex, PTC_SIZE);
325
+ export const PayloadTimelinessCommitteeBits = new BitVectorType(PTC_SIZE);
326
+ export const PayloadTimelinessCommitteeWindow = new VectorCompositeType(
255
327
  PayloadTimelinessCommittee,
256
328
  (2 + MIN_SEED_LOOKAHEAD) * SLOTS_PER_EPOCH
257
329
  );
@@ -268,7 +340,7 @@ export const PayloadAttestationData = new ContainerType(
268
340
 
269
341
  export const PayloadAttestation = new ProgressiveContainerType(
270
342
  {
271
- aggregationBits: new BitVectorType(PTC_SIZE),
343
+ aggregationBits: PayloadTimelinessCommitteeBits,
272
344
  data: PayloadAttestationData,
273
345
  signature: BLSSignature,
274
346
  },
@@ -278,6 +350,7 @@ export const PayloadAttestation = new ProgressiveContainerType(
278
350
 
279
351
  export const PayloadAttestations = new ProgressiveListCompositeType(PayloadAttestation, {
280
352
  typeName: "PayloadAttestations",
353
+ limit: MAX_PAYLOAD_ATTESTATIONS,
281
354
  });
282
355
 
283
356
  export const PayloadAttestationMessage = new ContainerType(
@@ -291,7 +364,7 @@ export const PayloadAttestationMessage = new ContainerType(
291
364
 
292
365
  export const IndexedPayloadAttestation = new ProgressiveContainerType(
293
366
  {
294
- attestingIndices: new ListBasicType(ValidatorIndex, PTC_SIZE),
367
+ attestingIndices: PayloadTimelinessCommitteeIndices,
295
368
  data: PayloadAttestationData,
296
369
  signature: BLSSignature,
297
370
  },
@@ -406,6 +479,16 @@ export const ExecutionPayload = new ProgressiveContainerType(
406
479
  {typeName: "ExecutionPayload", jsonCase: "eth2"}
407
480
  );
408
481
 
482
+ export const NewPayloadRequest = new ProgressiveContainerType(
483
+ {
484
+ ...electraSsz.NewPayloadRequest.fields,
485
+ executionPayload: ExecutionPayload,
486
+ executionRequests: ExecutionRequests,
487
+ },
488
+ activeFields(4),
489
+ {typeName: "NewPayloadRequest", jsonCase: "eth2"}
490
+ );
491
+
409
492
  export const ExecutionPayloadEnvelope = new ProgressiveContainerType(
410
493
  {
411
494
  payload: ExecutionPayload,
@@ -604,7 +687,7 @@ export const BeaconState = new ProgressiveContainerType(
604
687
  builderPendingWithdrawals: BuilderPendingWithdrawals, // New in GLOAS:EIP7732
605
688
  latestExecutionPayloadBid: ExecutionPayloadBid, // New in GLOAS:EIP7732
606
689
  payloadExpectedWithdrawals: Withdrawals, // New in GLOAS:EIP7732
607
- ptcWindow: PtcWindow, // New in GLOAS:EIP7732
690
+ ptcWindow: PayloadTimelinessCommitteeWindow, // New in GLOAS:EIP7732
608
691
  },
609
692
  activeFields(46),
610
693
  {typeName: "BeaconState", jsonCase: "eth2"}
@@ -34,7 +34,9 @@ export type BuilderDepositRequests = ValueOf<typeof ssz.BuilderDepositRequests>;
34
34
  export type BuilderExitRequest = ValueOf<typeof ssz.BuilderExitRequest>;
35
35
  export type BuilderExitRequests = ValueOf<typeof ssz.BuilderExitRequests>;
36
36
  export type PayloadTimelinessCommittee = ValueOf<typeof ssz.PayloadTimelinessCommittee>;
37
- export type PtcWindow = ValueOf<typeof ssz.PtcWindow>;
37
+ export type PayloadTimelinessCommitteeIndices = ValueOf<typeof ssz.PayloadTimelinessCommitteeIndices>;
38
+ export type PayloadTimelinessCommitteeBits = ValueOf<typeof ssz.PayloadTimelinessCommitteeBits>;
39
+ export type PayloadTimelinessCommitteeWindow = ValueOf<typeof ssz.PayloadTimelinessCommitteeWindow>;
38
40
  export type PayloadAttestationData = ValueOf<typeof ssz.PayloadAttestationData>;
39
41
  export type PayloadAttestation = ValueOf<typeof ssz.PayloadAttestation>;
40
42
  export type PayloadAttestationMessage = ValueOf<typeof ssz.PayloadAttestationMessage>;
@@ -42,6 +44,7 @@ export type IndexedPayloadAttestation = ValueOf<typeof ssz.IndexedPayloadAttesta
42
44
  export type ProposerPreferences = ValueOf<typeof ssz.ProposerPreferences>;
43
45
  export type SignedProposerPreferences = ValueOf<typeof ssz.SignedProposerPreferences>;
44
46
  export type ExecutionPayload = ValueOf<typeof ssz.ExecutionPayload>;
47
+ export type NewPayloadRequest = ValueOf<typeof ssz.NewPayloadRequest>;
45
48
  export type ExecutionPayloadBid = ValueOf<typeof ssz.ExecutionPayloadBid>;
46
49
  export type SignedExecutionPayloadBid = ValueOf<typeof ssz.SignedExecutionPayloadBid>;
47
50
  export type BuilderRequestAuth = ValueOf<typeof ssz.BuilderRequestAuth>;
package/src/types.ts CHANGED
@@ -121,6 +121,7 @@ type TypesByFork = {
121
121
  BlindedBeaconBlockBody: bellatrix.BlindedBeaconBlockBody;
122
122
  SignedBlindedBeaconBlock: bellatrix.SignedBlindedBeaconBlock;
123
123
  ExecutionPayload: bellatrix.ExecutionPayload;
124
+ NewPayloadRequest: bellatrix.NewPayloadRequest;
124
125
  ExecutionPayloadHeader: bellatrix.ExecutionPayloadHeader;
125
126
  BuilderBid: bellatrix.BuilderBid;
126
127
  SignedBuilderBid: bellatrix.SignedBuilderBid;
@@ -156,6 +157,7 @@ type TypesByFork = {
156
157
  BlindedBeaconBlockBody: capella.BlindedBeaconBlockBody;
157
158
  SignedBlindedBeaconBlock: capella.SignedBlindedBeaconBlock;
158
159
  ExecutionPayload: capella.ExecutionPayload;
160
+ NewPayloadRequest: capella.NewPayloadRequest;
159
161
  ExecutionPayloadHeader: capella.ExecutionPayloadHeader;
160
162
  BuilderBid: capella.BuilderBid;
161
163
  SignedBuilderBid: capella.SignedBuilderBid;
@@ -191,6 +193,7 @@ type TypesByFork = {
191
193
  BlindedBeaconBlockBody: deneb.BlindedBeaconBlockBody;
192
194
  SignedBlindedBeaconBlock: deneb.SignedBlindedBeaconBlock;
193
195
  ExecutionPayload: deneb.ExecutionPayload;
196
+ NewPayloadRequest: deneb.NewPayloadRequest;
194
197
  ExecutionPayloadHeader: deneb.ExecutionPayloadHeader;
195
198
  BuilderBid: deneb.BuilderBid;
196
199
  SignedBuilderBid: deneb.SignedBuilderBid;
@@ -228,6 +231,7 @@ type TypesByFork = {
228
231
  BlindedBeaconBlockBody: electra.BlindedBeaconBlockBody;
229
232
  SignedBlindedBeaconBlock: electra.SignedBlindedBeaconBlock;
230
233
  ExecutionPayload: deneb.ExecutionPayload;
234
+ NewPayloadRequest: electra.NewPayloadRequest;
231
235
  ExecutionPayloadHeader: deneb.ExecutionPayloadHeader;
232
236
  BuilderBid: electra.BuilderBid;
233
237
  SignedBuilderBid: electra.SignedBuilderBid;
@@ -266,6 +270,7 @@ type TypesByFork = {
266
270
  BlindedBeaconBlockBody: electra.BlindedBeaconBlockBody;
267
271
  SignedBlindedBeaconBlock: electra.SignedBlindedBeaconBlock;
268
272
  ExecutionPayload: deneb.ExecutionPayload;
273
+ NewPayloadRequest: electra.NewPayloadRequest;
269
274
  ExecutionPayloadHeader: deneb.ExecutionPayloadHeader;
270
275
  BuilderBid: electra.BuilderBid;
271
276
  SignedBuilderBid: electra.SignedBuilderBid;
@@ -306,6 +311,7 @@ type TypesByFork = {
306
311
  BlindedBeaconBlockBody: electra.BlindedBeaconBlockBody;
307
312
  SignedBlindedBeaconBlock: electra.SignedBlindedBeaconBlock;
308
313
  ExecutionPayload: gloas.ExecutionPayload;
314
+ NewPayloadRequest: gloas.NewPayloadRequest;
309
315
  ExecutionPayloadHeader: deneb.ExecutionPayloadHeader;
310
316
  BuilderBid: electra.BuilderBid;
311
317
  SignedBuilderBid: electra.SignedBuilderBid;
@@ -347,6 +353,7 @@ type TypesByFork = {
347
353
  BlindedBeaconBlockBody: electra.BlindedBeaconBlockBody;
348
354
  SignedBlindedBeaconBlock: electra.SignedBlindedBeaconBlock;
349
355
  ExecutionPayload: gloas.ExecutionPayload;
356
+ NewPayloadRequest: gloas.NewPayloadRequest;
350
357
  ExecutionPayloadHeader: deneb.ExecutionPayloadHeader;
351
358
  BuilderBid: electra.BuilderBid;
352
359
  SignedBuilderBid: electra.SignedBuilderBid;
@@ -394,6 +401,7 @@ export type SignedBlockContents<F extends ForkAll = ForkAll> = TypesByFork[F]["S
394
401
  export type SignedOrUnsignedBlockContents<F extends ForkAll = ForkAll> = BlockContents<F> | SignedBlockContents<F>;
395
402
 
396
403
  export type ExecutionPayload<F extends ForkPostBellatrix = ForkPostBellatrix> = TypesByFork[F]["ExecutionPayload"];
404
+ export type NewPayloadRequest<F extends ForkPostBellatrix = ForkPostBellatrix> = TypesByFork[F]["NewPayloadRequest"];
397
405
  export type ExecutionPayloadHeader<F extends ForkPostBellatrix = ForkPostBellatrix> =
398
406
  TypesByFork[F]["ExecutionPayloadHeader"];
399
407
  export type ExecutionRequests<F extends ForkPostElectra = ForkPostElectra> = TypesByFork[F]["ExecutionRequests"];
@@ -1,6 +1,9 @@
1
1
  import {ArrayType, ListBasicType, ListCompositeType, Type, isBasicType, isCompositeType} from "@chainsafe/ssz";
2
2
 
3
- export function ArrayOf<T>(elementType: Type<T>, limit = Infinity): ArrayType<Type<T>, unknown, unknown> {
3
+ export function ArrayOf<T>(
4
+ elementType: Type<T>,
5
+ limit = Number.MAX_SAFE_INTEGER
6
+ ): ArrayType<Type<T>, unknown, unknown> {
4
7
  if (isCompositeType(elementType)) {
5
8
  return new ListCompositeType(elementType, limit) as unknown as ArrayType<Type<T>, unknown, unknown>;
6
9
  }