@lodestar/beacon-node 1.42.0-dev.f6213da56d → 1.42.0-dev.fb8f8a700e

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 (471) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +25 -13
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/pool/index.js +5 -1
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/state/index.js +38 -40
  9. package/lib/api/impl/beacon/state/index.js.map +1 -1
  10. package/lib/api/impl/beacon/state/utils.d.ts +4 -4
  11. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/state/utils.js +7 -10
  13. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  14. package/lib/api/impl/debug/index.js.map +1 -1
  15. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  16. package/lib/api/impl/lodestar/index.js +8 -6
  17. package/lib/api/impl/lodestar/index.js.map +1 -1
  18. package/lib/api/impl/proof/index.d.ts.map +1 -1
  19. package/lib/api/impl/proof/index.js +2 -6
  20. package/lib/api/impl/proof/index.js.map +1 -1
  21. package/lib/api/impl/validator/index.d.ts.map +1 -1
  22. package/lib/api/impl/validator/index.js +33 -27
  23. package/lib/api/impl/validator/index.js.map +1 -1
  24. package/lib/api/impl/validator/utils.d.ts +2 -2
  25. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  26. package/lib/api/impl/validator/utils.js +3 -3
  27. package/lib/api/impl/validator/utils.js.map +1 -1
  28. package/lib/chain/ColumnReconstructionTracker.d.ts +2 -1
  29. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  30. package/lib/chain/ColumnReconstructionTracker.js +5 -5
  31. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  32. package/lib/chain/GetBlobsTracker.d.ts +2 -1
  33. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  34. package/lib/chain/GetBlobsTracker.js +14 -12
  35. package/lib/chain/GetBlobsTracker.js.map +1 -1
  36. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  37. package/lib/chain/archiveStore/archiveStore.js +1 -0
  38. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  39. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +3 -7
  40. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  41. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +8 -26
  42. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  43. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts +2 -2
  44. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  45. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -0
  46. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  47. package/lib/chain/archiveStore/historicalState/types.d.ts +2 -0
  48. package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
  49. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  50. package/lib/chain/archiveStore/historicalState/worker.js +1 -3
  51. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  52. package/lib/chain/archiveStore/interface.d.ts +1 -0
  53. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  54. package/lib/chain/balancesCache.d.ts +2 -2
  55. package/lib/chain/balancesCache.d.ts.map +1 -1
  56. package/lib/chain/balancesCache.js +4 -4
  57. package/lib/chain/balancesCache.js.map +1 -1
  58. package/lib/chain/blocks/blockInput/blockInput.d.ts +5 -5
  59. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  60. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  61. package/lib/chain/blocks/blockInput/types.d.ts +5 -4
  62. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  63. package/lib/chain/blocks/blockInput/types.js +1 -0
  64. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  65. package/lib/chain/blocks/importBlock.d.ts +3 -3
  66. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  67. package/lib/chain/blocks/importBlock.js +37 -23
  68. package/lib/chain/blocks/importBlock.js.map +1 -1
  69. package/lib/chain/blocks/importExecutionPayload.d.ts +10 -8
  70. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  71. package/lib/chain/blocks/importExecutionPayload.js +87 -51
  72. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  73. package/lib/chain/blocks/index.d.ts.map +1 -1
  74. package/lib/chain/blocks/index.js +3 -2
  75. package/lib/chain/blocks/index.js.map +1 -1
  76. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +14 -6
  77. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  78. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +33 -2
  79. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  80. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +2 -1
  81. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
  82. package/lib/chain/blocks/types.d.ts +21 -15
  83. package/lib/chain/blocks/types.d.ts.map +1 -1
  84. package/lib/chain/blocks/types.js.map +1 -1
  85. package/lib/chain/blocks/utils/checkpoint.d.ts +2 -2
  86. package/lib/chain/blocks/utils/checkpoint.d.ts.map +1 -1
  87. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  88. package/lib/chain/blocks/verifyBlock.d.ts +2 -2
  89. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  90. package/lib/chain/blocks/verifyBlock.js +4 -4
  91. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  92. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +5 -5
  93. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  94. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -4
  95. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  96. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -2
  97. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  98. package/lib/chain/blocks/verifyBlocksSignatures.js +4 -2
  99. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  100. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +3 -3
  101. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  102. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +3 -3
  103. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  104. package/lib/chain/chain.d.ts +15 -14
  105. package/lib/chain/chain.d.ts.map +1 -1
  106. package/lib/chain/chain.js +110 -62
  107. package/lib/chain/chain.js.map +1 -1
  108. package/lib/chain/emitter.d.ts +31 -9
  109. package/lib/chain/emitter.d.ts.map +1 -1
  110. package/lib/chain/emitter.js +12 -3
  111. package/lib/chain/emitter.js.map +1 -1
  112. package/lib/chain/errors/blockError.d.ts +4 -4
  113. package/lib/chain/errors/blockError.d.ts.map +1 -1
  114. package/lib/chain/errors/dataColumnSidecarError.d.ts +31 -1
  115. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +1 -1
  116. package/lib/chain/errors/dataColumnSidecarError.js +7 -0
  117. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  118. package/lib/chain/forkChoice/index.d.ts +4 -4
  119. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  120. package/lib/chain/forkChoice/index.js +30 -24
  121. package/lib/chain/forkChoice/index.js.map +1 -1
  122. package/lib/chain/initState.d.ts +2 -2
  123. package/lib/chain/initState.d.ts.map +1 -1
  124. package/lib/chain/initState.js +1 -1
  125. package/lib/chain/initState.js.map +1 -1
  126. package/lib/chain/interface.d.ts +15 -14
  127. package/lib/chain/interface.d.ts.map +1 -1
  128. package/lib/chain/lightClient/index.d.ts +2 -2
  129. package/lib/chain/lightClient/index.d.ts.map +1 -1
  130. package/lib/chain/lightClient/index.js +4 -4
  131. package/lib/chain/lightClient/index.js.map +1 -1
  132. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +6 -6
  133. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  134. package/lib/chain/opPools/aggregatedAttestationPool.js +13 -13
  135. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  136. package/lib/chain/opPools/executionPayloadBidPool.d.ts +2 -2
  137. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  138. package/lib/chain/opPools/executionPayloadBidPool.js +2 -2
  139. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  140. package/lib/chain/opPools/opPool.d.ts +3 -3
  141. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  142. package/lib/chain/opPools/opPool.js +7 -7
  143. package/lib/chain/opPools/opPool.js.map +1 -1
  144. package/lib/chain/opPools/utils.d.ts +2 -2
  145. package/lib/chain/opPools/utils.d.ts.map +1 -1
  146. package/lib/chain/opPools/utils.js +1 -1
  147. package/lib/chain/opPools/utils.js.map +1 -1
  148. package/lib/chain/options.d.ts +1 -0
  149. package/lib/chain/options.d.ts.map +1 -1
  150. package/lib/chain/options.js +1 -0
  151. package/lib/chain/options.js.map +1 -1
  152. package/lib/chain/prepareNextSlot.d.ts +2 -2
  153. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  154. package/lib/chain/prepareNextSlot.js +10 -4
  155. package/lib/chain/prepareNextSlot.js.map +1 -1
  156. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +4 -4
  157. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  158. package/lib/chain/produceBlock/computeNewStateRoot.js +3 -4
  159. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  160. package/lib/chain/produceBlock/produceBlockBody.d.ts +5 -5
  161. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  162. package/lib/chain/produceBlock/produceBlockBody.js +21 -16
  163. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  164. package/lib/chain/regen/interface.d.ts +13 -13
  165. package/lib/chain/regen/interface.d.ts.map +1 -1
  166. package/lib/chain/regen/queued.d.ts +14 -14
  167. package/lib/chain/regen/queued.d.ts.map +1 -1
  168. package/lib/chain/regen/queued.js.map +1 -1
  169. package/lib/chain/regen/regen.d.ts +6 -5
  170. package/lib/chain/regen/regen.d.ts.map +1 -1
  171. package/lib/chain/regen/regen.js +6 -6
  172. package/lib/chain/regen/regen.js.map +1 -1
  173. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +1 -1
  174. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  175. package/lib/chain/seenCache/seenGossipBlockInput.js +2 -2
  176. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  177. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +1 -1
  178. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  179. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +2 -2
  180. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  181. package/lib/chain/serializeState.d.ts +2 -2
  182. package/lib/chain/serializeState.d.ts.map +1 -1
  183. package/lib/chain/serializeState.js +1 -1
  184. package/lib/chain/serializeState.js.map +1 -1
  185. package/lib/chain/shufflingCache.d.ts +2 -2
  186. package/lib/chain/shufflingCache.d.ts.map +1 -1
  187. package/lib/chain/shufflingCache.js +3 -4
  188. package/lib/chain/shufflingCache.js.map +1 -1
  189. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +6 -6
  190. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  191. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  192. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +11 -11
  193. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  194. package/lib/chain/stateCache/persistentCheckpointsCache.js +12 -16
  195. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  196. package/lib/chain/stateCache/types.d.ts +14 -14
  197. package/lib/chain/stateCache/types.d.ts.map +1 -1
  198. package/lib/chain/stateCache/types.js.map +1 -1
  199. package/lib/chain/validation/attesterSlashing.js +3 -3
  200. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  201. package/lib/chain/validation/blobSidecar.js +1 -1
  202. package/lib/chain/validation/blobSidecar.js.map +1 -1
  203. package/lib/chain/validation/block.d.ts.map +1 -1
  204. package/lib/chain/validation/block.js +3 -3
  205. package/lib/chain/validation/block.js.map +1 -1
  206. package/lib/chain/validation/blsToExecutionChange.js +2 -2
  207. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  208. package/lib/chain/validation/dataColumnSidecar.d.ts +11 -4
  209. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  210. package/lib/chain/validation/dataColumnSidecar.js +185 -6
  211. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  212. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  213. package/lib/chain/validation/executionPayloadBid.js +10 -7
  214. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  215. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  216. package/lib/chain/validation/executionPayloadEnvelope.js +5 -3
  217. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  218. package/lib/chain/validation/payloadAttestationMessage.js +5 -3
  219. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  220. package/lib/chain/validation/proposerSlashing.js +1 -1
  221. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  222. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -2
  223. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  224. package/lib/chain/validation/signatureSets/contributionAndProof.js +1 -1
  225. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  226. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -2
  227. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  228. package/lib/chain/validation/signatureSets/syncCommittee.js +1 -1
  229. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  230. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +2 -2
  231. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  232. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  233. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -2
  234. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  235. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +1 -1
  236. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  237. package/lib/chain/validation/syncCommittee.d.ts +4 -4
  238. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  239. package/lib/chain/validation/syncCommittee.js +17 -12
  240. package/lib/chain/validation/syncCommittee.js.map +1 -1
  241. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  242. package/lib/chain/validation/syncCommitteeContributionAndProof.js +5 -2
  243. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  244. package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
  245. package/lib/chain/validation/voluntaryExit.js +3 -3
  246. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  247. package/lib/chain/validatorMonitor.d.ts +3 -3
  248. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  249. package/lib/chain/validatorMonitor.js +11 -9
  250. package/lib/chain/validatorMonitor.js.map +1 -1
  251. package/lib/db/buckets.d.ts +2 -2
  252. package/lib/db/buckets.d.ts.map +1 -1
  253. package/lib/db/buckets.js +2 -2
  254. package/lib/db/buckets.js.map +1 -1
  255. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  256. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  257. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  258. package/lib/db/repositories/dataColumnSidecar.js +4 -2
  259. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  260. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  261. package/lib/db/repositories/dataColumnSidecarArchive.js +4 -2
  262. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  263. package/lib/metrics/metrics/lodestar.d.ts +32 -4
  264. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  265. package/lib/metrics/metrics/lodestar.js +52 -15
  266. package/lib/metrics/metrics/lodestar.js.map +1 -1
  267. package/lib/network/gossip/encoding.d.ts.map +1 -1
  268. package/lib/network/gossip/encoding.js +15 -0
  269. package/lib/network/gossip/encoding.js.map +1 -1
  270. package/lib/network/gossip/topic.d.ts +2 -729
  271. package/lib/network/gossip/topic.d.ts.map +1 -1
  272. package/lib/network/interface.d.ts +7 -4
  273. package/lib/network/interface.d.ts.map +1 -1
  274. package/lib/network/libp2p/index.d.ts.map +1 -1
  275. package/lib/network/libp2p/index.js +22 -11
  276. package/lib/network/libp2p/index.js.map +1 -1
  277. package/lib/network/network.d.ts +7 -4
  278. package/lib/network/network.d.ts.map +1 -1
  279. package/lib/network/network.js +12 -3
  280. package/lib/network/network.js.map +1 -1
  281. package/lib/network/options.d.ts.map +1 -1
  282. package/lib/network/options.js +7 -2
  283. package/lib/network/options.js.map +1 -1
  284. package/lib/network/processor/extractSlotRootFns.d.ts +1 -1
  285. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  286. package/lib/network/processor/extractSlotRootFns.js +25 -5
  287. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  288. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  289. package/lib/network/processor/gossipHandlers.js +269 -80
  290. package/lib/network/processor/gossipHandlers.js.map +1 -1
  291. package/lib/network/processor/index.d.ts +22 -7
  292. package/lib/network/processor/index.d.ts.map +1 -1
  293. package/lib/network/processor/index.js +313 -80
  294. package/lib/network/processor/index.js.map +1 -1
  295. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  296. package/lib/network/reqresp/ReqRespBeaconNode.js +9 -0
  297. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  298. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts +8 -0
  299. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -0
  300. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +69 -0
  301. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -0
  302. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts +6 -0
  303. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts.map +1 -0
  304. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +28 -0
  305. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -0
  306. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  307. package/lib/network/reqresp/handlers/index.js +11 -1
  308. package/lib/network/reqresp/handlers/index.js.map +1 -1
  309. package/lib/network/reqresp/protocols.d.ts +2 -0
  310. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  311. package/lib/network/reqresp/protocols.js +10 -0
  312. package/lib/network/reqresp/protocols.js.map +1 -1
  313. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  314. package/lib/network/reqresp/rateLimit.js +8 -0
  315. package/lib/network/reqresp/rateLimit.js.map +1 -1
  316. package/lib/network/reqresp/score.d.ts.map +1 -1
  317. package/lib/network/reqresp/score.js +2 -0
  318. package/lib/network/reqresp/score.js.map +1 -1
  319. package/lib/network/reqresp/types.d.ts +10 -4
  320. package/lib/network/reqresp/types.d.ts.map +1 -1
  321. package/lib/network/reqresp/types.js +16 -4
  322. package/lib/network/reqresp/types.js.map +1 -1
  323. package/lib/node/nodejs.d.ts +2 -2
  324. package/lib/node/nodejs.d.ts.map +1 -1
  325. package/lib/node/nodejs.js +3 -3
  326. package/lib/node/nodejs.js.map +1 -1
  327. package/lib/node/notifier.d.ts.map +1 -1
  328. package/lib/node/notifier.js +3 -3
  329. package/lib/node/notifier.js.map +1 -1
  330. package/lib/sync/backfill/backfill.d.ts +2 -2
  331. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  332. package/lib/sync/backfill/backfill.js +2 -2
  333. package/lib/sync/backfill/backfill.js.map +1 -1
  334. package/lib/sync/unknownBlock.d.ts +3 -9
  335. package/lib/sync/unknownBlock.d.ts.map +1 -1
  336. package/lib/sync/unknownBlock.js +10 -43
  337. package/lib/sync/unknownBlock.js.map +1 -1
  338. package/lib/sync/utils/downloadByRange.d.ts +3 -3
  339. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  340. package/lib/sync/utils/downloadByRange.js +4 -2
  341. package/lib/sync/utils/downloadByRange.js.map +1 -1
  342. package/lib/sync/utils/downloadByRoot.d.ts +3 -3
  343. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  344. package/lib/sync/utils/downloadByRoot.js +10 -5
  345. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  346. package/lib/util/blobs.d.ts +3 -3
  347. package/lib/util/blobs.d.ts.map +1 -1
  348. package/lib/util/blobs.js +21 -10
  349. package/lib/util/blobs.js.map +1 -1
  350. package/lib/util/dataColumns.d.ts +18 -11
  351. package/lib/util/dataColumns.d.ts.map +1 -1
  352. package/lib/util/dataColumns.js +51 -17
  353. package/lib/util/dataColumns.js.map +1 -1
  354. package/lib/util/execution.d.ts +6 -2
  355. package/lib/util/execution.d.ts.map +1 -1
  356. package/lib/util/execution.js +49 -25
  357. package/lib/util/execution.js.map +1 -1
  358. package/lib/util/sszBytes.d.ts +25 -1
  359. package/lib/util/sszBytes.d.ts.map +1 -1
  360. package/lib/util/sszBytes.js +189 -2
  361. package/lib/util/sszBytes.js.map +1 -1
  362. package/lib/util/types.d.ts +2 -0
  363. package/lib/util/types.d.ts.map +1 -1
  364. package/lib/util/types.js +1 -0
  365. package/lib/util/types.js.map +1 -1
  366. package/package.json +16 -16
  367. package/src/api/impl/beacon/blocks/index.ts +33 -16
  368. package/src/api/impl/beacon/pool/index.ts +5 -1
  369. package/src/api/impl/beacon/state/index.ts +43 -55
  370. package/src/api/impl/beacon/state/utils.ts +11 -25
  371. package/src/api/impl/debug/index.ts +2 -2
  372. package/src/api/impl/lodestar/index.ts +8 -8
  373. package/src/api/impl/proof/index.ts +2 -9
  374. package/src/api/impl/validator/index.ts +36 -41
  375. package/src/api/impl/validator/utils.ts +4 -7
  376. package/src/chain/ColumnReconstructionTracker.ts +6 -5
  377. package/src/chain/GetBlobsTracker.ts +14 -12
  378. package/src/chain/archiveStore/archiveStore.ts +1 -0
  379. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -39
  380. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +2 -1
  381. package/src/chain/archiveStore/historicalState/types.ts +2 -0
  382. package/src/chain/archiveStore/historicalState/worker.ts +1 -4
  383. package/src/chain/archiveStore/interface.ts +1 -0
  384. package/src/chain/balancesCache.ts +5 -11
  385. package/src/chain/blocks/blockInput/blockInput.ts +8 -8
  386. package/src/chain/blocks/blockInput/types.ts +5 -4
  387. package/src/chain/blocks/importBlock.ts +50 -31
  388. package/src/chain/blocks/importExecutionPayload.ts +98 -62
  389. package/src/chain/blocks/index.ts +3 -2
  390. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +53 -12
  391. package/src/chain/blocks/payloadEnvelopeInput/types.ts +2 -1
  392. package/src/chain/blocks/types.ts +26 -15
  393. package/src/chain/blocks/utils/checkpoint.ts +2 -2
  394. package/src/chain/blocks/verifyBlock.ts +5 -10
  395. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +10 -14
  396. package/src/chain/blocks/verifyBlocksSignatures.ts +10 -3
  397. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -8
  398. package/src/chain/chain.ts +148 -95
  399. package/src/chain/emitter.ts +27 -9
  400. package/src/chain/errors/blockError.ts +4 -4
  401. package/src/chain/errors/dataColumnSidecarError.ts +32 -1
  402. package/src/chain/forkChoice/index.ts +35 -41
  403. package/src/chain/initState.ts +7 -2
  404. package/src/chain/interface.ts +16 -15
  405. package/src/chain/lightClient/index.ts +9 -18
  406. package/src/chain/opPools/aggregatedAttestationPool.ts +20 -21
  407. package/src/chain/opPools/executionPayloadBidPool.ts +3 -3
  408. package/src/chain/opPools/opPool.ts +13 -14
  409. package/src/chain/opPools/utils.ts +3 -3
  410. package/src/chain/options.ts +2 -0
  411. package/src/chain/prepareNextSlot.ts +14 -8
  412. package/src/chain/produceBlock/computeNewStateRoot.ts +7 -10
  413. package/src/chain/produceBlock/produceBlockBody.ts +38 -45
  414. package/src/chain/regen/interface.ts +13 -17
  415. package/src/chain/regen/queued.ts +16 -20
  416. package/src/chain/regen/regen.ts +16 -17
  417. package/src/chain/seenCache/seenGossipBlockInput.ts +2 -2
  418. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +2 -2
  419. package/src/chain/serializeState.ts +3 -3
  420. package/src/chain/shufflingCache.ts +5 -7
  421. package/src/chain/stateCache/fifoBlockStateCache.ts +7 -7
  422. package/src/chain/stateCache/persistentCheckpointsCache.ts +27 -42
  423. package/src/chain/stateCache/types.ts +14 -18
  424. package/src/chain/validation/attesterSlashing.ts +3 -3
  425. package/src/chain/validation/blobSidecar.ts +1 -1
  426. package/src/chain/validation/block.ts +3 -4
  427. package/src/chain/validation/blsToExecutionChange.ts +2 -2
  428. package/src/chain/validation/dataColumnSidecar.ts +231 -8
  429. package/src/chain/validation/executionPayloadBid.ts +10 -10
  430. package/src/chain/validation/executionPayloadEnvelope.ts +5 -4
  431. package/src/chain/validation/payloadAttestationMessage.ts +6 -4
  432. package/src/chain/validation/proposerSlashing.ts +1 -1
  433. package/src/chain/validation/signatureSets/contributionAndProof.ts +2 -7
  434. package/src/chain/validation/signatureSets/syncCommittee.ts +2 -7
  435. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +2 -2
  436. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -7
  437. package/src/chain/validation/syncCommittee.ts +25 -20
  438. package/src/chain/validation/syncCommitteeContributionAndProof.ts +9 -10
  439. package/src/chain/validation/voluntaryExit.ts +3 -8
  440. package/src/chain/validatorMonitor.ts +15 -13
  441. package/src/db/buckets.ts +2 -2
  442. package/src/db/repositories/dataColumnSidecar.ts +4 -2
  443. package/src/db/repositories/dataColumnSidecarArchive.ts +4 -2
  444. package/src/metrics/metrics/lodestar.ts +57 -19
  445. package/src/network/gossip/encoding.ts +16 -0
  446. package/src/network/interface.ts +18 -4
  447. package/src/network/libp2p/index.ts +24 -13
  448. package/src/network/network.ts +39 -8
  449. package/src/network/options.ts +7 -2
  450. package/src/network/processor/extractSlotRootFns.ts +32 -6
  451. package/src/network/processor/gossipHandlers.ts +334 -94
  452. package/src/network/processor/index.ts +395 -92
  453. package/src/network/reqresp/ReqRespBeaconNode.ts +13 -0
  454. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +94 -0
  455. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +43 -0
  456. package/src/network/reqresp/handlers/index.ts +12 -0
  457. package/src/network/reqresp/protocols.ts +12 -0
  458. package/src/network/reqresp/rateLimit.ts +18 -0
  459. package/src/network/reqresp/score.ts +2 -0
  460. package/src/network/reqresp/types.ts +26 -5
  461. package/src/node/nodejs.ts +6 -5
  462. package/src/node/notifier.ts +5 -6
  463. package/src/sync/backfill/backfill.ts +3 -3
  464. package/src/sync/unknownBlock.ts +13 -53
  465. package/src/sync/utils/downloadByRange.ts +9 -7
  466. package/src/sync/utils/downloadByRoot.ts +16 -12
  467. package/src/util/blobs.ts +35 -15
  468. package/src/util/dataColumns.ts +69 -25
  469. package/src/util/execution.ts +49 -30
  470. package/src/util/sszBytes.ts +245 -3
  471. package/src/util/types.ts +6 -0
