@lodestar/beacon-node 1.41.0-dev.a35cbde8b3 → 1.41.0-dev.aeb5a213ee

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 (93) hide show
  1. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/state/utils.js +1 -20
  3. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  4. package/lib/api/impl/debug/index.d.ts.map +1 -1
  5. package/lib/api/impl/debug/index.js +5 -2
  6. package/lib/api/impl/debug/index.js.map +1 -1
  7. package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
  8. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  9. package/lib/chain/archiveStore/archiveStore.js +9 -0
  10. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  11. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +7 -0
  12. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +1 -0
  13. package/lib/chain/archiveStore/utils/archivePayloads.js +10 -0
  14. package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -0
  15. package/lib/chain/chain.d.ts +2 -2
  16. package/lib/chain/chain.d.ts.map +1 -1
  17. package/lib/chain/chain.js +1 -1
  18. package/lib/chain/chain.js.map +1 -1
  19. package/lib/chain/emitter.d.ts +2 -2
  20. package/lib/chain/emitter.d.ts.map +1 -1
  21. package/lib/chain/interface.d.ts +2 -2
  22. package/lib/chain/interface.d.ts.map +1 -1
  23. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  24. package/lib/chain/produceBlock/produceBlockBody.js +8 -1
  25. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  26. package/lib/db/beacon.d.ts +3 -1
  27. package/lib/db/beacon.d.ts.map +1 -1
  28. package/lib/db/beacon.js +5 -1
  29. package/lib/db/beacon.js.map +1 -1
  30. package/lib/db/buckets.d.ts +3 -1
  31. package/lib/db/buckets.d.ts.map +1 -1
  32. package/lib/db/buckets.js +2 -0
  33. package/lib/db/buckets.js.map +1 -1
  34. package/lib/db/interface.d.ts +3 -1
  35. package/lib/db/interface.d.ts.map +1 -1
  36. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  37. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  38. package/lib/db/repositories/dataColumnSidecar.d.ts +5 -3
  39. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  40. package/lib/db/repositories/dataColumnSidecar.js +14 -1
  41. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  42. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +5 -3
  43. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  44. package/lib/db/repositories/dataColumnSidecarArchive.js +14 -1
  45. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  46. package/lib/db/repositories/executionPayloadEnvelope.d.ts +19 -0
  47. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -0
  48. package/lib/db/repositories/executionPayloadEnvelope.js +22 -0
  49. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -0
  50. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +18 -0
  51. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -0
  52. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +28 -0
  53. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -0
  54. package/lib/db/repositories/index.d.ts +2 -0
  55. package/lib/db/repositories/index.d.ts.map +1 -1
  56. package/lib/db/repositories/index.js +2 -0
  57. package/lib/db/repositories/index.js.map +1 -1
  58. package/lib/network/gossip/topic.d.ts +51 -51
  59. package/lib/network/network.d.ts.map +1 -1
  60. package/lib/network/network.js +1 -1
  61. package/lib/network/network.js.map +1 -1
  62. package/lib/util/blobs.d.ts +2 -2
  63. package/lib/util/blobs.d.ts.map +1 -1
  64. package/lib/util/blobs.js.map +1 -1
  65. package/lib/util/dataColumns.d.ts +3 -5
  66. package/lib/util/dataColumns.d.ts.map +1 -1
  67. package/lib/util/dataColumns.js +0 -4
  68. package/lib/util/dataColumns.js.map +1 -1
  69. package/lib/util/multifork.d.ts +8 -0
  70. package/lib/util/multifork.d.ts.map +1 -1
  71. package/lib/util/multifork.js +37 -0
  72. package/lib/util/multifork.js.map +1 -1
  73. package/package.json +15 -15
  74. package/src/api/impl/beacon/state/utils.ts +10 -23
  75. package/src/api/impl/debug/index.ts +8 -5
  76. package/src/chain/archiveStore/archiveStore.ts +10 -0
  77. package/src/chain/archiveStore/utils/archivePayloads.ts +15 -0
  78. package/src/chain/chain.ts +6 -5
  79. package/src/chain/emitter.ts +2 -2
  80. package/src/chain/interface.ts +2 -2
  81. package/src/chain/produceBlock/produceBlockBody.ts +9 -2
  82. package/src/db/beacon.ts +8 -0
  83. package/src/db/buckets.ts +3 -0
  84. package/src/db/interface.ts +5 -0
  85. package/src/db/repositories/dataColumnSidecar.ts +18 -3
  86. package/src/db/repositories/dataColumnSidecarArchive.ts +18 -3
  87. package/src/db/repositories/executionPayloadEnvelope.ts +26 -0
  88. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +32 -0
  89. package/src/db/repositories/index.ts +2 -0
  90. package/src/network/network.ts +4 -2
  91. package/src/util/blobs.ts +3 -3
  92. package/src/util/dataColumns.ts +2 -7
  93. package/src/util/multifork.ts +45 -0
@@ -9,6 +9,11 @@ import {getSlotFromSignedBeaconBlockSerialized} from "./sszBytes.js";
9
9
  */
10
10
  const SLOT_BYTE_COUNT = 8;
11
11
 
12
+ /**
13
+ * SSZ offset uint32
14
+ */
15
+ const OFFSET_BYTE_COUNT = 4;
16
+
12
17
  /**
13
18
  * 8 + 32 = 40
14
19
  * ```
@@ -67,3 +72,43 @@ export function getLightClientHeaderTypeFromBytes(
67
72
  );
68
73
  return config.getPostAltairForkTypes(slot).LightClientHeader;
69
74
  }
75
+
76
+ /**
77
+ * Position of first offset in DataColumnSidecar (after index field)
78
+ *
79
+ * Fulu DataColumnSidecar (6 fields):
80
+ * index: uint64 [fixed - 8 bytes]
81
+ * column: List [variable - 4-byte offset]
82
+ * kzgCommitments: List [variable - 4-byte offset]
83
+ * kzgProofs: List [variable - 4-byte offset]
84
+ * signedBlockHeader: Container [fixed - 208 bytes]
85
+ * kzgCommitmentsInclusionProof: Vector[Bytes32, 4] [fixed - 128 bytes]
86
+ * => First offset value = 8 + 4 + 4 + 4 + 208 + 128 = 356
87
+ *
88
+ * Gloas DataColumnSidecar (5 fields):
89
+ * index: uint64 [fixed - 8 bytes]
90
+ * column: List [variable - 4-byte offset]
91
+ * kzgProofs: List [variable - 4-byte offset]
92
+ * slot: uint64 [fixed - 8 bytes]
93
+ * beaconBlockRoot: Bytes32 [fixed - 32 bytes]
94
+ * => First offset value = 8 + 4 + 4 + 8 + 32 = 56
95
+ */
96
+ const FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR = 8;
97
+ const GLOAS_DATA_COLUMN_SIDECAR_FIRST_OFFSET = 56;
98
+
99
+ /**
100
+ * Determines if DataColumnSidecar bytes are from Gloas fork by checking the SSZ offset structure.
101
+ *
102
+ * The first offset (bytes 8-12) indicates where variable-size data begins:
103
+ * - Gloas: 56 (small fixed section)
104
+ * - Fulu: 356
105
+ */
106
+ export function isGloasDataColumnSidecarBytes(bytes: Uint8Array): boolean {
107
+ const firstOffset = bytesToInt(
108
+ bytes.subarray(
109
+ FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR,
110
+ FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR + OFFSET_BYTE_COUNT
111
+ )
112
+ );
113
+ return firstOffset === GLOAS_DATA_COLUMN_SIDECAR_FIRST_OFFSET;
114
+ }