@lodestar/beacon-node 1.41.0-dev.555261016d → 1.41.0-dev.988363dff3

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 (42) hide show
  1. package/lib/api/impl/node/index.d.ts +1 -1
  2. package/lib/api/impl/node/index.d.ts.map +1 -1
  3. package/lib/api/impl/node/index.js +18 -1
  4. package/lib/api/impl/node/index.js.map +1 -1
  5. package/lib/chain/errors/blockError.d.ts +7 -1
  6. package/lib/chain/errors/blockError.d.ts.map +1 -1
  7. package/lib/chain/errors/blockError.js +2 -0
  8. package/lib/chain/errors/blockError.js.map +1 -1
  9. package/lib/chain/validation/block.d.ts.map +1 -1
  10. package/lib/chain/validation/block.js +27 -3
  11. package/lib/chain/validation/block.js.map +1 -1
  12. package/lib/chain/validation/executionPayloadEnvelope.js +2 -1
  13. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  14. package/lib/chain/validation/payloadAttestationMessage.js +1 -1
  15. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  16. package/lib/execution/engine/interface.d.ts +3 -25
  17. package/lib/execution/engine/interface.d.ts.map +1 -1
  18. package/lib/execution/engine/interface.js +2 -20
  19. package/lib/execution/engine/interface.js.map +1 -1
  20. package/lib/network/gossip/topic.d.ts +1 -2
  21. package/lib/network/gossip/topic.d.ts.map +1 -1
  22. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  23. package/lib/sync/utils/downloadByRange.js +3 -9
  24. package/lib/sync/utils/downloadByRange.js.map +1 -1
  25. package/lib/sync/utils/downloadByRoot.d.ts +1 -1
  26. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  27. package/lib/sync/utils/downloadByRoot.js +4 -4
  28. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  29. package/lib/util/dataColumns.d.ts +5 -0
  30. package/lib/util/dataColumns.d.ts.map +1 -1
  31. package/lib/util/dataColumns.js +13 -5
  32. package/lib/util/dataColumns.js.map +1 -1
  33. package/package.json +15 -15
  34. package/src/api/impl/node/index.ts +22 -1
  35. package/src/chain/errors/blockError.ts +4 -1
  36. package/src/chain/validation/block.ts +32 -4
  37. package/src/chain/validation/executionPayloadEnvelope.ts +2 -1
  38. package/src/chain/validation/payloadAttestationMessage.ts +1 -1
  39. package/src/execution/engine/interface.ts +3 -27
  40. package/src/sync/utils/downloadByRange.ts +3 -15
  41. package/src/sync/utils/downloadByRoot.ts +5 -11
  42. package/src/util/dataColumns.ts +18 -5
@@ -8,6 +8,7 @@ import {
8
8
  ForkPreGloas,
9
9
  KZG_COMMITMENTS_GINDEX,
10
10
  NUMBER_OF_COLUMNS,
11
+ isForkPostGloas,
11
12
  } from "@lodestar/params";
12
13
  import {signedBlockToSignedHeader} from "@lodestar/state-transition";
13
14
  import {
@@ -19,6 +20,7 @@ import {
19
20
  SignedBeaconBlockHeader,
20
21
  deneb,
21
22
  fulu,
23
+ gloas,
22
24
  ssz,
23
25
  } from "@lodestar/types";
24
26
  import {bytesToBigInt} from "@lodestar/utils";
@@ -261,6 +263,20 @@ export async function getCellsAndProofs(
261
263
  return blobsAndProofs;
262
264
  }
263
265
 
266
+ /**
267
+ * Get blob KZG commitments from a signed block, handling the different locations
268
+ * in pre-Gloas (directly in block body) vs post-Gloas (in execution payload bid).
269
+ */
270
+ export function getBlobKzgCommitments(
271
+ fork: ForkName,
272
+ signedBlock: SignedBeaconBlock<ForkPostFulu>
273
+ ): deneb.KZGCommitment[] {
274
+ if (isForkPostGloas(fork)) {
275
+ return (signedBlock as gloas.SignedBeaconBlock).message.body.signedExecutionPayloadBid.message.blobKzgCommitments;
276
+ }
277
+ return (signedBlock.message.body as BeaconBlockBody<ForkPostFulu & ForkPreGloas>).blobKzgCommitments;
278
+ }
279
+
264
280
  /**
265
281
  * Given a signed block header and the commitments, inclusion proof, cells/proofs associated with
266
282
  * each blob in the block, assemble the sidecars which can be distributed to peers.
@@ -310,16 +326,13 @@ export function getDataColumnSidecarsFromBlock(
310
326
  signedBlock: SignedBeaconBlock<ForkPostFulu>,
311
327
  cellsAndKzgProofs: {cells: Uint8Array[]; proofs: Uint8Array[]}[]
312
328
  ): fulu.DataColumnSidecars {
313
- // TODO GLOAS: Need to get blobKzgCommitments from somewhere else
314
- const blobKzgCommitments = (signedBlock.message.body as BeaconBlockBody<ForkPostFulu & ForkPreGloas>)
315
- .blobKzgCommitments;
329
+ const fork = config.getForkName(signedBlock.message.slot);
330
+ const blobKzgCommitments = getBlobKzgCommitments(fork, signedBlock);
316
331
 
317
332
  // No need to create data column sidecars if there are no blobs
318
333
  if (blobKzgCommitments.length === 0) {
319
334
  return [];
320
335
  }
321
-
322
- const fork = config.getForkName(signedBlock.message.slot);
323
336
  const signedBlockHeader = signedBlockToSignedHeader(config, signedBlock);
324
337
 
325
338
  const kzgCommitmentsInclusionProof = computePostFuluKzgCommitmentsInclusionProof(fork, signedBlock.message.body);