@@ -38,6 +38,7 @@ const SIGNATURE_SIZE = 96;
38
38
  const SINGLE_ATTESTATION_ATTDATA_OFFSET = 8 + 8;
39
39
  const SINGLE_ATTESTATION_SLOT_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET;
40
40
  const SINGLE_ATTESTATION_COMMITTEE_INDEX_OFFSET = 0;
41
+ const SINGLE_ATTESTATION_DATA_INDEX_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET + 8;
41
42
  const SINGLE_ATTESTATION_ATTESTER_INDEX_OFFSET = 8;
42
43
  const SINGLE_ATTESTATION_BEACON_BLOCK_ROOT_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET + 8 + 8;
43
44
  const SINGLE_ATTESTATION_SIGNATURE_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET + ATTESTATION_DATA_SIZE;
@@ -140,7 +141,7 @@ export function getSlotFromSingleAttestationSerialized(data) {
140
141
  }
141
142
  /**
142
143
  * Extract committee index from SingleAttestation serialized bytes.
143
- * Return null if data is not long enough to extract slot.
144
+ * Return null if data is not long enough to extract the committee index.
144
145
  */
145
146
  export function getCommitteeIndexFromSingleAttestationSerialized(fork, data) {
146
147
  if (isForkPostElectra(fork)) {
@@ -154,6 +155,25 @@ export function getCommitteeIndexFromSingleAttestationSerialized(fork, data) {
154
155
  }
155
156
  return getIndexFromOffset(data, VARIABLE_FIELD_OFFSET + SLOT_SIZE);
156
157
  }
158
+ /**
159
+ * Extract data index from SingleAttestation serialized bytes.
160
+ * Post-gloas, `data.index` field is repurposed:
161
+ * - 0 - payload was not available (or attestation is same-slot, where availability is not yet known)
162
+ * - 1 - payload was available
163
+ * Return null if data is not long enough to extract the index.
164
+ */
165
+ export function getDataIndexFromSingleAttestationSerialized(fork, data) {
166
+ if (isForkPostElectra(fork)) {
167
+ if (data.length !== SINGLE_ATTESTATION_SIZE) {
168
+ return null;
169
+ }
170
+ return getIndexFromOffset(data, SINGLE_ATTESTATION_DATA_INDEX_OFFSET);
171
+ }
172
+ if (data.length < VARIABLE_FIELD_OFFSET + SLOT_SIZE + COMMITTEE_INDEX_SIZE) {
173
+ return null;
174
+ }
175
+ return getIndexFromOffset(data, VARIABLE_FIELD_OFFSET + SLOT_SIZE);
176
+ }
157
177
  /**
158
178
  * Extract attester index from SingleAttestation serialized bytes.
159
179
  * Return null if data is not long enough to extract index.
@@ -208,6 +228,7 @@ export function getSignatureFromSingleAttestationSerialized(data) {
208
228
  const AGGREGATE_AND_PROOF_OFFSET = 4 + 96;
209
229
  const AGGREGATE_OFFSET = AGGREGATE_AND_PROOF_OFFSET + 8 + 4 + 96;
210
230
  const SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET = AGGREGATE_OFFSET + VARIABLE_FIELD_OFFSET;
231
+ const SIGNED_AGGREGATE_AND_PROOF_ATTESTATION_DATA_INDEX_OFFSET = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + SLOT_SIZE;
211
232
  const SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + 8 + 8;
212
233
  /**
213
234
  * Extract slot from signed aggregate and proof serialized bytes
@@ -232,6 +253,17 @@ export function getBlockRootFromSignedAggregateAndProofSerialized(data) {
232
253
  blockRootBuf.set(data.subarray(SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET, SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET + ROOT_SIZE));
233
254
  return "0x" + blockRootBuf.toString("hex");
234
255
  }
256
+ /**
257
+ * Extract data index from signed aggregate and proof serialized bytes.
258
+ * Return null if data is not long enough to extract the index.
259
+ * This works for both phase0 + electra (index is in attestation data at the same offset).
260
+ */
261
+ export function getDataIndexFromSignedAggregateAndProofSerialized(data) {
262
+ if (data.length < SIGNED_AGGREGATE_AND_PROOF_ATTESTATION_DATA_INDEX_OFFSET + COMMITTEE_INDEX_SIZE) {
263
+ return null;
264
+ }
265
+ return getIndexFromOffset(data, SIGNED_AGGREGATE_AND_PROOF_ATTESTATION_DATA_INDEX_OFFSET);
266
+ }
235
267
  /**
236
268
  * Extract AttestationData base64 from SignedAggregateAndProof for electra
237
269
  * Return null if data is not long enough
@@ -286,12 +318,61 @@ export function getAttDataFromSignedAggregateAndProofPhase0(data) {
286
318
  * ```
287
319
  */
288
320
  const SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE;
321
+ // proposer_index is ValidatorIndex = uint64 = 8 bytes
322
+ const PARENT_ROOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE + SLOT_SIZE + 8;
289
323
  export function getSlotFromSignedBeaconBlockSerialized(data) {
290
324
  if (data.length < SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK + SLOT_SIZE) {
291
325
  return null;
292
326
  }
293
327
  return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK);
294
328
  }
