@lodestar/types 1.45.0-rc.0 → 1.46.0-dev.13423cff6d
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/lib/gloas/sszTypes.d.ts +973 -170
- package/lib/gloas/sszTypes.d.ts.map +1 -1
- package/lib/gloas/sszTypes.js +210 -60
- package/lib/gloas/sszTypes.js.map +1 -1
- package/lib/gloas/types.d.ts +29 -1
- package/lib/gloas/types.d.ts.map +1 -1
- package/lib/sszTypes.d.ts +5820 -5656
- package/lib/sszTypes.d.ts.map +1 -1
- package/lib/types.d.ts +13 -13
- package/lib/types.d.ts.map +1 -1
- package/lib/utils/typeguards.d.ts +2 -0
- package/lib/utils/typeguards.d.ts.map +1 -1
- package/lib/utils/typeguards.js +8 -3
- package/lib/utils/typeguards.js.map +1 -1
- package/package.json +13 -13
- package/src/gloas/sszTypes.ts +296 -69
- package/src/gloas/types.ts +33 -1
- package/src/types.ts +13 -13
- package/src/utils/typeguards.ts +12 -2
package/src/gloas/sszTypes.ts
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BitVectorType,
|
|
3
|
-
ByteListType,
|
|
4
3
|
ContainerType,
|
|
5
4
|
ListBasicType,
|
|
6
5
|
ListCompositeType,
|
|
6
|
+
ProgressiveBitListType,
|
|
7
|
+
ProgressiveByteListType,
|
|
8
|
+
ProgressiveContainerType,
|
|
9
|
+
ProgressiveListBasicType,
|
|
10
|
+
ProgressiveListCompositeType,
|
|
7
11
|
VectorBasicType,
|
|
8
12
|
VectorCompositeType,
|
|
9
13
|
} from "@chainsafe/ssz";
|
|
10
14
|
import {
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS,
|
|
16
|
+
EPOCHS_PER_SYNC_COMMITTEE_PERIOD,
|
|
17
|
+
EXECUTION_BLOCK_HASH_DEPTH_GLOAS,
|
|
18
|
+
FINALIZED_ROOT_DEPTH_GLOAS,
|
|
13
19
|
HISTORICAL_ROOTS_LIMIT,
|
|
14
|
-
MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD,
|
|
15
|
-
MAX_BUILDER_EXIT_REQUESTS_PER_PAYLOAD,
|
|
16
|
-
MAX_BYTES_PER_TRANSACTION,
|
|
17
|
-
MAX_PAYLOAD_ATTESTATIONS,
|
|
18
20
|
MIN_SEED_LOOKAHEAD,
|
|
21
|
+
NEXT_SYNC_COMMITTEE_DEPTH_GLOAS,
|
|
19
22
|
NUMBER_OF_COLUMNS,
|
|
20
23
|
PTC_SIZE,
|
|
21
24
|
SLOTS_PER_EPOCH,
|
|
@@ -47,38 +50,101 @@ const {
|
|
|
47
50
|
Uint8,
|
|
48
51
|
BuilderIndex,
|
|
49
52
|
EpochInf,
|
|
53
|
+
ParticipationFlags,
|
|
50
54
|
} = primitiveSsz;
|
|
51
55
|
|
|
52
|
-
|
|
56
|
+
function activeFields(count: number): boolean[] {
|
|
57
|
+
return Array.from({length: count}, () => true);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export const ExecutionBranch = new VectorCompositeType(Bytes32, EXECUTION_BLOCK_HASH_DEPTH_GLOAS);
|
|
61
|
+
|
|
62
|
+
export const CurrentSyncCommitteeBranch = new VectorCompositeType(Bytes32, CURRENT_SYNC_COMMITTEE_DEPTH_GLOAS);
|
|
63
|
+
|
|
64
|
+
export const FinalityBranch = new VectorCompositeType(Bytes32, FINALIZED_ROOT_DEPTH_GLOAS);
|
|
65
|
+
|
|
66
|
+
export const NextSyncCommitteeBranch = new VectorCompositeType(Bytes32, NEXT_SYNC_COMMITTEE_DEPTH_GLOAS);
|
|
67
|
+
|
|
68
|
+
export const AggregationBits = new ProgressiveBitListType({typeName: "AggregationBits"});
|
|
69
|
+
export const AttestingIndices = new ProgressiveListBasicType(ValidatorIndex, {typeName: "AttestingIndices"});
|
|
70
|
+
export const Transaction = new ProgressiveByteListType({typeName: "Transaction"});
|
|
71
|
+
export const Transactions = new ProgressiveListCompositeType(Transaction, {typeName: "Transactions"});
|
|
72
|
+
export const Withdrawals = new ProgressiveListCompositeType(capellaSsz.Withdrawal, {typeName: "Withdrawals"});
|
|
73
|
+
export const BlobKzgCommitments = new ProgressiveListCompositeType(denebSsz.KZGCommitment, {
|
|
74
|
+
typeName: "BlobKzgCommitments",
|
|
75
|
+
});
|
|
76
|
+
export const KZGProofs = new ProgressiveListCompositeType(denebSsz.KZGProof, {typeName: "KZGProofs"});
|
|
77
|
+
export const DataColumn = new ProgressiveListCompositeType(fuluSsz.Cell, {typeName: "DataColumn"});
|
|
78
|
+
|
|
79
|
+
export const Attestation = new ProgressiveContainerType(
|
|
53
80
|
{
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
depositEpoch: EpochInf,
|
|
59
|
-
withdrawableEpoch: EpochInf,
|
|
81
|
+
aggregationBits: AggregationBits,
|
|
82
|
+
data: phase0Ssz.AttestationData,
|
|
83
|
+
signature: BLSSignature,
|
|
84
|
+
committeeBits: electraSsz.CommitteeBits,
|
|
60
85
|
},
|
|
61
|
-
|
|
86
|
+
activeFields(4),
|
|
87
|
+
{typeName: "Attestation", jsonCase: "eth2"}
|
|
62
88
|
);
|
|
63
89
|
|
|
64
|
-
export const
|
|
90
|
+
export const IndexedAttestation = new ProgressiveContainerType(
|
|
65
91
|
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
92
|
+
attestingIndices: AttestingIndices,
|
|
93
|
+
data: phase0Ssz.AttestationData,
|
|
94
|
+
signature: BLSSignature,
|
|
69
95
|
},
|
|
70
|
-
|
|
96
|
+
activeFields(3),
|
|
97
|
+
{typeName: "IndexedAttestation", jsonCase: "eth2"}
|
|
71
98
|
);
|
|
72
99
|
|
|
73
|
-
|
|
100
|
+
/** Same as `IndexedAttestation` but epoch, slot and index are not bounded and must be a bigint */
|
|
101
|
+
export const IndexedAttestationBigint = new ProgressiveContainerType(
|
|
74
102
|
{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
103
|
+
attestingIndices: AttestingIndices,
|
|
104
|
+
data: phase0Ssz.AttestationDataBigint,
|
|
105
|
+
signature: BLSSignature,
|
|
78
106
|
},
|
|
79
|
-
|
|
107
|
+
activeFields(3),
|
|
108
|
+
{typeName: "IndexedAttestation", jsonCase: "eth2"}
|
|
80
109
|
);
|
|
81
110
|
|
|
111
|
+
export const AttesterSlashing = new ContainerType(
|
|
112
|
+
{
|
|
113
|
+
attestation1: IndexedAttestationBigint,
|
|
114
|
+
attestation2: IndexedAttestationBigint,
|
|
115
|
+
},
|
|
116
|
+
{typeName: "AttesterSlashing", jsonCase: "eth2"}
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
export const AggregateAndProof = new ContainerType(
|
|
120
|
+
{
|
|
121
|
+
aggregatorIndex: ValidatorIndex,
|
|
122
|
+
aggregate: Attestation,
|
|
123
|
+
selectionProof: BLSSignature,
|
|
124
|
+
},
|
|
125
|
+
{typeName: "AggregateAndProof", jsonCase: "eth2", cachePermanentRootStruct: true}
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
export const SignedAggregateAndProof = new ContainerType(
|
|
129
|
+
{
|
|
130
|
+
message: AggregateAndProof,
|
|
131
|
+
signature: BLSSignature,
|
|
132
|
+
},
|
|
133
|
+
{typeName: "SignedAggregateAndProof", jsonCase: "eth2"}
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
export const DepositRequest = electraSsz.DepositRequest;
|
|
137
|
+
export const DepositRequests = new ProgressiveListCompositeType(DepositRequest, {typeName: "DepositRequests"});
|
|
138
|
+
export const WithdrawalRequest = electraSsz.WithdrawalRequest;
|
|
139
|
+
export const WithdrawalRequests = new ProgressiveListCompositeType(WithdrawalRequest, {
|
|
140
|
+
typeName: "WithdrawalRequests",
|
|
141
|
+
});
|
|
142
|
+
export const ConsolidationRequest = electraSsz.ConsolidationRequest;
|
|
143
|
+
export const ConsolidationRequests = new ProgressiveListCompositeType(ConsolidationRequest, {
|
|
144
|
+
typeName: "ConsolidationRequests",
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// New in GLOAS:EIP8282
|
|
82
148
|
export const BuilderDepositRequest = new ContainerType(
|
|
83
149
|
{
|
|
84
150
|
pubkey: BLSPubkey,
|
|
@@ -88,12 +154,11 @@ export const BuilderDepositRequest = new ContainerType(
|
|
|
88
154
|
},
|
|
89
155
|
{typeName: "BuilderDepositRequest", jsonCase: "eth2"}
|
|
90
156
|
);
|
|
157
|
+
export const BuilderDepositRequests = new ProgressiveListCompositeType(BuilderDepositRequest, {
|
|
158
|
+
typeName: "BuilderDepositRequests",
|
|
159
|
+
});
|
|
91
160
|
|
|
92
|
-
|
|
93
|
-
BuilderDepositRequest,
|
|
94
|
-
MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD
|
|
95
|
-
);
|
|
96
|
-
|
|
161
|
+
// New in GLOAS:EIP8282
|
|
97
162
|
export const BuilderExitRequest = new ContainerType(
|
|
98
163
|
{
|
|
99
164
|
sourceAddress: ExecutionAddress,
|
|
@@ -101,21 +166,88 @@ export const BuilderExitRequest = new ContainerType(
|
|
|
101
166
|
},
|
|
102
167
|
{typeName: "BuilderExitRequest", jsonCase: "eth2"}
|
|
103
168
|
);
|
|
169
|
+
export const BuilderExitRequests = new ProgressiveListCompositeType(BuilderExitRequest, {
|
|
170
|
+
typeName: "BuilderExitRequests",
|
|
171
|
+
});
|
|
104
172
|
|
|
105
|
-
export const
|
|
106
|
-
|
|
107
|
-
// New in GLOAS:EIP8282 — extends electra ExecutionRequests with builder deposits and exits
|
|
108
|
-
export const ExecutionRequests = new ContainerType(
|
|
173
|
+
export const ExecutionRequests = new ProgressiveContainerType(
|
|
109
174
|
{
|
|
110
|
-
deposits:
|
|
111
|
-
withdrawals:
|
|
112
|
-
consolidations:
|
|
113
|
-
builderDeposits: BuilderDepositRequests,
|
|
114
|
-
builderExits: BuilderExitRequests,
|
|
175
|
+
deposits: DepositRequests,
|
|
176
|
+
withdrawals: WithdrawalRequests,
|
|
177
|
+
consolidations: ConsolidationRequests,
|
|
178
|
+
builderDeposits: BuilderDepositRequests, // New in GLOAS:EIP8282
|
|
179
|
+
builderExits: BuilderExitRequests, // New in GLOAS:EIP8282
|
|
115
180
|
},
|
|
181
|
+
activeFields(5),
|
|
116
182
|
{typeName: "ExecutionRequests", jsonCase: "eth2"}
|
|
117
183
|
);
|
|
118
184
|
|
|
185
|
+
export const ProposerSlashings = new ProgressiveListCompositeType(phase0Ssz.ProposerSlashing, {
|
|
186
|
+
typeName: "ProposerSlashings",
|
|
187
|
+
});
|
|
188
|
+
export const AttesterSlashings = new ProgressiveListCompositeType(AttesterSlashing, {
|
|
189
|
+
typeName: "AttesterSlashings",
|
|
190
|
+
});
|
|
191
|
+
export const Attestations = new ProgressiveListCompositeType(Attestation, {typeName: "Attestations"});
|
|
192
|
+
export const Deposits = new ProgressiveListCompositeType(phase0Ssz.Deposit, {typeName: "Deposits"});
|
|
193
|
+
export const VoluntaryExits = new ProgressiveListCompositeType(phase0Ssz.SignedVoluntaryExit, {
|
|
194
|
+
typeName: "VoluntaryExits",
|
|
195
|
+
});
|
|
196
|
+
export const BlsToExecutionChanges = new ProgressiveListCompositeType(capellaSsz.SignedBLSToExecutionChange, {
|
|
197
|
+
typeName: "BLSToExecutionChanges",
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
export const Validators = new ProgressiveListCompositeType(phase0Ssz.Validator, {typeName: "Validators"});
|
|
201
|
+
export const Balances = new ProgressiveListBasicType(UintNum64, {typeName: "Balances"});
|
|
202
|
+
export const EpochParticipation = new ProgressiveListBasicType(ParticipationFlags, {
|
|
203
|
+
typeName: "EpochParticipation",
|
|
204
|
+
});
|
|
205
|
+
export const InactivityScores = new ProgressiveListBasicType(UintNum64, {typeName: "InactivityScores"});
|
|
206
|
+
export const PendingDeposits = new ProgressiveListCompositeType(electraSsz.PendingDeposit, {
|
|
207
|
+
typeName: "PendingDeposits",
|
|
208
|
+
});
|
|
209
|
+
export const PendingPartialWithdrawals = new ProgressiveListCompositeType(electraSsz.PendingPartialWithdrawal, {
|
|
210
|
+
typeName: "PendingPartialWithdrawals",
|
|
211
|
+
});
|
|
212
|
+
export const PendingConsolidations = new ProgressiveListCompositeType(electraSsz.PendingConsolidation, {
|
|
213
|
+
typeName: "PendingConsolidations",
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
export const Builder = new ContainerType(
|
|
217
|
+
{
|
|
218
|
+
pubkey: BLSPubkey,
|
|
219
|
+
version: Uint8,
|
|
220
|
+
executionAddress: ExecutionAddress,
|
|
221
|
+
balance: UintNum64,
|
|
222
|
+
depositEpoch: EpochInf,
|
|
223
|
+
withdrawableEpoch: EpochInf,
|
|
224
|
+
},
|
|
225
|
+
{typeName: "Builder", jsonCase: "eth2"}
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
export const BuilderPendingWithdrawal = new ContainerType(
|
|
229
|
+
{
|
|
230
|
+
feeRecipient: ExecutionAddress,
|
|
231
|
+
amount: UintNum64,
|
|
232
|
+
builderIndex: BuilderIndex,
|
|
233
|
+
},
|
|
234
|
+
{typeName: "BuilderPendingWithdrawal", jsonCase: "eth2"}
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
export const BuilderPendingPayment = new ContainerType(
|
|
238
|
+
{
|
|
239
|
+
weight: UintNum64,
|
|
240
|
+
withdrawal: BuilderPendingWithdrawal,
|
|
241
|
+
proposerIndex: ValidatorIndex,
|
|
242
|
+
},
|
|
243
|
+
{typeName: "BuilderPendingPayment", jsonCase: "eth2"}
|
|
244
|
+
);
|
|
245
|
+
|
|
246
|
+
export const Builders = new ProgressiveListCompositeType(Builder, {typeName: "Builders"});
|
|
247
|
+
export const BuilderPendingWithdrawals = new ProgressiveListCompositeType(BuilderPendingWithdrawal, {
|
|
248
|
+
typeName: "BuilderPendingWithdrawals",
|
|
249
|
+
});
|
|
250
|
+
|
|
119
251
|
export const PayloadTimelinessCommittee = new VectorBasicType(ValidatorIndex, PTC_SIZE);
|
|
120
252
|
export const PtcWindow = new VectorCompositeType(
|
|
121
253
|
PayloadTimelinessCommittee,
|
|
@@ -132,15 +264,20 @@ export const PayloadAttestationData = new ContainerType(
|
|
|
132
264
|
{typeName: "PayloadAttestationData", jsonCase: "eth2"}
|
|
133
265
|
);
|
|
134
266
|
|
|
135
|
-
export const PayloadAttestation = new
|
|
267
|
+
export const PayloadAttestation = new ProgressiveContainerType(
|
|
136
268
|
{
|
|
137
269
|
aggregationBits: new BitVectorType(PTC_SIZE),
|
|
138
270
|
data: PayloadAttestationData,
|
|
139
271
|
signature: BLSSignature,
|
|
140
272
|
},
|
|
273
|
+
activeFields(3),
|
|
141
274
|
{typeName: "PayloadAttestation", jsonCase: "eth2"}
|
|
142
275
|
);
|
|
143
276
|
|
|
277
|
+
export const PayloadAttestations = new ProgressiveListCompositeType(PayloadAttestation, {
|
|
278
|
+
typeName: "PayloadAttestations",
|
|
279
|
+
});
|
|
280
|
+
|
|
144
281
|
export const PayloadAttestationMessage = new ContainerType(
|
|
145
282
|
{
|
|
146
283
|
validatorIndex: ValidatorIndex,
|
|
@@ -150,12 +287,13 @@ export const PayloadAttestationMessage = new ContainerType(
|
|
|
150
287
|
{typeName: "PayloadAttestationMessage", jsonCase: "eth2"}
|
|
151
288
|
);
|
|
152
289
|
|
|
153
|
-
export const IndexedPayloadAttestation = new
|
|
290
|
+
export const IndexedPayloadAttestation = new ProgressiveContainerType(
|
|
154
291
|
{
|
|
155
292
|
attestingIndices: new ListBasicType(ValidatorIndex, PTC_SIZE),
|
|
156
293
|
data: PayloadAttestationData,
|
|
157
294
|
signature: BLSSignature,
|
|
158
295
|
},
|
|
296
|
+
activeFields(3),
|
|
159
297
|
{typeName: "IndexedPayloadAttestation", jsonCase: "eth2"}
|
|
160
298
|
);
|
|
161
299
|
|
|
@@ -178,21 +316,25 @@ export const SignedProposerPreferences = new ContainerType(
|
|
|
178
316
|
{typeName: "SignedProposerPreferences", jsonCase: "eth2"}
|
|
179
317
|
);
|
|
180
318
|
|
|
181
|
-
export const ExecutionPayloadBid = new
|
|
319
|
+
export const ExecutionPayloadBid = new ProgressiveContainerType(
|
|
182
320
|
{
|
|
183
321
|
parentBlockHash: Bytes32,
|
|
184
322
|
parentBlockRoot: Root,
|
|
185
323
|
blockHash: Bytes32,
|
|
186
324
|
prevRandao: Bytes32,
|
|
187
325
|
feeRecipient: ExecutionAddress,
|
|
188
|
-
gasLimit
|
|
326
|
+
// gasLimit is a uint64 with no bound in process_execution_payload_bid (the gas-limit target
|
|
327
|
+
// check is gossip-only), so a block can carry any value; use UintBn64 so the bid hashTreeRoot
|
|
328
|
+
// matches exact-uint64 clients for values above 2**53.
|
|
329
|
+
gasLimit: UintBn64,
|
|
189
330
|
builderIndex: BuilderIndex,
|
|
190
331
|
slot: Slot,
|
|
191
332
|
value: UintNum64,
|
|
192
333
|
executionPayment: UintNum64,
|
|
193
|
-
blobKzgCommitments:
|
|
334
|
+
blobKzgCommitments: BlobKzgCommitments,
|
|
194
335
|
executionRequestsRoot: Root,
|
|
195
336
|
},
|
|
337
|
+
activeFields(12),
|
|
196
338
|
{typeName: "ExecutionPayloadBid", jsonCase: "eth2"}
|
|
197
339
|
);
|
|
198
340
|
|
|
@@ -204,18 +346,21 @@ export const SignedExecutionPayloadBid = new ContainerType(
|
|
|
204
346
|
{typeName: "SignedExecutionPayloadBid", jsonCase: "eth2"}
|
|
205
347
|
);
|
|
206
348
|
|
|
207
|
-
export const BlockAccessList = new
|
|
349
|
+
export const BlockAccessList = new ProgressiveByteListType({typeName: "BlockAccessList"});
|
|
208
350
|
|
|
209
|
-
export const ExecutionPayload = new
|
|
351
|
+
export const ExecutionPayload = new ProgressiveContainerType(
|
|
210
352
|
{
|
|
211
353
|
...electraSsz.ExecutionPayload.fields,
|
|
354
|
+
transactions: Transactions,
|
|
355
|
+
withdrawals: Withdrawals,
|
|
212
356
|
blockAccessList: BlockAccessList, // New in GLOAS:EIP-7928
|
|
213
357
|
slotNumber: Slot, // New in GLOAS:EIP-7843
|
|
214
358
|
},
|
|
359
|
+
activeFields(19),
|
|
215
360
|
{typeName: "ExecutionPayload", jsonCase: "eth2"}
|
|
216
361
|
);
|
|
217
362
|
|
|
218
|
-
export const ExecutionPayloadEnvelope = new
|
|
363
|
+
export const ExecutionPayloadEnvelope = new ProgressiveContainerType(
|
|
219
364
|
{
|
|
220
365
|
payload: ExecutionPayload,
|
|
221
366
|
executionRequests: ExecutionRequests,
|
|
@@ -223,6 +368,7 @@ export const ExecutionPayloadEnvelope = new ContainerType(
|
|
|
223
368
|
beaconBlockRoot: Root,
|
|
224
369
|
parentBeaconBlockRoot: Root,
|
|
225
370
|
},
|
|
371
|
+
activeFields(5),
|
|
226
372
|
{typeName: "ExecutionPayloadEnvelope", jsonCase: "eth2"}
|
|
227
373
|
);
|
|
228
374
|
|
|
@@ -234,25 +380,35 @@ export const SignedExecutionPayloadEnvelope = new ContainerType(
|
|
|
234
380
|
{typeName: "SignedExecutionPayloadEnvelope", jsonCase: "eth2"}
|
|
235
381
|
);
|
|
236
382
|
|
|
237
|
-
export const
|
|
383
|
+
export const SignedExecutionPayloadEnvelopeContents = new ContainerType(
|
|
384
|
+
{
|
|
385
|
+
signedExecutionPayloadEnvelope: SignedExecutionPayloadEnvelope,
|
|
386
|
+
kzgProofs: fuluSsz.KZGProofs,
|
|
387
|
+
blobs: denebSsz.Blobs,
|
|
388
|
+
},
|
|
389
|
+
{typeName: "SignedExecutionPayloadEnvelopeContents", jsonCase: "eth2"}
|
|
390
|
+
);
|
|
391
|
+
|
|
392
|
+
export const BeaconBlockBody = new ProgressiveContainerType(
|
|
238
393
|
{
|
|
239
394
|
randaoReveal: phase0Ssz.BeaconBlockBody.fields.randaoReveal,
|
|
240
395
|
eth1Data: phase0Ssz.BeaconBlockBody.fields.eth1Data,
|
|
241
396
|
graffiti: phase0Ssz.BeaconBlockBody.fields.graffiti,
|
|
242
|
-
proposerSlashings:
|
|
243
|
-
attesterSlashings:
|
|
244
|
-
attestations:
|
|
245
|
-
deposits:
|
|
246
|
-
voluntaryExits:
|
|
397
|
+
proposerSlashings: ProposerSlashings,
|
|
398
|
+
attesterSlashings: AttesterSlashings,
|
|
399
|
+
attestations: Attestations,
|
|
400
|
+
deposits: Deposits,
|
|
401
|
+
voluntaryExits: VoluntaryExits,
|
|
247
402
|
syncAggregate: altairSsz.BeaconBlockBody.fields.syncAggregate,
|
|
248
403
|
// executionPayload: ExecutionPayload, // Removed in GLOAS:EIP7732
|
|
249
|
-
blsToExecutionChanges:
|
|
404
|
+
blsToExecutionChanges: BlsToExecutionChanges,
|
|
250
405
|
// blobKzgCommitments: denebSsz.BeaconBlockBody.fields.blobKzgCommitments, // Removed in GLOAS:EIP7732
|
|
251
406
|
// executionRequests: ExecutionRequests, // Removed in GLOAS:EIP7732
|
|
252
407
|
signedExecutionPayloadBid: SignedExecutionPayloadBid, // New in GLOAS:EIP7732
|
|
253
|
-
payloadAttestations:
|
|
408
|
+
payloadAttestations: PayloadAttestations, // New in GLOAS:EIP7732
|
|
254
409
|
parentExecutionRequests: ExecutionRequests, // New in GLOAS:EIP7732
|
|
255
410
|
},
|
|
411
|
+
activeFields(13),
|
|
256
412
|
{typeName: "BeaconBlockBody", jsonCase: "eth2", cachePermanentRootStruct: true}
|
|
257
413
|
);
|
|
258
414
|
|
|
@@ -272,7 +428,77 @@ export const SignedBeaconBlock = new ContainerType(
|
|
|
272
428
|
{typeName: "SignedBeaconBlock", jsonCase: "eth2"}
|
|
273
429
|
);
|
|
274
430
|
|
|
275
|
-
|
|
431
|
+
// Full block production response for self-builds, enables stateless envelope publishing
|
|
432
|
+
export const BlockContents = new ContainerType(
|
|
433
|
+
{
|
|
434
|
+
block: BeaconBlock,
|
|
435
|
+
executionPayloadEnvelope: ExecutionPayloadEnvelope,
|
|
436
|
+
kzgProofs: fuluSsz.KZGProofs,
|
|
437
|
+
blobs: denebSsz.Blobs,
|
|
438
|
+
},
|
|
439
|
+
{typeName: "BlockContents", jsonCase: "eth2"}
|
|
440
|
+
);
|
|
441
|
+
|
|
442
|
+
export const LightClientHeader = new ContainerType(
|
|
443
|
+
{
|
|
444
|
+
beacon: phase0Ssz.BeaconBlockHeader,
|
|
445
|
+
executionBlockHash: Bytes32,
|
|
446
|
+
executionBranch: ExecutionBranch,
|
|
447
|
+
},
|
|
448
|
+
{typeName: "LightClientHeader", jsonCase: "eth2"}
|
|
449
|
+
);
|
|
450
|
+
|
|
451
|
+
export const LightClientBootstrap = new ContainerType(
|
|
452
|
+
{
|
|
453
|
+
header: LightClientHeader,
|
|
454
|
+
currentSyncCommittee: altairSsz.SyncCommittee,
|
|
455
|
+
currentSyncCommitteeBranch: CurrentSyncCommitteeBranch,
|
|
456
|
+
},
|
|
457
|
+
{typeName: "LightClientBootstrap", jsonCase: "eth2"}
|
|
458
|
+
);
|
|
459
|
+
|
|
460
|
+
export const LightClientUpdate = new ContainerType(
|
|
461
|
+
{
|
|
462
|
+
attestedHeader: LightClientHeader,
|
|
463
|
+
nextSyncCommittee: altairSsz.SyncCommittee,
|
|
464
|
+
nextSyncCommitteeBranch: NextSyncCommitteeBranch,
|
|
465
|
+
finalizedHeader: LightClientHeader,
|
|
466
|
+
finalityBranch: FinalityBranch,
|
|
467
|
+
syncAggregate: altairSsz.SyncAggregate,
|
|
468
|
+
signatureSlot: Slot,
|
|
469
|
+
},
|
|
470
|
+
{typeName: "LightClientUpdate", jsonCase: "eth2"}
|
|
471
|
+
);
|
|
472
|
+
|
|
473
|
+
export const LightClientFinalityUpdate = new ContainerType(
|
|
474
|
+
{
|
|
475
|
+
attestedHeader: LightClientHeader,
|
|
476
|
+
finalizedHeader: LightClientHeader,
|
|
477
|
+
finalityBranch: FinalityBranch,
|
|
478
|
+
syncAggregate: altairSsz.SyncAggregate,
|
|
479
|
+
signatureSlot: Slot,
|
|
480
|
+
},
|
|
481
|
+
{typeName: "LightClientFinalityUpdate", jsonCase: "eth2"}
|
|
482
|
+
);
|
|
483
|
+
|
|
484
|
+
export const LightClientOptimisticUpdate = new ContainerType(
|
|
485
|
+
{
|
|
486
|
+
attestedHeader: LightClientHeader,
|
|
487
|
+
syncAggregate: altairSsz.SyncAggregate,
|
|
488
|
+
signatureSlot: Slot,
|
|
489
|
+
},
|
|
490
|
+
{typeName: "LightClientOptimisticUpdate", jsonCase: "eth2"}
|
|
491
|
+
);
|
|
492
|
+
|
|
493
|
+
export const LightClientStore = new ContainerType(
|
|
494
|
+
{
|
|
495
|
+
snapshot: LightClientBootstrap,
|
|
496
|
+
validUpdates: new ListCompositeType(LightClientUpdate, EPOCHS_PER_SYNC_COMMITTEE_PERIOD * SLOTS_PER_EPOCH),
|
|
497
|
+
},
|
|
498
|
+
{typeName: "LightClientStore", jsonCase: "eth2"}
|
|
499
|
+
);
|
|
500
|
+
|
|
501
|
+
export const BeaconState = new ProgressiveContainerType(
|
|
276
502
|
{
|
|
277
503
|
genesisTime: UintNum64,
|
|
278
504
|
genesisValidatorsRoot: Root,
|
|
@@ -289,21 +515,21 @@ export const BeaconState = new ContainerType(
|
|
|
289
515
|
eth1DataVotes: phase0Ssz.Eth1DataVotes,
|
|
290
516
|
eth1DepositIndex: UintNum64,
|
|
291
517
|
// Registry
|
|
292
|
-
validators:
|
|
293
|
-
balances:
|
|
518
|
+
validators: Validators,
|
|
519
|
+
balances: Balances,
|
|
294
520
|
randaoMixes: phase0Ssz.RandaoMixes,
|
|
295
521
|
// Slashings
|
|
296
522
|
slashings: phase0Ssz.Slashings,
|
|
297
523
|
// Participation
|
|
298
|
-
previousEpochParticipation:
|
|
299
|
-
currentEpochParticipation:
|
|
524
|
+
previousEpochParticipation: EpochParticipation,
|
|
525
|
+
currentEpochParticipation: EpochParticipation,
|
|
300
526
|
// Finality
|
|
301
527
|
justificationBits: phase0Ssz.JustificationBits,
|
|
302
528
|
previousJustifiedCheckpoint: phase0Ssz.Checkpoint,
|
|
303
529
|
currentJustifiedCheckpoint: phase0Ssz.Checkpoint,
|
|
304
530
|
finalizedCheckpoint: phase0Ssz.Checkpoint,
|
|
305
531
|
// Inactivity
|
|
306
|
-
inactivityScores:
|
|
532
|
+
inactivityScores: InactivityScores,
|
|
307
533
|
// Sync
|
|
308
534
|
currentSyncCommittee: altairSsz.SyncCommittee,
|
|
309
535
|
nextSyncCommittee: altairSsz.SyncCommittee,
|
|
@@ -321,28 +547,29 @@ export const BeaconState = new ContainerType(
|
|
|
321
547
|
earliestExitEpoch: Epoch,
|
|
322
548
|
consolidationBalanceToConsume: Gwei,
|
|
323
549
|
earliestConsolidationEpoch: Epoch,
|
|
324
|
-
pendingDeposits:
|
|
325
|
-
pendingPartialWithdrawals:
|
|
326
|
-
pendingConsolidations:
|
|
550
|
+
pendingDeposits: PendingDeposits,
|
|
551
|
+
pendingPartialWithdrawals: PendingPartialWithdrawals,
|
|
552
|
+
pendingConsolidations: PendingConsolidations,
|
|
327
553
|
proposerLookahead: fuluSsz.BeaconState.fields.proposerLookahead,
|
|
328
|
-
builders:
|
|
554
|
+
builders: Builders, // New in GLOAS:EIP7732
|
|
329
555
|
nextWithdrawalBuilderIndex: BuilderIndex, // New in GLOAS:EIP7732
|
|
330
556
|
executionPayloadAvailability: new BitVectorType(SLOTS_PER_HISTORICAL_ROOT), // New in GLOAS:EIP7732
|
|
331
557
|
builderPendingPayments: new VectorCompositeType(BuilderPendingPayment, 2 * SLOTS_PER_EPOCH), // New in GLOAS:EIP7732
|
|
332
|
-
builderPendingWithdrawals:
|
|
558
|
+
builderPendingWithdrawals: BuilderPendingWithdrawals, // New in GLOAS:EIP7732
|
|
333
559
|
latestExecutionPayloadBid: ExecutionPayloadBid, // New in GLOAS:EIP7732
|
|
334
|
-
payloadExpectedWithdrawals:
|
|
560
|
+
payloadExpectedWithdrawals: Withdrawals, // New in GLOAS:EIP7732
|
|
335
561
|
ptcWindow: PtcWindow, // New in GLOAS:EIP7732
|
|
336
562
|
},
|
|
563
|
+
activeFields(46),
|
|
337
564
|
{typeName: "BeaconState", jsonCase: "eth2"}
|
|
338
565
|
);
|
|
339
566
|
|
|
340
567
|
export const DataColumnSidecar = new ContainerType(
|
|
341
568
|
{
|
|
342
569
|
index: fuluSsz.DataColumnSidecar.fields.index,
|
|
343
|
-
column:
|
|
570
|
+
column: DataColumn,
|
|
344
571
|
// kzgCommitments: denebSsz.BlobKzgCommitments, // Removed in GLOAS:EIP7732
|
|
345
|
-
kzgProofs:
|
|
572
|
+
kzgProofs: KZGProofs,
|
|
346
573
|
// signedBlockHeader: phase0Ssz.SignedBeaconBlockHeader, // Removed in GLOAS:EIP7732
|
|
347
574
|
// kzgCommitmentsInclusionProof: KzgCommitmentsInclusionProof, // Removed in GLOAS:EIP7732
|
|
348
575
|
slot: Slot, // New in GLOAS:EIP7732
|
package/src/gloas/types.ts
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import {ValueOf} from "@chainsafe/ssz";
|
|
2
2
|
import * as ssz from "./sszTypes.js";
|
|
3
3
|
|
|
4
|
+
export type AggregationBits = ValueOf<typeof ssz.AggregationBits>;
|
|
5
|
+
export type AttestingIndices = ValueOf<typeof ssz.AttestingIndices>;
|
|
6
|
+
export type Transaction = ValueOf<typeof ssz.Transaction>;
|
|
7
|
+
export type Transactions = ValueOf<typeof ssz.Transactions>;
|
|
8
|
+
export type Withdrawals = ValueOf<typeof ssz.Withdrawals>;
|
|
9
|
+
export type BlobKzgCommitments = ValueOf<typeof ssz.BlobKzgCommitments>;
|
|
10
|
+
export type KZGProofs = ValueOf<typeof ssz.KZGProofs>;
|
|
11
|
+
export type DataColumn = ValueOf<typeof ssz.DataColumn>;
|
|
12
|
+
|
|
13
|
+
export type Attestation = ValueOf<typeof ssz.Attestation>;
|
|
14
|
+
export type IndexedAttestation = ValueOf<typeof ssz.IndexedAttestation>;
|
|
15
|
+
export type IndexedAttestationBigint = ValueOf<typeof ssz.IndexedAttestationBigint>;
|
|
16
|
+
export type AttesterSlashing = ValueOf<typeof ssz.AttesterSlashing>;
|
|
17
|
+
|
|
18
|
+
export type AggregateAndProof = ValueOf<typeof ssz.AggregateAndProof>;
|
|
19
|
+
export type SignedAggregateAndProof = ValueOf<typeof ssz.SignedAggregateAndProof>;
|
|
20
|
+
|
|
21
|
+
export type DepositRequest = ValueOf<typeof ssz.DepositRequest>;
|
|
22
|
+
export type DepositRequests = ValueOf<typeof ssz.DepositRequests>;
|
|
23
|
+
export type WithdrawalRequest = ValueOf<typeof ssz.WithdrawalRequest>;
|
|
24
|
+
export type WithdrawalRequests = ValueOf<typeof ssz.WithdrawalRequests>;
|
|
25
|
+
export type ConsolidationRequest = ValueOf<typeof ssz.ConsolidationRequest>;
|
|
26
|
+
export type ConsolidationRequests = ValueOf<typeof ssz.ConsolidationRequests>;
|
|
27
|
+
export type ExecutionRequests = ValueOf<typeof ssz.ExecutionRequests>;
|
|
28
|
+
|
|
4
29
|
export type Builder = ValueOf<typeof ssz.Builder>;
|
|
5
30
|
export type BuilderPendingWithdrawal = ValueOf<typeof ssz.BuilderPendingWithdrawal>;
|
|
6
31
|
export type BuilderPendingPayment = ValueOf<typeof ssz.BuilderPendingPayment>;
|
|
@@ -8,7 +33,6 @@ export type BuilderDepositRequest = ValueOf<typeof ssz.BuilderDepositRequest>;
|
|
|
8
33
|
export type BuilderDepositRequests = ValueOf<typeof ssz.BuilderDepositRequests>;
|
|
9
34
|
export type BuilderExitRequest = ValueOf<typeof ssz.BuilderExitRequest>;
|
|
10
35
|
export type BuilderExitRequests = ValueOf<typeof ssz.BuilderExitRequests>;
|
|
11
|
-
export type ExecutionRequests = ValueOf<typeof ssz.ExecutionRequests>;
|
|
12
36
|
export type PayloadTimelinessCommittee = ValueOf<typeof ssz.PayloadTimelinessCommittee>;
|
|
13
37
|
export type PtcWindow = ValueOf<typeof ssz.PtcWindow>;
|
|
14
38
|
export type PayloadAttestationData = ValueOf<typeof ssz.PayloadAttestationData>;
|
|
@@ -23,9 +47,17 @@ export type SignedExecutionPayloadBid = ValueOf<typeof ssz.SignedExecutionPayloa
|
|
|
23
47
|
export type BlockAccessList = ValueOf<typeof ssz.BlockAccessList>;
|
|
24
48
|
export type ExecutionPayloadEnvelope = ValueOf<typeof ssz.ExecutionPayloadEnvelope>;
|
|
25
49
|
export type SignedExecutionPayloadEnvelope = ValueOf<typeof ssz.SignedExecutionPayloadEnvelope>;
|
|
50
|
+
export type SignedExecutionPayloadEnvelopeContents = ValueOf<typeof ssz.SignedExecutionPayloadEnvelopeContents>;
|
|
26
51
|
export type BeaconBlockBody = ValueOf<typeof ssz.BeaconBlockBody>;
|
|
27
52
|
export type BeaconBlock = ValueOf<typeof ssz.BeaconBlock>;
|
|
28
53
|
export type SignedBeaconBlock = ValueOf<typeof ssz.SignedBeaconBlock>;
|
|
54
|
+
export type BlockContents = ValueOf<typeof ssz.BlockContents>;
|
|
55
|
+
export type LightClientHeader = ValueOf<typeof ssz.LightClientHeader>;
|
|
56
|
+
export type LightClientBootstrap = ValueOf<typeof ssz.LightClientBootstrap>;
|
|
57
|
+
export type LightClientUpdate = ValueOf<typeof ssz.LightClientUpdate>;
|
|
58
|
+
export type LightClientFinalityUpdate = ValueOf<typeof ssz.LightClientFinalityUpdate>;
|
|
59
|
+
export type LightClientOptimisticUpdate = ValueOf<typeof ssz.LightClientOptimisticUpdate>;
|
|
60
|
+
export type LightClientStore = ValueOf<typeof ssz.LightClientStore>;
|
|
29
61
|
export type BeaconState = ValueOf<typeof ssz.BeaconState>;
|
|
30
62
|
|
|
31
63
|
export type DataColumnSidecar = ValueOf<typeof ssz.DataColumnSidecar>;
|
package/src/types.ts
CHANGED
|
@@ -294,12 +294,12 @@ type TypesByFork = {
|
|
|
294
294
|
SignedBeaconBlock: gloas.SignedBeaconBlock;
|
|
295
295
|
Metadata: fulu.Metadata;
|
|
296
296
|
Status: fulu.Status;
|
|
297
|
-
LightClientHeader:
|
|
298
|
-
LightClientBootstrap:
|
|
299
|
-
LightClientUpdate:
|
|
300
|
-
LightClientFinalityUpdate:
|
|
301
|
-
LightClientOptimisticUpdate:
|
|
302
|
-
LightClientStore:
|
|
297
|
+
LightClientHeader: gloas.LightClientHeader;
|
|
298
|
+
LightClientBootstrap: gloas.LightClientBootstrap;
|
|
299
|
+
LightClientUpdate: gloas.LightClientUpdate;
|
|
300
|
+
LightClientFinalityUpdate: gloas.LightClientFinalityUpdate;
|
|
301
|
+
LightClientOptimisticUpdate: gloas.LightClientOptimisticUpdate;
|
|
302
|
+
LightClientStore: gloas.LightClientStore;
|
|
303
303
|
BlindedBeaconBlock: electra.BlindedBeaconBlock;
|
|
304
304
|
BlindedBeaconBlockBody: electra.BlindedBeaconBlockBody;
|
|
305
305
|
SignedBlindedBeaconBlock: electra.SignedBlindedBeaconBlock;
|
|
@@ -308,19 +308,19 @@ type TypesByFork = {
|
|
|
308
308
|
BuilderBid: electra.BuilderBid;
|
|
309
309
|
SignedBuilderBid: electra.SignedBuilderBid;
|
|
310
310
|
SSEPayloadAttributes: gloas.SSEPayloadAttributes;
|
|
311
|
-
BlockContents:
|
|
311
|
+
BlockContents: gloas.BlockContents;
|
|
312
312
|
SignedBlockContents: fulu.SignedBlockContents;
|
|
313
313
|
ExecutionPayloadAndBlobsBundle: fulu.ExecutionPayloadAndBlobsBundle;
|
|
314
314
|
BlobsBundle: fulu.BlobsBundle;
|
|
315
315
|
SyncCommittee: altair.SyncCommittee;
|
|
316
316
|
SyncAggregate: altair.SyncAggregate;
|
|
317
317
|
SingleAttestation: electra.SingleAttestation;
|
|
318
|
-
Attestation:
|
|
319
|
-
IndexedAttestation:
|
|
320
|
-
IndexedAttestationBigint:
|
|
321
|
-
AttesterSlashing:
|
|
322
|
-
AggregateAndProof:
|
|
323
|
-
SignedAggregateAndProof:
|
|
318
|
+
Attestation: gloas.Attestation;
|
|
319
|
+
IndexedAttestation: gloas.IndexedAttestation;
|
|
320
|
+
IndexedAttestationBigint: gloas.IndexedAttestationBigint;
|
|
321
|
+
AttesterSlashing: gloas.AttesterSlashing;
|
|
322
|
+
AggregateAndProof: gloas.AggregateAndProof;
|
|
323
|
+
SignedAggregateAndProof: gloas.SignedAggregateAndProof;
|
|
324
324
|
ExecutionRequests: gloas.ExecutionRequests;
|
|
325
325
|
ExecutionPayloadBid: gloas.ExecutionPayloadBid;
|
|
326
326
|
DataColumnSidecar: gloas.DataColumnSidecar;
|