329
+ export function getParentRootFromSignedBeaconBlockSerialized(data) {
330
+ if (data.length < PARENT_ROOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK + ROOT_SIZE) {
331
+ return null;
332
+ }
333
+ blockRootBuf.set(data.subarray(PARENT_ROOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK, PARENT_ROOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK + ROOT_SIZE));
334
+ return `0x${blockRootBuf.toString("hex")}`;
335
+ }
336
+ /**
337
+ * Extract parentBlockHash from a GLOAS SignedBeaconBlock by navigating the SSZ offset pointer
338
+ * to the embedded SignedExecutionPayloadBid.
339
+ *
340
+ * Layout (bytes from start of SignedBeaconBlock):
341
+ * [0..4) message offset
342
+ * [4..100) signature (96 B)
343
+ * [100..184) BeaconBlock fixed section: slot(8)+proposer_index(8)+parent_root(32)+state_root(32)+body_offset(4)
344
+ * [184..) BeaconBlockBody
345
+ *
346
+ * BeaconBlockBody (GLOAS) fixed section before signedExecutionPayloadBid offset pointer:
347
+ * randaoReveal(96) + eth1Data(72) + graffiti(32)
348
+ * + proposerSlashings(4) + attesterSlashings(4) + attestations(4) + deposits(4) + voluntaryExits(4)
349
+ * + syncAggregate(160) + blsToExecutionChanges(4) = 384 bytes
350
+ *
351
+ * The 4-byte pointer at byte 568 (= 184+384) gives the offset of SignedExecutionPayloadBid
352
+ * within BeaconBlockBody. parentBlockHash is at that bid's byte 100 (after offset+sig).
353
+ */
354
+ // BeaconBlock body starts after: msg_offset(4) + sig(96) + slot(8) + proposer_index(8) + parent_root(32) + state_root(32) + body_offset_ptr(4)
355
+ const GLOAS_BODY_START_IN_SIGNED_BEACON_BLOCK = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE + SLOT_SIZE + 8 + ROOT_SIZE + ROOT_SIZE + VARIABLE_FIELD_OFFSET; // = 184
356
+ const GLOAS_SIGNED_BID_OFFSET_POINTER_IN_BODY = 96 + 72 + 32 + 4 + 4 + 4 + 4 + 4 + 160 + 4; // = 384
357
+ const GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK = GLOAS_BODY_START_IN_SIGNED_BEACON_BLOCK + GLOAS_SIGNED_BID_OFFSET_POINTER_IN_BODY; // = 568
358
+ // Within SignedExecutionPayloadBid, parentBlockHash is at byte 100 (msg_offset:4 + sig:96)
359
+ const PARENT_BLOCK_HASH_OFFSET_IN_SIGNED_BID = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE; // = 100
360
+ // CAUTION: update offsets if BeaconBlockBody fixed fields change after Gloas
361
+ export function getParentBlockHashFromGloasSignedBeaconBlockSerialized(data) {
362
+ if (data.length < GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK + VARIABLE_FIELD_OFFSET) {
363
+ return null;
364
+ }
365
+ const bidOffset = data[GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK] |
366
+ (data[GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK + 1] << 8) |
367
+ (data[GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK + 2] << 16) |
368
+ (data[GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK + 3] << 24);
369
+ const parentBlockHashStart = GLOAS_BODY_START_IN_SIGNED_BEACON_BLOCK + bidOffset + PARENT_BLOCK_HASH_OFFSET_IN_SIGNED_BID;
370
+ if (data.length < parentBlockHashStart + ROOT_SIZE) {
371
+ return null;
372
+ }
373
+ blockRootBuf.set(data.subarray(parentBlockHashStart, parentBlockHashStart + ROOT_SIZE));
374
+ return `0x${blockRootBuf.toString("hex")}`;
375
+ }
295
376
  /**
296
377
  * class BlobSidecar(Container):
297
378
  * index: BlobIndex [fixed - 8 bytes ],
@@ -407,6 +488,79 @@ export function getSlotFromBeaconStateSerialized(data) {
407
488
  }
408
489
  return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_BEACON_STATE);
409
490
  }
491
+ /**
492
+ * PayloadAttestationMessage: {
493
+ * validatorIndex: ValidatorIndex (8 bytes)
494
+ * data: PayloadAttestationData {
495
+ * beaconBlockRoot: Root (32 bytes) ← offset 8
496
+ * slot: Slot (8 bytes) ← offset 40
497
+ * payloadPresent: Boolean (1 byte)
498
+ * blobDataAvailable: Boolean (1 byte)
499
+ * }
500
+ * signature: BLSSignature (96 bytes)
501
+ * }
502
+ * Fully fixed-size container, no offset table.
503
+ */
504
+ const PAYLOAD_ATTESTATION_MESSAGE_BEACON_BLOCK_ROOT_OFFSET = 8;
505
+ const PAYLOAD_ATTESTATION_MESSAGE_SLOT_OFFSET = 8 + ROOT_SIZE; // 40
506
+ const PAYLOAD_ATTESTATION_MESSAGE_PAYLOAD_PRESENT_OFFSET = PAYLOAD_ATTESTATION_MESSAGE_SLOT_OFFSET + SLOT_SIZE; // 48
507
+ export function getSlotFromPayloadAttestationMessageSerialized(data) {
508
+ if (data.length < PAYLOAD_ATTESTATION_MESSAGE_SLOT_OFFSET + SLOT_SIZE) {
509
+ return null;
510
+ }
511
+ return getSlotFromOffset(data, PAYLOAD_ATTESTATION_MESSAGE_SLOT_OFFSET);
512
+ }
513
+ export function getPayloadPresentFromPayloadAttestationMessageSerialized(data) {
514
+ if (data.length < PAYLOAD_ATTESTATION_MESSAGE_PAYLOAD_PRESENT_OFFSET + 1) {
515
+ return null;
516
+ }
517
+ return data[PAYLOAD_ATTESTATION_MESSAGE_PAYLOAD_PRESENT_OFFSET] !== 0;
518
+ }
519
+ export function getBlockRootFromPayloadAttestationMessageSerialized(data) {
520
+ if (data.length < PAYLOAD_ATTESTATION_MESSAGE_BEACON_BLOCK_ROOT_OFFSET + ROOT_SIZE) {
521
+ return null;
522
+ }
523
+ blockRootBuf.set(data.subarray(PAYLOAD_ATTESTATION_MESSAGE_BEACON_BLOCK_ROOT_OFFSET, PAYLOAD_ATTESTATION_MESSAGE_BEACON_BLOCK_ROOT_OFFSET + ROOT_SIZE));
524
+ return `0x${blockRootBuf.toString("hex")}`;
525
+ }
526
+ /**
527
+ * SignedExecutionPayloadBid: {message: ExecutionPayloadBid (variable), signature: BLSSignature (96 bytes)}
528
+ * Fixed part: 4-byte offset + 96-byte signature = 100 bytes
529
+ * message data starts at byte 100
530
+ *
531
+ * ExecutionPayloadBid fixed fields (in order):
532
+ * parentBlockHash: Bytes32 (32 bytes)
533
+ * parentBlockRoot: Root (32 bytes)
534
+ * blockHash: Bytes32 (32 bytes)
535
+ * prevRandao: Bytes32 (32 bytes)
536
+ * feeRecipient: ExecutionAddress(20 bytes)
537
+ * gasLimit: UintBn64 (8 bytes)
538
+ * builderIndex: BuilderIndex (8 bytes)
539
+ * slot: Slot (8 bytes) ← absolute offset 264
540
+ */
541
+ const SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE; // 100
542
+ const SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_ROOT_OFFSET = SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET + ROOT_SIZE; // 132
543
+ const SIGNED_EXECUTION_PAYLOAD_BID_SLOT_OFFSET = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE + 32 + 32 + 32 + 32 + 20 + 8 + 8; // 264
544
+ export function getSlotFromSignedExecutionPayloadBidSerialized(data) {
545
+ if (data.length < SIGNED_EXECUTION_PAYLOAD_BID_SLOT_OFFSET + SLOT_SIZE) {
546
+ return null;
547
+ }
548
+ return getSlotFromOffset(data, SIGNED_EXECUTION_PAYLOAD_BID_SLOT_OFFSET);
549
+ }
550
+ export function getParentBlockHashFromSignedExecutionPayloadBidSerialized(data) {
551
+ if (data.length < SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET + ROOT_SIZE) {
552
+ return null;
553
+ }
554
+ blockRootBuf.set(data.subarray(SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET, SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET + ROOT_SIZE));
555
+ return `0x${blockRootBuf.toString("hex")}`;
556
+ }
557
+ export function getParentBlockRootFromSignedExecutionPayloadBidSerialized(data) {
558
+ if (data.length < SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_ROOT_OFFSET + ROOT_SIZE) {
559
+ return null;
560
+ }
561
+ blockRootBuf.set(data.subarray(SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_ROOT_OFFSET, SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_ROOT_OFFSET + ROOT_SIZE));
562
+ return `0x${blockRootBuf.toString("hex")}`;
563
+ }
410
564
  /**
411
565
  * Read only the first 4 bytes of Slot, max value is 4,294,967,295 will be reached 1634 years after genesis
412
566
  *
@@ -436,7 +590,40 @@ export function getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(config
436
590
  throw new Error("Can not parse the slot from block bytes");
437
591
  if (config.getForkSeq(slot) < ForkSeq.deneb)
438
592
  return 0;
439
- const { SignedBeaconBlock, BeaconBlock, BeaconBlockBody, KZGCommitment } = ssz[config.getForkName(slot)];
593
+ const forkName = config.getForkName(slot);
594
+ if (isForkPostGloas(forkName)) {
595
+ // Gloas stores commitments under signedExecutionPayloadBid.message.blobKzgCommitments.
596
+ // Navigate the offset chain: SignedBeaconBlock → message → body → signedExecutionPayloadBid → message → blobKzgCommitments
597
+ const { SignedBeaconBlock: GloasSignedBlock, BeaconBlock: GloasBlock, BeaconBlockBody: GloasBody } = ssz[forkName];
598
+ const { SignedExecutionPayloadBid, ExecutionPayloadBid } = ssz[forkName];
599
+ const commitmentSize = ssz.deneb.KZGCommitment.fixedSize;
600
+ const view = new DataView(blockBytes.buffer, blockBytes.byteOffset, blockBytes.byteLength);
601
+ const signedBlockRanges = GloasSignedBlock.getFieldRanges(view, 0, blockBytes.length);
602
+ const messageIdx = Object.keys(GloasSignedBlock.fields).indexOf("message");
603
+ const messageRange = signedBlockRanges[messageIdx];
604
+ const blockRanges = GloasBlock.getFieldRanges(view, messageRange.start, messageRange.end);
605
+ const bodyIdx = Object.keys(GloasBlock.fields).indexOf("body");
606
+ const bodyRange = blockRanges[bodyIdx];
607
+ const bodyStart = messageRange.start + bodyRange.start;
608
+ const bodyEnd = messageRange.start + bodyRange.end;
609
+ const bodyRanges = GloasBody.getFieldRanges(view, bodyStart, bodyEnd);
610
+ const bidIdx = Object.keys(GloasBody.fields).indexOf("signedExecutionPayloadBid");
611
+ const bidRange = bodyRanges[bidIdx];
612
+ const bidStart = bodyStart + bidRange.start;
613
+ const bidEnd = bodyStart + bidRange.end;
614
+ const bidRanges = SignedExecutionPayloadBid.getFieldRanges(view, bidStart, bidEnd);
615
+ const bidMsgIdx = Object.keys(SignedExecutionPayloadBid.fields).indexOf("message");
616
+ const bidMsgRange = bidRanges[bidMsgIdx];
617
+ const bidMsgStart = bidStart + bidMsgRange.start;
618
+ const bidMsgEnd = bidStart + bidMsgRange.end;
619
+ const execBidRanges = ExecutionPayloadBid.getFieldRanges(view, bidMsgStart, bidMsgEnd);
620
+ const commitmentsIdx = Object.keys(ExecutionPayloadBid.fields).indexOf("blobKzgCommitments");
621
+ const commitmentsRange = execBidRanges[commitmentsIdx];
622
+ const start = bidMsgStart + commitmentsRange.start;
623
+ const end = bidMsgStart + commitmentsRange.end;
624
+ return Math.round(((end > blockBytes.byteLength ? blockBytes.byteLength : end) - start) / commitmentSize);
625
+ }
626
+ const { SignedBeaconBlock, BeaconBlock, BeaconBlockBody, KZGCommitment } = ssz[forkName];
440
627
  const view = new DataView(blockBytes.buffer, blockBytes.byteOffset, blockBytes.byteLength);
441
628
  const singedBlockFieldRanges = SignedBeaconBlock.getFieldRanges(view, 0, blockBytes.length);
442
629
  const messageIndex = Object.keys(SignedBeaconBlock.fields).indexOf("message");
@@ -1 +1 @@
1
- {"version":3,"file":"sszBytes.js","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sszBytes.js","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
@@ -25,4 +25,6 @@ export declare const DataColumnSidecarsByRootRequestType: (config: BeaconConfig)
25
25
  columns: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
26
26
  }>>;
27
27
  export type DataColumnSidecarsByRootRequest = ValueOf<ReturnType<typeof DataColumnSidecarsByRootRequestType>>;
28
+ export declare const ExecutionPayloadEnvelopesByRootRequestType: (config: BeaconConfig) => ListCompositeType<import("@chainsafe/ssz").ByteVectorType>;
29
+ export type ExecutionPayloadEnvelopesByRootRequest = ValueOf<ReturnType<typeof ExecutionPayloadEnvelopesByRootRequestType>>;
28
30
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAqC,MAAM,kBAAkB,CAAC;AAK9E,eAAO,MAAM,uCAAuC;;;;;;;;;;EAOnD,CAAC;AACF,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAE1G,eAAO,MAAM,6BAA6B,sGAC4E,CAAC;AACvH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,6BAA6B;;;GAIvC,CAAC;AACJ,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,mCAAmC;;;GAC8C,CAAC;AAC/F,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,mCAAmC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAqC,MAAM,kBAAkB,CAAC;AAK9E,eAAO,MAAM,uCAAuC;;;;;;;;;;EAOnD,CAAC;AACF,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAE1G,eAAO,MAAM,6BAA6B,sGAC4E,CAAC;AACvH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,6BAA6B;;;GAIvC,CAAC;AACJ,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,mCAAmC;;;GAC8C,CAAC;AAC/F,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,mCAAmC,CAAC,CAAC,CAAC;AAE9G,eAAO,MAAM,0CAA0C,sFACO,CAAC;AAC/D,MAAM,MAAM,sCAAsC,GAAG,OAAO,CAC1D,UAAU,CAAC,OAAO,0CAA0C,CAAC,CAC9D,CAAC"}
package/lib/util/types.js CHANGED
@@ -10,4 +10,5 @@ export const signedBLSToExecutionChangeVersionedType = new ContainerType({
10
10
  export const BeaconBlocksByRootRequestType = (fork, config) => new ListCompositeType(ssz.Root, isForkPostDeneb(fork) ? config.MAX_REQUEST_BLOCKS_DENEB : config.MAX_REQUEST_BLOCKS);
11
11
  export const BlobSidecarsByRootRequestType = (fork, config) => new ListCompositeType(ssz.deneb.BlobIdentifier, isForkPostElectra(fork) ? config.MAX_REQUEST_BLOB_SIDECARS_ELECTRA : config.MAX_REQUEST_BLOB_SIDECARS);
12
12
  export const DataColumnSidecarsByRootRequestType = (config) => new ListCompositeType(ssz.fulu.DataColumnsByRootIdentifier, config.MAX_REQUEST_BLOCKS_DENEB);
13
+ export const ExecutionPayloadEnvelopesByRootRequestType = (config) => new ListCompositeType(ssz.Root, config.MAX_REQUEST_PAYLOADS);
13
14
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAU,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAW,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpC,oFAAoF;AAEpF,MAAM,CAAC,MAAM,uCAAuC,GAAG,IAAI,aAAa,CACtE;IACE,iEAAiE;IACjE,UAAU,EAAE,GAAG,CAAC,OAAO;IACvB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,0BAA0B;CAC7C,EACD,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,yCAAyC,EAAC,CACxE,CAAC;AAGF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,MAAoB,EAAE,EAAE,CACpF,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAGvH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,MAAoB,EAAE,EAAE,CACpF,IAAI,iBAAiB,CACnB,GAAG,CAAC,KAAK,CAAC,cAAc,EACxB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CACtG,CAAC;AAGJ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,MAAoB,EAAE,EAAE,CAC1E,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAU,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAW,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpC,oFAAoF;AAEpF,MAAM,CAAC,MAAM,uCAAuC,GAAG,IAAI,aAAa,CACtE;IACE,iEAAiE;IACjE,UAAU,EAAE,GAAG,CAAC,OAAO;IACvB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,0BAA0B;CAC7C,EACD,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,yCAAyC,EAAC,CACxE,CAAC;AAGF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,MAAoB,EAAE,EAAE,CACpF,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAGvH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,MAAoB,EAAE,EAAE,CACpF,IAAI,iBAAiB,CACnB,GAAG,CAAC,KAAK,CAAC,cAAc,EACxB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CACtG,CAAC;AAGJ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,MAAoB,EAAE,EAAE,CAC1E,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAG/F,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,MAAoB,EAAE,EAAE,CACjF,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.42.0-dev.f6213da56d",
14
+ "version": "1.42.0-dev.fb8f8a700e",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -113,7 +113,7 @@
113
113
  "@chainsafe/discv5": "^12.0.1",
114
114
  "@chainsafe/enr": "^6.0.1",
115
115
  "@chainsafe/libp2p-noise": "^17.0.0",
116
- "@chainsafe/libp2p-quic": "^2.0.0",
116
+ "@chainsafe/libp2p-quic": "^2.0.1",
117
117
  "@chainsafe/persistent-merkle-tree": "^1.2.1",
118
118
  "@chainsafe/prometheus-gc-stats": "^1.0.0",
119
119
  "@chainsafe/pubkey-index-map": "^3.0.0",
@@ -135,18 +135,18 @@
135
135
  "@libp2p/peer-id": "^6.0.4",
136
136
  "@libp2p/prometheus-metrics": "^5.0.14",
137
137
  "@libp2p/tcp": "^11.0.13",
138
- "@lodestar/api": "^1.42.0-dev.f6213da56d",
139
- "@lodestar/config": "^1.42.0-dev.f6213da56d",
140
- "@lodestar/db": "^1.42.0-dev.f6213da56d",
141
- "@lodestar/fork-choice": "^1.42.0-dev.f6213da56d",
142
- "@lodestar/light-client": "^1.42.0-dev.f6213da56d",
143
- "@lodestar/logger": "^1.42.0-dev.f6213da56d",
144
- "@lodestar/params": "^1.42.0-dev.f6213da56d",
145
- "@lodestar/reqresp": "^1.42.0-dev.f6213da56d",
146
- "@lodestar/state-transition": "^1.42.0-dev.f6213da56d",
147
- "@lodestar/types": "^1.42.0-dev.f6213da56d",
148
- "@lodestar/utils": "^1.42.0-dev.f6213da56d",
149
- "@lodestar/validator": "^1.42.0-dev.f6213da56d",
138
+ "@lodestar/api": "^1.42.0-dev.fb8f8a700e",
139
+ "@lodestar/config": "^1.42.0-dev.fb8f8a700e",
140
+ "@lodestar/db": "^1.42.0-dev.fb8f8a700e",
141
+ "@lodestar/fork-choice": "^1.42.0-dev.fb8f8a700e",
142
+ "@lodestar/light-client": "^1.42.0-dev.fb8f8a700e",
143
+ "@lodestar/logger": "^1.42.0-dev.fb8f8a700e",
144
+ "@lodestar/params": "^1.42.0-dev.fb8f8a700e",
145
+ "@lodestar/reqresp": "^1.42.0-dev.fb8f8a700e",
146
+ "@lodestar/state-transition": "^1.42.0-dev.fb8f8a700e",
147
+ "@lodestar/types": "^1.42.0-dev.fb8f8a700e",
148
+ "@lodestar/utils": "^1.42.0-dev.fb8f8a700e",
149
+ "@lodestar/validator": "^1.42.0-dev.fb8f8a700e",
150
150
  "@multiformats/multiaddr": "^13.0.1",
151
151
  "datastore-core": "^11.0.2",
152
152
  "datastore-fs": "^11.0.2",
@@ -169,7 +169,7 @@
169
169
  "@libp2p/interface-internal": "^3.0.13",
170
170
  "@libp2p/logger": "^6.2.2",
171
171
  "@libp2p/utils": "^7.0.13",
172
- "@lodestar/spec-test-util": "^1.42.0-dev.f6213da56d",
172
+ "@lodestar/spec-test-util": "^1.42.0-dev.fb8f8a700e",
173
173
  "@types/js-yaml": "^4.0.5",
174
174
  "@types/qs": "^6.9.7",
175
175
  "@types/tmp": "^0.2.3",
@@ -186,5 +186,5 @@
186
186
  "beacon",
187
187
  "blockchain"
188
188
  ],
189
- "gitHead": "415df896b263843a6fb2b0caa370955bae0de0be"
189
+ "gitHead": "11ba4f46624b21d19bd49fed3ee7064f1ce581b3"
190
190
  }
@@ -57,7 +57,11 @@ import {
57
57
  kzgCommitmentToVersionedHash,
58
58
  reconstructBlobs,
59
59
  } from "../../../../util/blobs.js";
60
- import {getDataColumnSidecarsForGloas, getDataColumnSidecarsFromBlock} from "../../../../util/dataColumns.js";
60
+ import {
61
+ getBlobKzgCommitments,
62
+ getDataColumnSidecarsFromBlock,
63
+ getGloasDataColumnSidecars,
64
+ } from "../../../../util/dataColumns.js";
61
65
  import {isOptimisticBlock} from "../../../../util/forkChoice.js";
62
66
  import {kzg} from "../../../../util/kzg.js";
63
67
  import {promiseAllMaybeAsync} from "../../../../util/promises.js";
@@ -99,17 +103,20 @@ export function getBeaconBlockApi({
99
103
  const fork = config.getForkName(slot);
100
104
  const blockRoot = toRootHex(chain.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(signedBlock.message));
101
105
 
102
- // TODO GLOAS: handle new BlockInput type
103
106
  const blockForImport = chain.seenBlockInputCache.getByBlock({
104
107
  block: signedBlock,
105
108
  source: BlockInputSource.api,
106
109
  seenTimestampSec,
107
110
  blockRootHex: blockRoot,
108
111
  });
109
- let blobSidecars: deneb.BlobSidecars, dataColumnSidecars: fulu.DataColumnSidecars;
112
+ let blobSidecars: deneb.BlobSidecars, dataColumnSidecars: fulu.DataColumnSidecar[];
110
113
 
111
114
  if (isDenebBlockContents(signedBlockContents)) {
112
- if (isForkPostFulu(fork)) {
115
+ if (isForkPostGloas(fork)) {
116
+ // After gloas, data columns are not published with the block but when publishing the execution payload envelope
117
+ blobSidecars = [];
118
+ dataColumnSidecars = [];
119
+ } else if (isForkPostFulu(fork)) {
113
120
  const timer = metrics?.peerDas.dataColumnSidecarComputationTime.startTimer();
114
121
  // If the block was produced by this node, we will already have computed cells
115
122
  // Otherwise, we will compute them from the blobs in this function
@@ -124,7 +131,7 @@ export function getBeaconBlockApi({
124
131
  config,
125
132
  signedBlock as SignedBeaconBlock<ForkPostFulu>,
126
133
  cellsAndProofs
127
- );
134
+ ) as fulu.DataColumnSidecar[];
128
135
  timer?.();
129
136
  blobSidecars = [];
130
137
  } else if (isForkPostDeneb(fork)) {
@@ -210,7 +217,7 @@ export function getBeaconBlockApi({
210
217
  if (!blockLocallyProduced) {
211
218
  const parentBlock = chain.forkChoice.getBlockDefaultStatus(signedBlock.message.parentRoot);
212
219
  if (parentBlock === null) {
213
- chain.emitter.emit(ChainEvent.unknownParent, {
220
+ chain.emitter.emit(ChainEvent.blockUnknownParent, {
214
221
  blockInput: blockForImport,
215
222
  peer: IDENTITY_PEER_ID,
216
223
  source: BlockInputSource.api,
@@ -305,7 +312,7 @@ export function getBeaconBlockApi({
305
312
  .processBlock(blockForImport, opts)
306
313
  .catch((e) => {
307
314
  if (e instanceof BlockError && e.type.code === BlockErrorCode.PARENT_UNKNOWN) {
308
- chain.emitter.emit(ChainEvent.unknownParent, {
315
+ chain.emitter.emit(ChainEvent.blockUnknownParent, {
309
316
  blockInput: blockForImport,
310
317
  peer: IDENTITY_PEER_ID,
311
318
  source: BlockInputSource.api,
@@ -607,7 +614,7 @@ export function getBeaconBlockApi({
607
614
  if (slot < head.slot && head.slot <= slot + SLOTS_PER_HISTORICAL_ROOT) {
608
615
  const state = chain.getHeadState();
609
616
  return {
610
- data: {root: state.blockRoots.get(slot % SLOTS_PER_HISTORICAL_ROOT)},
617
+ data: {root: state.getBlockRootAtSlot(slot)},
611
618
  meta: {
612
619
  executionOptimistic: isOptimisticBlock(head),
613
620
  finalized: computeEpochAtSlot(slot) <= chain.forkChoice.getFinalizedCheckpoint().epoch,
@@ -647,6 +654,8 @@ export function getBeaconBlockApi({
647
654
  const slot = envelope.slot;
648
655
  const fork = config.getForkName(slot);
649
656
  const blockRootHex = toRootHex(envelope.beaconBlockRoot);
657
+ const blockHashHex = toRootHex(envelope.payload.blockHash);
658
+ const stateRootHex = toRootHex(envelope.stateRoot);
650
659
 
651
660
  if (!isForkPostGloas(fork)) {
652
661
  throw new ApiError(400, `publishExecutionPayloadEnvelope not supported for pre-gloas fork=${fork}`);
@@ -664,7 +673,7 @@ export function getBeaconBlockApi({
664
673
  await validateApiExecutionPayloadEnvelope(chain, signedExecutionPayloadEnvelope);
665
674
 
666
675
  const isSelfBuild = envelope.builderIndex === BUILDER_INDEX_SELF_BUILD;
667
- let dataColumnSidecars: gloas.DataColumnSidecars = [];
676
+ let dataColumnSidecars: gloas.DataColumnSidecar[] = [];
668
677
 
669
678
  if (isSelfBuild) {
670
679
  // For self-builds, construct and publish data column sidecars from cached block production data
@@ -689,7 +698,7 @@ export function getBeaconBlockApi({
689
698
  ),
690
699
  }));
691
700
 
692
- dataColumnSidecars = getDataColumnSidecarsForGloas(slot, envelope.beaconBlockRoot, cellsAndProofs);
701
+ dataColumnSidecars = getGloasDataColumnSidecars(slot, envelope.beaconBlockRoot, cellsAndProofs);
693
702
  timer?.();
694
703
  }
695
704
  } else {
@@ -730,6 +739,8 @@ export function getBeaconBlockApi({
730
739
  const valLogMeta = {
731
740
  slot,
732
741
  blockRoot: blockRootHex,
742
+ blockHash: blockHashHex,
743
+ stateRoot: stateRootHex,
733
744
  builderIndex: envelope.builderIndex,
734
745
  isSelfBuild,
735
746
  dataColumns: dataColumnSidecars.length,
@@ -750,7 +761,17 @@ export function getBeaconBlockApi({
750
761
  () => chain.processExecutionPayload(payloadInput, {validSignature: true}),
751
762
  ];
752
763
 
753
- const sentPeersArr = await promiseAllMaybeAsync<number | void>(publishPromises);
764
+ const publishPromise = promiseAllMaybeAsync<number | void>(publishPromises);
765
+
766
+ chain.emitter.emit(routes.events.EventType.executionPayloadGossip, {
767
+ slot,
768
+ builderIndex: envelope.builderIndex,
769
+ blockHash: blockHashHex,
770
+ blockRoot: blockRootHex,
771
+ stateRoot: stateRootHex,
772
+ });
773
+
774
+ const sentPeersArr = await publishPromise;
754
775
 
755
776
  // Track metrics for data column publishing
756
777
  if (dataColumnSidecars.length > 0) {
@@ -774,15 +795,11 @@ export function getBeaconBlockApi({
774
795
  metrics?.dataColumns.bySource.inc({source: BlockInputSource.api}, dataColumnSidecars.length);
775
796
 
776
797
  if (chain.emitter.listenerCount(routes.events.EventType.dataColumnSidecar)) {
777
- // TODO GLOAS: revisit this, we likely don't wanna emit KZG commitments anymore
778
- const cachedResult = chain.blockProductionCache.get(blockRootHex) as ProduceFullGloas | undefined;
779
- const kzgCommitments = cachedResult?.blobsBundle.commitments.map(toHex) ?? [];
780
798
  for (const dataColumnSidecar of dataColumnSidecars) {
781
799
  chain.emitter.emit(routes.events.EventType.dataColumnSidecar, {
782
800
  blockRoot: blockRootHex,
783
801
  slot,
784
802
  index: dataColumnSidecar.index,
785
- kzgCommitments,
786
803
  });
787
804
  }
788
805
  }
@@ -906,7 +923,7 @@ export function getBeaconBlockApi({
906
923
  );
907
924
  }
908
925
 
909
- const blobKzgCommitments = (block.message.body as deneb.BeaconBlockBody).blobKzgCommitments;
926
+ const blobKzgCommitments = getBlobKzgCommitments(fork, block as SignedBeaconBlock<ForkPostFulu>);
910
927
  const blobCount = blobKzgCommitments.length;
911
928
 
912
929
  if (blobCount > 0) {
@@ -1,6 +1,7 @@
1
1
  import {routes} from "@lodestar/api";
2
2
  import {ApplicationMethods} from "@lodestar/api/server";
3
3
  import {ForkPostElectra, ForkPreElectra, SYNC_COMMITTEE_SUBNET_SIZE, isForkPostElectra} from "@lodestar/params";
4
+ import {isStatePostAltair} from "@lodestar/state-transition";
4
5
  import {Attestation, Epoch, SingleAttestation, isElectraAttestation, ssz, sszTypesFor} from "@lodestar/types";
5
6
  import {
6
7
  AttestationError,
@@ -249,13 +250,16 @@ export function getBeaconPoolApi({
249
250
 
250
251
  // TODO: Fetch states at signature slots
251
252
  const state = chain.getHeadState();
253
+ if (!isStatePostAltair(state)) {
254
+ throw new ApiError(400, "Sync committee pool is not supported before Altair");
255
+ }
252
256
 
253
257
  const failures: FailureList = [];
254
258
 
255
259
  await Promise.all(
256
260
  signatures.map(async (signature, i) => {
257
261
  try {
258
- const synCommittee = state.epochCtx.getIndexedSyncCommittee(signature.slot);
262
+ const synCommittee = state.getIndexedSyncCommittee(signature.slot);
259
263
  const indexesInCommittee = synCommittee.validatorIndexMap.get(signature.validatorIndex);
260
264
  if (indexesInCommittee === undefined || indexesInCommittee.length === 0) {
261
265
  return; // Not a sync committee member