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

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 (868) hide show
  1. package/lib/api/impl/api.js.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.d.ts +1 -1
  3. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  4. package/lib/api/impl/beacon/blocks/index.js +3 -2
  5. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  6. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  7. package/lib/api/impl/beacon/index.js.map +1 -1
  8. package/lib/api/impl/beacon/pool/index.d.ts +1 -1
  9. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  10. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  11. package/lib/api/impl/beacon/rewards/index.d.ts +1 -1
  12. package/lib/api/impl/beacon/rewards/index.d.ts.map +1 -1
  13. package/lib/api/impl/beacon/rewards/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  15. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  16. package/lib/api/impl/beacon/state/index.js +8 -8
  17. package/lib/api/impl/beacon/state/index.js.map +1 -1
  18. package/lib/api/impl/beacon/state/utils.d.ts +3 -4
  19. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  20. package/lib/api/impl/beacon/state/utils.js +5 -24
  21. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  22. package/lib/api/impl/config/constants.js.map +1 -1
  23. package/lib/api/impl/config/index.js.map +1 -1
  24. package/lib/api/impl/debug/index.d.ts +1 -1
  25. package/lib/api/impl/debug/index.d.ts.map +1 -1
  26. package/lib/api/impl/debug/index.js +6 -2
  27. package/lib/api/impl/debug/index.js.map +1 -1
  28. package/lib/api/impl/errors.d.ts.map +1 -1
  29. package/lib/api/impl/errors.js.map +1 -1
  30. package/lib/api/impl/events/index.d.ts +1 -1
  31. package/lib/api/impl/events/index.d.ts.map +1 -1
  32. package/lib/api/impl/events/index.js.map +1 -1
  33. package/lib/api/impl/lightclient/index.d.ts +1 -1
  34. package/lib/api/impl/lightclient/index.d.ts.map +1 -1
  35. package/lib/api/impl/lightclient/index.js.map +1 -1
  36. package/lib/api/impl/lodestar/index.d.ts +1 -1
  37. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  38. package/lib/api/impl/lodestar/index.js.map +1 -1
  39. package/lib/api/impl/node/index.js.map +1 -1
  40. package/lib/api/impl/node/utils.d.ts +1 -1
  41. package/lib/api/impl/node/utils.d.ts.map +1 -1
  42. package/lib/api/impl/node/utils.js.map +1 -1
  43. package/lib/api/impl/proof/index.js.map +1 -1
  44. package/lib/api/impl/utils.js.map +1 -1
  45. package/lib/api/impl/validator/index.d.ts.map +1 -1
  46. package/lib/api/impl/validator/index.js +33 -17
  47. package/lib/api/impl/validator/index.js.map +1 -1
  48. package/lib/api/impl/validator/utils.d.ts +1 -1
  49. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  50. package/lib/api/impl/validator/utils.js.map +1 -1
  51. package/lib/api/rest/activeSockets.d.ts.map +1 -1
  52. package/lib/api/rest/activeSockets.js.map +1 -1
  53. package/lib/api/rest/base.d.ts.map +1 -1
  54. package/lib/api/rest/base.js.map +1 -1
  55. package/lib/api/rest/index.d.ts.map +1 -1
  56. package/lib/api/rest/index.js.map +1 -1
  57. package/lib/api/rest/swaggerUI.js.map +1 -1
  58. package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -1
  59. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  60. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  61. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  62. package/lib/chain/GetBlobsTracker.js.map +1 -1
  63. package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
  64. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  65. package/lib/chain/archiveStore/archiveStore.js +11 -1
  66. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  67. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +5 -6
  68. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  69. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +9 -10
  70. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  71. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  72. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  73. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  74. package/lib/chain/archiveStore/historicalState/types.js +2 -1
  75. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  76. package/lib/chain/archiveStore/historicalState/worker.js +3 -3
  77. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  78. package/lib/chain/archiveStore/interface.js +2 -1
  79. package/lib/chain/archiveStore/interface.js.map +1 -1
  80. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +1 -1
  81. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  82. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -1
  83. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  84. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  85. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  86. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -1
  87. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  88. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +7 -0
  89. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +1 -0
  90. package/lib/chain/archiveStore/utils/archivePayloads.js +10 -0
  91. package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -0
  92. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  93. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  94. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  95. package/lib/chain/balancesCache.d.ts.map +1 -1
  96. package/lib/chain/balancesCache.js.map +1 -1
  97. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  98. package/lib/chain/beaconProposerCache.js.map +1 -1
  99. package/lib/chain/blocks/blockInput/blockInput.d.ts +25 -2
  100. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  101. package/lib/chain/blocks/blockInput/blockInput.js +71 -0
  102. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  103. package/lib/chain/blocks/blockInput/errors.js +2 -1
  104. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  105. package/lib/chain/blocks/blockInput/types.d.ts +18 -1
  106. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  107. package/lib/chain/blocks/blockInput/types.js +5 -2
  108. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  109. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  110. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  111. package/lib/chain/blocks/importBlock.js +27 -4
  112. package/lib/chain/blocks/importBlock.js.map +1 -1
  113. package/lib/chain/blocks/index.d.ts.map +1 -1
  114. package/lib/chain/blocks/index.js.map +1 -1
  115. package/lib/chain/blocks/types.js +6 -3
  116. package/lib/chain/blocks/types.js.map +1 -1
  117. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  118. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  119. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  120. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  121. package/lib/chain/blocks/verifyBlocksDataAvailability.js +3 -0
  122. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  123. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -0
  124. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  125. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -1
  126. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  127. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  128. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  129. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  130. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  131. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  132. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  133. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  134. package/lib/chain/blocks/writeBlockInputToDb.js +92 -98
  135. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  136. package/lib/chain/bls/maybeBatch.js.map +1 -1
  137. package/lib/chain/bls/multithread/index.d.ts +3 -3
  138. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  139. package/lib/chain/bls/multithread/index.js +5 -5
  140. package/lib/chain/bls/multithread/index.js.map +1 -1
  141. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  142. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  143. package/lib/chain/bls/multithread/jobItem.js +4 -3
  144. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  145. package/lib/chain/bls/multithread/types.js +2 -1
  146. package/lib/chain/bls/multithread/types.js.map +1 -1
  147. package/lib/chain/bls/multithread/utils.js.map +1 -1
  148. package/lib/chain/bls/multithread/worker.js.map +1 -1
  149. package/lib/chain/bls/singleThread.d.ts +4 -4
  150. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  151. package/lib/chain/bls/singleThread.js +4 -4
  152. package/lib/chain/bls/singleThread.js.map +1 -1
  153. package/lib/chain/bls/utils.d.ts +2 -2
  154. package/lib/chain/bls/utils.d.ts.map +1 -1
  155. package/lib/chain/bls/utils.js +7 -4
  156. package/lib/chain/bls/utils.js.map +1 -1
  157. package/lib/chain/chain.d.ts +9 -12
  158. package/lib/chain/chain.d.ts.map +1 -1
  159. package/lib/chain/chain.js +22 -23
  160. package/lib/chain/chain.js.map +1 -1
  161. package/lib/chain/emitter.d.ts +6 -8
  162. package/lib/chain/emitter.d.ts.map +1 -1
  163. package/lib/chain/emitter.js +2 -1
  164. package/lib/chain/emitter.js.map +1 -1
  165. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  166. package/lib/chain/errors/attestationError.js +2 -1
  167. package/lib/chain/errors/attestationError.js.map +1 -1
  168. package/lib/chain/errors/attesterSlashingError.js +2 -1
  169. package/lib/chain/errors/attesterSlashingError.js.map +1 -1
  170. package/lib/chain/errors/blobSidecarError.js +2 -1
  171. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  172. package/lib/chain/errors/blockError.d.ts.map +1 -1
  173. package/lib/chain/errors/blockError.js +2 -1
  174. package/lib/chain/errors/blockError.js.map +1 -1
  175. package/lib/chain/errors/blsToExecutionChangeError.js +2 -1
  176. package/lib/chain/errors/blsToExecutionChangeError.js.map +1 -1
  177. package/lib/chain/errors/dataColumnSidecarError.js +2 -1
  178. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  179. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  180. package/lib/chain/errors/executionPayloadBid.js +2 -1
  181. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  182. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  183. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  184. package/lib/chain/errors/executionPayloadEnvelope.js +2 -1
  185. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  186. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  187. package/lib/chain/errors/gossipValidation.js +4 -2
  188. package/lib/chain/errors/gossipValidation.js.map +1 -1
  189. package/lib/chain/errors/lightClientError.js +4 -2
  190. package/lib/chain/errors/lightClientError.js.map +1 -1
  191. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  192. package/lib/chain/errors/payloadAttestation.js +2 -1
  193. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  194. package/lib/chain/errors/proposerSlashingError.js +2 -1
  195. package/lib/chain/errors/proposerSlashingError.js.map +1 -1
  196. package/lib/chain/errors/syncCommitteeError.js +2 -1
  197. package/lib/chain/errors/syncCommitteeError.js.map +1 -1
  198. package/lib/chain/errors/voluntaryExitError.js +2 -1
  199. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  200. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  201. package/lib/chain/forkChoice/index.js +32 -25
  202. package/lib/chain/forkChoice/index.js.map +1 -1
  203. package/lib/chain/initState.d.ts +1 -1
  204. package/lib/chain/initState.d.ts.map +1 -1
  205. package/lib/chain/initState.js.map +1 -1
  206. package/lib/chain/interface.d.ts +4 -6
  207. package/lib/chain/interface.d.ts.map +1 -1
  208. package/lib/chain/interface.js +2 -1
  209. package/lib/chain/interface.js.map +1 -1
  210. package/lib/chain/lightClient/index.d.ts +0 -29
  211. package/lib/chain/lightClient/index.d.ts.map +1 -1
  212. package/lib/chain/lightClient/index.js.map +1 -1
  213. package/lib/chain/lightClient/proofs.js.map +1 -1
  214. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  215. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -3
  216. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  217. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  218. package/lib/chain/opPools/attestationPool.js.map +1 -1
  219. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  220. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  221. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  222. package/lib/chain/opPools/opPool.js.map +1 -1
  223. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  224. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  225. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  226. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  227. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  228. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  229. package/lib/chain/opPools/types.js +4 -2
  230. package/lib/chain/opPools/types.js.map +1 -1
  231. package/lib/chain/opPools/utils.js.map +1 -1
  232. package/lib/chain/prepareNextSlot.d.ts +1 -2
  233. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  234. package/lib/chain/prepareNextSlot.js.map +1 -1
  235. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +0 -1
  236. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  237. package/lib/chain/produceBlock/computeNewStateRoot.js +4 -3
  238. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  239. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
  240. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  241. package/lib/chain/produceBlock/produceBlockBody.js +15 -6
  242. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  243. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  244. package/lib/chain/regen/errors.d.ts.map +1 -1
  245. package/lib/chain/regen/errors.js +2 -1
  246. package/lib/chain/regen/errors.js.map +1 -1
  247. package/lib/chain/regen/interface.js +4 -2
  248. package/lib/chain/regen/interface.js.map +1 -1
  249. package/lib/chain/regen/queued.d.ts.map +1 -1
  250. package/lib/chain/regen/queued.js +4 -1
  251. package/lib/chain/regen/queued.js.map +1 -1
  252. package/lib/chain/regen/regen.d.ts.map +1 -1
  253. package/lib/chain/regen/regen.js +6 -2
  254. package/lib/chain/regen/regen.js.map +1 -1
  255. package/lib/chain/reprocess.d.ts.map +1 -1
  256. package/lib/chain/reprocess.js +2 -1
  257. package/lib/chain/reprocess.js.map +1 -1
  258. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +1 -1
  259. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  260. package/lib/chain/seenCache/seenAttestationData.d.ts.map +1 -1
  261. package/lib/chain/seenCache/seenAttestationData.js +2 -1
  262. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  263. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  264. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  265. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +1 -1
  266. package/lib/chain/seenCache/seenBlockAttesters.js.map +1 -1
  267. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +1 -1
  268. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  269. package/lib/chain/seenCache/seenCommittee.d.ts.map +1 -1
  270. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  271. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +1 -1
  272. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  273. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -1
  274. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -1
  275. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -1
  276. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -1
  277. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -3
  278. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  279. package/lib/chain/seenCache/seenGossipBlockInput.js +38 -16
  280. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  281. package/lib/chain/serializeState.js +1 -0
  282. package/lib/chain/serializeState.js.map +1 -1
  283. package/lib/chain/shufflingCache.d.ts.map +1 -1
  284. package/lib/chain/shufflingCache.js +2 -1
  285. package/lib/chain/shufflingCache.js.map +1 -1
  286. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  287. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  288. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  289. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  290. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  291. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  292. package/lib/chain/stateCache/mapMetrics.d.ts.map +1 -1
  293. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  294. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -41
  295. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  296. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  297. package/lib/chain/stateCache/types.js +2 -1
  298. package/lib/chain/stateCache/types.js.map +1 -1
  299. package/lib/chain/validation/aggregateAndProof.js +1 -1
  300. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  301. package/lib/chain/validation/attestation.d.ts.map +1 -1
  302. package/lib/chain/validation/attestation.js +14 -7
  303. package/lib/chain/validation/attestation.js.map +1 -1
  304. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  305. package/lib/chain/validation/attesterSlashing.js +9 -2
  306. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  307. package/lib/chain/validation/blobSidecar.js +2 -2
  308. package/lib/chain/validation/blobSidecar.js.map +1 -1
  309. package/lib/chain/validation/block.d.ts.map +1 -1
  310. package/lib/chain/validation/block.js +6 -3
  311. package/lib/chain/validation/block.js.map +1 -1
  312. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  313. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  314. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  315. package/lib/chain/validation/executionPayloadBid.js +1 -2
  316. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  317. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  318. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  319. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  320. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  321. package/lib/chain/validation/payloadAttestationMessage.js +9 -3
  322. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  323. package/lib/chain/validation/proposerSlashing.js +1 -1
  324. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  325. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  326. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  327. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  328. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  329. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  330. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  331. package/lib/chain/validation/syncCommittee.js.map +1 -1
  332. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  333. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  334. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  335. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  336. package/lib/chain/validatorMonitor.js +2 -1
  337. package/lib/chain/validatorMonitor.js.map +1 -1
  338. package/lib/constants/network.js +4 -2
  339. package/lib/constants/network.js.map +1 -1
  340. package/lib/db/beacon.d.ts +3 -1
  341. package/lib/db/beacon.d.ts.map +1 -1
  342. package/lib/db/beacon.js +5 -1
  343. package/lib/db/beacon.js.map +1 -1
  344. package/lib/db/buckets.d.ts +24 -22
  345. package/lib/db/buckets.d.ts.map +1 -1
  346. package/lib/db/buckets.js +4 -1
  347. package/lib/db/buckets.js.map +1 -1
  348. package/lib/db/index.d.ts +1 -0
  349. package/lib/db/index.d.ts.map +1 -1
  350. package/lib/db/index.js +1 -0
  351. package/lib/db/index.js.map +1 -1
  352. package/lib/db/interface.d.ts +3 -1
  353. package/lib/db/interface.d.ts.map +1 -1
  354. package/lib/db/repositories/attesterSlashing.d.ts.map +1 -1
  355. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  356. package/lib/db/repositories/backfilledRanges.d.ts.map +1 -1
  357. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  358. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  359. package/lib/db/repositories/blobSidecars.js.map +1 -1
  360. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +1 -1
  361. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  362. package/lib/db/repositories/block.d.ts.map +1 -1
  363. package/lib/db/repositories/block.js.map +1 -1
  364. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  365. package/lib/db/repositories/blockArchive.js +1 -2
  366. package/lib/db/repositories/blockArchive.js.map +1 -1
  367. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  368. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  369. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  370. package/lib/db/repositories/blsToExecutionChange.d.ts.map +1 -1
  371. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  372. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  373. package/lib/db/repositories/checkpointState.js.map +1 -1
  374. package/lib/db/repositories/dataColumnSidecar.d.ts +5 -3
  375. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  376. package/lib/db/repositories/dataColumnSidecar.js +14 -1
  377. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  378. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +5 -3
  379. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  380. package/lib/db/repositories/dataColumnSidecarArchive.js +14 -1
  381. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  382. package/lib/db/repositories/executionPayloadEnvelope.d.ts +19 -0
  383. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -0
  384. package/lib/db/repositories/executionPayloadEnvelope.js +22 -0
  385. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -0
  386. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +18 -0
  387. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -0
  388. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +28 -0
  389. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -0
  390. package/lib/db/repositories/index.d.ts +2 -0
  391. package/lib/db/repositories/index.d.ts.map +1 -1
  392. package/lib/db/repositories/index.js +2 -0
  393. package/lib/db/repositories/index.js.map +1 -1
  394. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +1 -1
  395. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  396. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +1 -1
  397. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  398. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +1 -1
  399. package/lib/db/repositories/lightclientSyncCommittee.js.map +1 -1
  400. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  401. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  402. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  403. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  404. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  405. package/lib/db/repositories/stateArchive.js.map +1 -1
  406. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  407. package/lib/db/repositories/voluntaryExit.d.ts.map +1 -1
  408. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  409. package/lib/execution/builder/cache.d.ts.map +1 -1
  410. package/lib/execution/builder/cache.js.map +1 -1
  411. package/lib/execution/builder/http.d.ts.map +1 -1
  412. package/lib/execution/builder/http.js +2 -1
  413. package/lib/execution/builder/http.js.map +1 -1
  414. package/lib/execution/builder/index.js.map +1 -1
  415. package/lib/execution/builder/utils.js.map +1 -1
  416. package/lib/execution/engine/disabled.d.ts.map +1 -1
  417. package/lib/execution/engine/disabled.js.map +1 -1
  418. package/lib/execution/engine/http.d.ts +1 -0
  419. package/lib/execution/engine/http.d.ts.map +1 -1
  420. package/lib/execution/engine/http.js +3 -0
  421. package/lib/execution/engine/http.js.map +1 -1
  422. package/lib/execution/engine/index.js.map +1 -1
  423. package/lib/execution/engine/interface.js +4 -2
  424. package/lib/execution/engine/interface.js.map +1 -1
  425. package/lib/execution/engine/jsonRpcHttpClient.d.ts +10 -15
  426. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  427. package/lib/execution/engine/jsonRpcHttpClient.js +2 -1
  428. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  429. package/lib/execution/engine/jwt.js.map +1 -1
  430. package/lib/execution/engine/mock.d.ts.map +1 -1
  431. package/lib/execution/engine/mock.js.map +1 -1
  432. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  433. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  434. package/lib/execution/engine/types.js.map +1 -1
  435. package/lib/execution/engine/utils.d.ts +1 -1
  436. package/lib/execution/engine/utils.d.ts.map +1 -1
  437. package/lib/execution/engine/utils.js.map +1 -1
  438. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  439. package/lib/metrics/metrics/beacon.js.map +1 -1
  440. package/lib/metrics/metrics/lodestar.d.ts +11 -6
  441. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  442. package/lib/metrics/metrics/lodestar.js +23 -10
  443. package/lib/metrics/metrics/lodestar.js.map +1 -1
  444. package/lib/metrics/metrics.js.map +1 -1
  445. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  446. package/lib/metrics/server/http.d.ts +1 -1
  447. package/lib/metrics/server/http.d.ts.map +1 -1
  448. package/lib/metrics/server/http.js.map +1 -1
  449. package/lib/metrics/utils/avgMinMax.d.ts.map +1 -1
  450. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  451. package/lib/metrics/utils/gauge.d.ts.map +1 -1
  452. package/lib/metrics/utils/gauge.js.map +1 -1
  453. package/lib/metrics/utils/registryMetricCreator.d.ts.map +1 -1
  454. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  455. package/lib/monitoring/clientStats.js.map +1 -1
  456. package/lib/monitoring/properties.d.ts.map +1 -1
  457. package/lib/monitoring/properties.js.map +1 -1
  458. package/lib/monitoring/service.d.ts +2 -2
  459. package/lib/monitoring/service.d.ts.map +1 -1
  460. package/lib/monitoring/service.js +3 -2
  461. package/lib/monitoring/service.js.map +1 -1
  462. package/lib/monitoring/system.d.ts.map +1 -1
  463. package/lib/monitoring/system.js.map +1 -1
  464. package/lib/monitoring/types.js +4 -2
  465. package/lib/monitoring/types.js.map +1 -1
  466. package/lib/network/core/events.d.ts +1 -3
  467. package/lib/network/core/events.d.ts.map +1 -1
  468. package/lib/network/core/events.js +4 -2
  469. package/lib/network/core/events.js.map +1 -1
  470. package/lib/network/core/metrics.d.ts +6 -7
  471. package/lib/network/core/metrics.d.ts.map +1 -1
  472. package/lib/network/core/metrics.js.map +1 -1
  473. package/lib/network/core/networkCore.d.ts +4 -4
  474. package/lib/network/core/networkCore.d.ts.map +1 -1
  475. package/lib/network/core/networkCore.js.map +1 -1
  476. package/lib/network/core/networkCoreWorker.js.map +1 -1
  477. package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -3
  478. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  479. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  480. package/lib/network/core/types.d.ts +2 -2
  481. package/lib/network/core/types.d.ts.map +1 -1
  482. package/lib/network/discv5/index.d.ts +1 -3
  483. package/lib/network/discv5/index.d.ts.map +1 -1
  484. package/lib/network/discv5/index.js.map +1 -1
  485. package/lib/network/discv5/utils.js +2 -1
  486. package/lib/network/discv5/utils.js.map +1 -1
  487. package/lib/network/discv5/worker.js.map +1 -1
  488. package/lib/network/events.d.ts +3 -4
  489. package/lib/network/events.d.ts.map +1 -1
  490. package/lib/network/events.js +4 -2
  491. package/lib/network/events.js.map +1 -1
  492. package/lib/network/forks.js.map +1 -1
  493. package/lib/network/gossip/encoding.d.ts +3 -3
  494. package/lib/network/gossip/encoding.d.ts.map +1 -1
  495. package/lib/network/gossip/encoding.js.map +1 -1
  496. package/lib/network/gossip/errors.d.ts.map +1 -1
  497. package/lib/network/gossip/errors.js.map +1 -1
  498. package/lib/network/gossip/gossipsub.d.ts +13 -4
  499. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  500. package/lib/network/gossip/gossipsub.js +47 -20
  501. package/lib/network/gossip/gossipsub.js.map +1 -1
  502. package/lib/network/gossip/interface.d.ts +3 -3
  503. package/lib/network/gossip/interface.d.ts.map +1 -1
  504. package/lib/network/gossip/interface.js +4 -2
  505. package/lib/network/gossip/interface.js.map +1 -1
  506. package/lib/network/gossip/metrics.d.ts +12 -14
  507. package/lib/network/gossip/metrics.d.ts.map +1 -1
  508. package/lib/network/gossip/metrics.js.map +1 -1
  509. package/lib/network/gossip/scoringParameters.d.ts +2 -2
  510. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  511. package/lib/network/gossip/scoringParameters.js +1 -1
  512. package/lib/network/gossip/scoringParameters.js.map +1 -1
  513. package/lib/network/gossip/topic.d.ts +3121 -3174
  514. package/lib/network/gossip/topic.d.ts.map +1 -1
  515. package/lib/network/gossip/topic.js.map +1 -1
  516. package/lib/network/interface.d.ts +3 -3
  517. package/lib/network/interface.d.ts.map +1 -1
  518. package/lib/network/libp2p/error.js +2 -1
  519. package/lib/network/libp2p/error.js.map +1 -1
  520. package/lib/network/libp2p/index.d.ts +1 -1
  521. package/lib/network/libp2p/index.d.ts.map +1 -1
  522. package/lib/network/libp2p/index.js +7 -2
  523. package/lib/network/libp2p/index.js.map +1 -1
  524. package/lib/network/metadata.d.ts.map +1 -1
  525. package/lib/network/metadata.js +4 -2
  526. package/lib/network/metadata.js.map +1 -1
  527. package/lib/network/network.d.ts +3 -3
  528. package/lib/network/network.d.ts.map +1 -1
  529. package/lib/network/network.js +2 -2
  530. package/lib/network/network.js.map +1 -1
  531. package/lib/network/options.d.ts.map +1 -1
  532. package/lib/network/options.js +3 -0
  533. package/lib/network/options.js.map +1 -1
  534. package/lib/network/peers/client.js +2 -1
  535. package/lib/network/peers/client.js.map +1 -1
  536. package/lib/network/peers/datastore.d.ts +7 -8
  537. package/lib/network/peers/datastore.d.ts.map +1 -1
  538. package/lib/network/peers/datastore.js +10 -10
  539. package/lib/network/peers/datastore.js.map +1 -1
  540. package/lib/network/peers/discover.d.ts +0 -7
  541. package/lib/network/peers/discover.d.ts.map +1 -1
  542. package/lib/network/peers/discover.js +4 -2
  543. package/lib/network/peers/discover.js.map +1 -1
  544. package/lib/network/peers/peerManager.d.ts +3 -1
  545. package/lib/network/peers/peerManager.d.ts.map +1 -1
  546. package/lib/network/peers/peerManager.js +103 -53
  547. package/lib/network/peers/peerManager.js.map +1 -1
  548. package/lib/network/peers/peersData.d.ts.map +1 -1
  549. package/lib/network/peers/peersData.js +2 -1
  550. package/lib/network/peers/peersData.js.map +1 -1
  551. package/lib/network/peers/score/interface.js +4 -2
  552. package/lib/network/peers/score/interface.js.map +1 -1
  553. package/lib/network/peers/score/score.d.ts.map +1 -1
  554. package/lib/network/peers/score/score.js.map +1 -1
  555. package/lib/network/peers/score/store.d.ts.map +1 -1
  556. package/lib/network/peers/score/store.js.map +1 -1
  557. package/lib/network/peers/score/utils.js.map +1 -1
  558. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  559. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  560. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  561. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  562. package/lib/network/peers/utils/prioritizePeers.d.ts +3 -3
  563. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  564. package/lib/network/peers/utils/prioritizePeers.js +2 -1
  565. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  566. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  567. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  568. package/lib/network/processor/aggregatorTracker.d.ts.map +1 -1
  569. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  570. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  571. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  572. package/lib/network/processor/gossipHandlers.js +4 -1
  573. package/lib/network/processor/gossipHandlers.js.map +1 -1
  574. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  575. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  576. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  577. package/lib/network/processor/gossipQueues/linear.d.ts.map +1 -1
  578. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  579. package/lib/network/processor/gossipQueues/types.js +4 -2
  580. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  581. package/lib/network/processor/gossipValidatorFn.js +1 -1
  582. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  583. package/lib/network/processor/index.d.ts.map +1 -1
  584. package/lib/network/processor/index.js +4 -2
  585. package/lib/network/processor/index.js.map +1 -1
  586. package/lib/network/processor/types.d.ts +1 -1
  587. package/lib/network/processor/types.d.ts.map +1 -1
  588. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  589. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  590. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  591. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  592. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  593. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  594. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  595. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  596. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  597. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  598. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  599. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  600. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  601. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  602. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  603. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  604. package/lib/network/reqresp/handlers/index.js.map +1 -1
  605. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  606. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  607. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  608. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  609. package/lib/network/reqresp/interface.js +2 -1
  610. package/lib/network/reqresp/interface.js.map +1 -1
  611. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  612. package/lib/network/reqresp/protocols.js.map +1 -1
  613. package/lib/network/reqresp/rateLimit.js.map +1 -1
  614. package/lib/network/reqresp/score.d.ts.map +1 -1
  615. package/lib/network/reqresp/score.js +0 -1
  616. package/lib/network/reqresp/score.js.map +1 -1
  617. package/lib/network/reqresp/types.js +4 -2
  618. package/lib/network/reqresp/types.js.map +1 -1
  619. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  620. package/lib/network/reqresp/utils/collect.js.map +1 -1
  621. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  622. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js +2 -1
  623. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  624. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +1 -1
  625. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  626. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  627. package/lib/network/statusCache.d.ts.map +1 -1
  628. package/lib/network/statusCache.js.map +1 -1
  629. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  630. package/lib/network/subnets/attnetsService.js +2 -1
  631. package/lib/network/subnets/attnetsService.js.map +1 -1
  632. package/lib/network/subnets/interface.js.map +1 -1
  633. package/lib/network/subnets/syncnetsService.d.ts.map +1 -1
  634. package/lib/network/subnets/syncnetsService.js.map +1 -1
  635. package/lib/network/subnets/util.js.map +1 -1
  636. package/lib/network/util.js +2 -2
  637. package/lib/network/util.js.map +1 -1
  638. package/lib/node/nodejs.d.ts +4 -6
  639. package/lib/node/nodejs.d.ts.map +1 -1
  640. package/lib/node/nodejs.js +8 -5
  641. package/lib/node/nodejs.js.map +1 -1
  642. package/lib/node/notifier.js.map +1 -1
  643. package/lib/node/utils/interop/deposits.js.map +1 -1
  644. package/lib/node/utils/interop/state.d.ts +1 -1
  645. package/lib/node/utils/interop/state.d.ts.map +1 -1
  646. package/lib/node/utils/interop/state.js.map +1 -1
  647. package/lib/node/utils/lightclient.js.map +1 -1
  648. package/lib/node/utils/state.js.map +1 -1
  649. package/lib/sync/backfill/backfill.d.ts +1 -10
  650. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  651. package/lib/sync/backfill/backfill.js +6 -3
  652. package/lib/sync/backfill/backfill.js.map +1 -1
  653. package/lib/sync/backfill/errors.js +2 -1
  654. package/lib/sync/backfill/errors.js.map +1 -1
  655. package/lib/sync/backfill/verify.js.map +1 -1
  656. package/lib/sync/interface.js +2 -1
  657. package/lib/sync/interface.js.map +1 -1
  658. package/lib/sync/range/batch.d.ts.map +1 -1
  659. package/lib/sync/range/batch.js +4 -2
  660. package/lib/sync/range/batch.js.map +1 -1
  661. package/lib/sync/range/chain.d.ts +0 -10
  662. package/lib/sync/range/chain.d.ts.map +1 -1
  663. package/lib/sync/range/chain.js +2 -1
  664. package/lib/sync/range/chain.js.map +1 -1
  665. package/lib/sync/range/range.d.ts +1 -3
  666. package/lib/sync/range/range.d.ts.map +1 -1
  667. package/lib/sync/range/range.js +4 -2
  668. package/lib/sync/range/range.js.map +1 -1
  669. package/lib/sync/range/utils/batches.js.map +1 -1
  670. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  671. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  672. package/lib/sync/range/utils/peerBalancer.d.ts.map +1 -1
  673. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  674. package/lib/sync/range/utils/updateChains.js.map +1 -1
  675. package/lib/sync/sync.d.ts.map +1 -1
  676. package/lib/sync/sync.js.map +1 -1
  677. package/lib/sync/types.js +4 -2
  678. package/lib/sync/types.js.map +1 -1
  679. package/lib/sync/unknownBlock.d.ts +0 -14
  680. package/lib/sync/unknownBlock.d.ts.map +1 -1
  681. package/lib/sync/unknownBlock.js.map +1 -1
  682. package/lib/sync/utils/downloadByRange.d.ts +4 -4
  683. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  684. package/lib/sync/utils/downloadByRange.js +2 -1
  685. package/lib/sync/utils/downloadByRange.js.map +1 -1
  686. package/lib/sync/utils/downloadByRoot.d.ts +8 -8
  687. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  688. package/lib/sync/utils/downloadByRoot.js +2 -1
  689. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  690. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  691. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  692. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  693. package/lib/sync/utils/remoteSyncType.js +4 -2
  694. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  695. package/lib/util/address.js.map +1 -1
  696. package/lib/util/array.d.ts.map +1 -1
  697. package/lib/util/array.js.map +1 -1
  698. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  699. package/lib/util/asyncIterableToEvents.js +2 -1
  700. package/lib/util/asyncIterableToEvents.js.map +1 -1
  701. package/lib/util/binarySearch.d.ts.map +1 -1
  702. package/lib/util/binarySearch.js.map +1 -1
  703. package/lib/util/bitArray.js +2 -1
  704. package/lib/util/bitArray.js.map +1 -1
  705. package/lib/util/blobs.d.ts +2 -2
  706. package/lib/util/blobs.d.ts.map +1 -1
  707. package/lib/util/blobs.js.map +1 -1
  708. package/lib/util/bufferPool.d.ts.map +1 -1
  709. package/lib/util/bufferPool.js +2 -1
  710. package/lib/util/bufferPool.js.map +1 -1
  711. package/lib/util/chunkify.js.map +1 -1
  712. package/lib/util/clock.d.ts +6 -0
  713. package/lib/util/clock.d.ts.map +1 -1
  714. package/lib/util/clock.js +11 -4
  715. package/lib/util/clock.js.map +1 -1
  716. package/lib/util/dataColumns.d.ts +3 -5
  717. package/lib/util/dataColumns.d.ts.map +1 -1
  718. package/lib/util/dataColumns.js +4 -6
  719. package/lib/util/dataColumns.js.map +1 -1
  720. package/lib/util/dependentRoot.js.map +1 -1
  721. package/lib/util/enum.js.map +1 -1
  722. package/lib/util/error.js.map +1 -1
  723. package/lib/util/eventLoop.js.map +1 -1
  724. package/lib/util/execution.js +2 -1
  725. package/lib/util/execution.js.map +1 -1
  726. package/lib/util/file.js.map +1 -1
  727. package/lib/util/forkChoice.js.map +1 -1
  728. package/lib/util/forkName.js.map +1 -1
  729. package/lib/util/graffiti.js.map +1 -1
  730. package/lib/util/hex.js.map +1 -1
  731. package/lib/util/ip.js.map +1 -1
  732. package/lib/util/itTrigger.d.ts.map +1 -1
  733. package/lib/util/itTrigger.js.map +1 -1
  734. package/lib/util/map.d.ts.map +1 -1
  735. package/lib/util/map.js.map +1 -1
  736. package/lib/util/metadata.js.map +1 -1
  737. package/lib/util/multifork.d.ts +8 -0
  738. package/lib/util/multifork.d.ts.map +1 -1
  739. package/lib/util/multifork.js +37 -0
  740. package/lib/util/multifork.js.map +1 -1
  741. package/lib/util/numpy.js.map +1 -1
  742. package/lib/util/peerId.js.map +1 -1
  743. package/lib/util/profile.js +2 -1
  744. package/lib/util/profile.js.map +1 -1
  745. package/lib/util/promises.js.map +1 -1
  746. package/lib/util/queue/errors.js +2 -1
  747. package/lib/util/queue/errors.js.map +1 -1
  748. package/lib/util/queue/fnQueue.d.ts.map +1 -1
  749. package/lib/util/queue/fnQueue.js.map +1 -1
  750. package/lib/util/queue/itemQueue.d.ts.map +1 -1
  751. package/lib/util/queue/itemQueue.js.map +1 -1
  752. package/lib/util/queue/options.js +2 -1
  753. package/lib/util/queue/options.js.map +1 -1
  754. package/lib/util/serializedCache.d.ts +4 -4
  755. package/lib/util/serializedCache.d.ts.map +1 -1
  756. package/lib/util/serializedCache.js +6 -4
  757. package/lib/util/serializedCache.js.map +1 -1
  758. package/lib/util/set.d.ts.map +1 -1
  759. package/lib/util/set.js.map +1 -1
  760. package/lib/util/shuffle.js.map +1 -1
  761. package/lib/util/sortBy.js.map +1 -1
  762. package/lib/util/sszBytes.js.map +1 -1
  763. package/lib/util/time.js.map +1 -1
  764. package/lib/util/timeSeries.d.ts.map +1 -1
  765. package/lib/util/timeSeries.js.map +1 -1
  766. package/lib/util/types.d.ts.map +1 -1
  767. package/lib/util/workerEvents.d.ts +1 -1
  768. package/lib/util/workerEvents.d.ts.map +1 -1
  769. package/lib/util/workerEvents.js.map +1 -1
  770. package/lib/util/wrapError.js.map +1 -1
  771. package/package.json +41 -44
  772. package/src/api/impl/beacon/blocks/index.ts +3 -2
  773. package/src/api/impl/beacon/state/index.ts +8 -8
  774. package/src/api/impl/beacon/state/utils.ts +15 -29
  775. package/src/api/impl/debug/index.ts +9 -5
  776. package/src/api/impl/node/utils.ts +3 -3
  777. package/src/api/impl/validator/index.ts +29 -16
  778. package/src/chain/archiveStore/archiveStore.ts +15 -5
  779. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
  780. package/src/chain/archiveStore/historicalState/worker.ts +3 -3
  781. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -5
  782. package/src/chain/archiveStore/utils/archivePayloads.ts +15 -0
  783. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  784. package/src/chain/blocks/blockInput/blockInput.ts +103 -3
  785. package/src/chain/blocks/blockInput/types.ts +18 -0
  786. package/src/chain/blocks/importBlock.ts +35 -4
  787. package/src/chain/blocks/verifyBlocksDataAvailability.ts +3 -0
  788. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -2
  789. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  790. package/src/chain/blocks/writeBlockInputToDb.ts +105 -104
  791. package/src/chain/bls/multithread/index.ts +7 -7
  792. package/src/chain/bls/multithread/jobItem.ts +3 -3
  793. package/src/chain/bls/singleThread.ts +5 -5
  794. package/src/chain/bls/utils.ts +8 -5
  795. package/src/chain/chain.ts +47 -39
  796. package/src/chain/emitter.ts +5 -5
  797. package/src/chain/errors/executionPayloadBid.ts +1 -1
  798. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  799. package/src/chain/errors/payloadAttestation.ts +1 -1
  800. package/src/chain/forkChoice/index.ts +39 -21
  801. package/src/chain/interface.ts +4 -11
  802. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  803. package/src/chain/produceBlock/computeNewStateRoot.ts +4 -3
  804. package/src/chain/produceBlock/produceBlockBody.ts +10 -4
  805. package/src/chain/regen/queued.ts +7 -2
  806. package/src/chain/regen/regen.ts +9 -3
  807. package/src/chain/seenCache/seenGossipBlockInput.ts +56 -18
  808. package/src/chain/validation/aggregateAndProof.ts +1 -1
  809. package/src/chain/validation/attestation.ts +14 -7
  810. package/src/chain/validation/attesterSlashing.ts +10 -1
  811. package/src/chain/validation/blobSidecar.ts +2 -2
  812. package/src/chain/validation/block.ts +9 -4
  813. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  814. package/src/chain/validation/executionPayloadBid.ts +1 -2
  815. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  816. package/src/chain/validation/payloadAttestationMessage.ts +10 -3
  817. package/src/chain/validation/proposerSlashing.ts +1 -1
  818. package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
  819. package/src/db/beacon.ts +8 -0
  820. package/src/db/buckets.ts +3 -0
  821. package/src/db/index.ts +1 -0
  822. package/src/db/interface.ts +5 -0
  823. package/src/db/repositories/blockArchive.ts +1 -2
  824. package/src/db/repositories/dataColumnSidecar.ts +18 -3
  825. package/src/db/repositories/dataColumnSidecarArchive.ts +18 -3
  826. package/src/db/repositories/executionPayloadEnvelope.ts +26 -0
  827. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +32 -0
  828. package/src/db/repositories/index.ts +2 -0
  829. package/src/execution/engine/http.ts +3 -0
  830. package/src/metrics/metrics/lodestar.ts +23 -10
  831. package/src/monitoring/service.ts +3 -2
  832. package/src/network/core/networkCore.ts +3 -3
  833. package/src/network/core/networkCoreWorkerHandler.ts +3 -3
  834. package/src/network/core/types.ts +2 -2
  835. package/src/network/events.ts +2 -1
  836. package/src/network/gossip/encoding.ts +3 -3
  837. package/src/network/gossip/gossipsub.ts +86 -25
  838. package/src/network/gossip/interface.ts +3 -3
  839. package/src/network/gossip/scoringParameters.ts +4 -4
  840. package/src/network/interface.ts +3 -3
  841. package/src/network/libp2p/index.ts +8 -3
  842. package/src/network/network.ts +9 -6
  843. package/src/network/options.ts +3 -0
  844. package/src/network/peers/datastore.ts +13 -10
  845. package/src/network/peers/peerManager.ts +118 -54
  846. package/src/network/peers/utils/prioritizePeers.ts +3 -3
  847. package/src/network/processor/gossipHandlers.ts +12 -3
  848. package/src/network/processor/gossipValidatorFn.ts +2 -2
  849. package/src/network/processor/types.ts +1 -1
  850. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  851. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  852. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  853. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  854. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  855. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  856. package/src/network/reqresp/score.ts +0 -1
  857. package/src/network/reqresp/utils/collect.ts +1 -1
  858. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  859. package/src/network/util.ts +2 -2
  860. package/src/node/nodejs.ts +8 -9
  861. package/src/sync/utils/downloadByRoot.ts +1 -1
  862. package/src/sync/utils/remoteSyncType.ts +1 -1
  863. package/src/util/blobs.ts +3 -3
  864. package/src/util/clock.ts +9 -4
  865. package/src/util/dataColumns.ts +2 -7
  866. package/src/util/multifork.ts +45 -0
  867. package/src/util/serializedCache.ts +7 -5
  868. package/src/util/workerEvents.ts +1 -1
@@ -7,7 +7,7 @@ import {Worker, spawn} from "@chainsafe/threads";
7
7
  self = undefined;
8
8
 
9
9
  import {PublicKey} from "@chainsafe/blst";
10
- import {ISignatureSet, Index2PubkeyCache} from "@lodestar/state-transition";
10
+ import {ISignatureSet, PubkeyCache} from "@lodestar/state-transition";
11
11
  import {Logger} from "@lodestar/utils";
12
12
  import {Metrics} from "../../../metrics/index.js";
13
13
  import {LinkedList} from "../../../util/array.js";
@@ -34,7 +34,7 @@ const workerDir = process.env.NODE_ENV === "test" ? "../../../../lib/chain/bls/m
34
34
  export type BlsMultiThreadWorkerPoolModules = {
35
35
  logger: Logger;
36
36
  metrics: Metrics | null;
37
- index2pubkey: Index2PubkeyCache;
37
+ pubkeyCache: PubkeyCache;
38
38
  };
39
39
 
40
40
  export type BlsMultiThreadWorkerPoolOptions = {
@@ -114,7 +114,7 @@ type WorkerDescriptor = {
114
114
  export class BlsMultiThreadWorkerPool implements IBlsVerifier {
115
115
  private readonly logger: Logger;
116
116
  private readonly metrics: Metrics | null;
117
- private readonly index2pubkey: Index2PubkeyCache;
117
+ private readonly pubkeyCache: PubkeyCache;
118
118
 
119
119
  private readonly workers: WorkerDescriptor[];
120
120
  private readonly jobs = new LinkedList<JobQueueItem>();
@@ -130,10 +130,10 @@ export class BlsMultiThreadWorkerPool implements IBlsVerifier {
130
130
  private workersBusy = 0;
131
131
 
132
132
  constructor(options: BlsMultiThreadWorkerPoolOptions, modules: BlsMultiThreadWorkerPoolModules) {
133
- const {logger, metrics, index2pubkey} = modules;
133
+ const {logger, metrics, pubkeyCache} = modules;
134
134
  this.logger = logger;
135
135
  this.metrics = metrics;
136
- this.index2pubkey = index2pubkey;
136
+ this.pubkeyCache = pubkeyCache;
137
137
  this.blsVerifyAllMultiThread = options.blsVerifyAllMultiThread ?? false;
138
138
 
139
139
  // Use compressed for herumi for now.
@@ -173,7 +173,7 @@ export class BlsMultiThreadWorkerPool implements IBlsVerifier {
173
173
  try {
174
174
  return verifySignatureSetsMaybeBatch(
175
175
  sets.map((set) => ({
176
- publicKey: getAggregatedPubkey(set, this.index2pubkey),
176
+ publicKey: getAggregatedPubkey(set, this.pubkeyCache),
177
177
  message: set.signingRoot.valueOf(),
178
178
  signature: set.signature,
179
179
  }))
@@ -398,7 +398,7 @@ export class BlsMultiThreadWorkerPool implements IBlsVerifier {
398
398
  try {
399
399
  // Note: This can throw, must be handled per-job.
400
400
  // Pubkey and signature aggregation is defered here
401
- workReq = await jobItemWorkReq(job, this.index2pubkey, this.metrics);
401
+ workReq = await jobItemWorkReq(job, this.pubkeyCache, this.metrics);
402
402
  } catch (e) {
403
403
  this.metrics?.blsThreadPool.errorAggregateSignatureSetsCount.inc({type: job.type});
404
404
 
@@ -1,5 +1,5 @@
1
1
  import {PublicKey, asyncAggregateWithRandomness} from "@chainsafe/blst";
2
- import {ISignatureSet, Index2PubkeyCache, SignatureSetType} from "@lodestar/state-transition";
2
+ import {ISignatureSet, PubkeyCache, SignatureSetType} from "@lodestar/state-transition";
3
3
  import {Metrics} from "../../../metrics/metrics.js";
4
4
  import {LinkedList} from "../../../util/array.js";
5
5
  import {VerifySignatureOpts} from "../interface.js";
@@ -50,7 +50,7 @@ export function jobItemSigSets(job: JobQueueItem): number {
50
50
  */
51
51
  export async function jobItemWorkReq(
52
52
  job: JobQueueItem,
53
- index2pubkey: Index2PubkeyCache,
53
+ pubkeyCache: PubkeyCache,
54
54
  metrics: Metrics | null
55
55
  ): Promise<BlsWorkReq> {
56
56
  switch (job.type) {
@@ -59,7 +59,7 @@ export async function jobItemWorkReq(
59
59
  opts: job.opts,
60
60
  sets: job.sets.map((set) => ({
61
61
  // this can throw, handled in the consumer code
62
- publicKey: getAggregatedPubkey(set, index2pubkey, metrics).toBytes(),
62
+ publicKey: getAggregatedPubkey(set, pubkeyCache, metrics).toBytes(),
63
63
  signature: set.signature,
64
64
  message: set.signingRoot,
65
65
  })),
@@ -1,5 +1,5 @@
1
1
  import {PublicKey, Signature, aggregatePublicKeys, aggregateSignatures, verify} from "@chainsafe/blst";
2
- import {ISignatureSet, Index2PubkeyCache} from "@lodestar/state-transition";
2
+ import {ISignatureSet, PubkeyCache} from "@lodestar/state-transition";
3
3
  import {Metrics} from "../../metrics/index.js";
4
4
  import {IBlsVerifier} from "./interface.js";
5
5
  import {verifySignatureSetsMaybeBatch} from "./maybeBatch.js";
@@ -7,18 +7,18 @@ import {getAggregatedPubkey, getAggregatedPubkeysCount} from "./utils.js";
7
7
 
8
8
  export class BlsSingleThreadVerifier implements IBlsVerifier {
9
9
  private readonly metrics: Metrics | null;
10
- private readonly index2pubkey: Index2PubkeyCache;
10
+ private readonly pubkeyCache: PubkeyCache;
11
11
 
12
- constructor({metrics = null, index2pubkey}: {metrics: Metrics | null; index2pubkey: Index2PubkeyCache}) {
12
+ constructor({metrics = null, pubkeyCache}: {metrics: Metrics | null; pubkeyCache: PubkeyCache}) {
13
13
  this.metrics = metrics;
14
- this.index2pubkey = index2pubkey;
14
+ this.pubkeyCache = pubkeyCache;
15
15
  }
16
16
 
17
17
  async verifySignatureSets(sets: ISignatureSet[]): Promise<boolean> {
18
18
  this.metrics?.bls.aggregatedPubkeys.inc(getAggregatedPubkeysCount(sets));
19
19
 
20
20
  const setsAggregated = sets.map((set) => ({
21
- publicKey: getAggregatedPubkey(set, this.index2pubkey, this.metrics),
21
+ publicKey: getAggregatedPubkey(set, this.pubkeyCache, this.metrics),
22
22
  message: set.signingRoot,
23
23
  signature: set.signature,
24
24
  }));
@@ -1,22 +1,25 @@
1
1
  import {PublicKey, aggregatePublicKeys} from "@chainsafe/blst";
2
- import {ISignatureSet, Index2PubkeyCache, SignatureSetType} from "@lodestar/state-transition";
2
+ import {ISignatureSet, PubkeyCache, SignatureSetType} from "@lodestar/state-transition";
3
3
  import {Metrics} from "../../metrics/metrics.js";
4
4
 
5
5
  export function getAggregatedPubkey(
6
6
  signatureSet: ISignatureSet,
7
- index2pubkey: Index2PubkeyCache,
7
+ pubkeyCache: PubkeyCache,
8
8
  metrics: Metrics | null = null
9
9
  ): PublicKey {
10
10
  switch (signatureSet.type) {
11
11
  case SignatureSetType.single:
12
12
  return signatureSet.pubkey;
13
13
 
14
- case SignatureSetType.indexed:
15
- return index2pubkey[signatureSet.index];
14
+ case SignatureSetType.indexed: {
15
+ return pubkeyCache.getOrThrow(signatureSet.index);
16
+ }
16
17
 
17
18
  case SignatureSetType.aggregate: {
18
19
  const timer = metrics?.blsThreadPool.pubkeysAggregationMainThreadDuration.startTimer();
19
- const pubkeys = signatureSet.indices.map((i) => index2pubkey[i]);
20
+ const pubkeys = signatureSet.indices.map((i) => {
21
+ return pubkeyCache.getOrThrow(i);
22
+ });
20
23
  const aggregated = aggregatePublicKeys(pubkeys);
21
24
  timer?.();
22
25
  return aggregated;
@@ -1,13 +1,19 @@
1
1
  import path from "node:path";
2
2
  import {PrivateKey} from "@libp2p/interface";
3
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
4
3
  import {CompositeTypeAny, TreeView, Type} from "@chainsafe/ssz";
5
4
  import {BeaconConfig} from "@lodestar/config";
6
- import {CheckpointWithHex, IForkChoice, ProtoBlock, UpdateHeadOpt} from "@lodestar/fork-choice";
5
+ import {
6
+ CheckpointWithHex,
7
+ CheckpointWithPayloadStatus,
8
+ IForkChoice,
9
+ ProtoBlock,
10
+ UpdateHeadOpt,
11
+ } from "@lodestar/fork-choice";
7
12
  import {LoggerNode} from "@lodestar/logger/node";
8
13
  import {
9
14
  BUILDER_INDEX_SELF_BUILD,
10
15
  EFFECTIVE_BALANCE_INCREMENT,
16
+ ForkPostFulu,
11
17
  GENESIS_SLOT,
12
18
  SLOTS_PER_EPOCH,
13
19
  isForkPostElectra,
@@ -20,7 +26,7 @@ import {
20
26
  CachedBeaconStateGloas,
21
27
  EffectiveBalanceIncrements,
22
28
  EpochShuffling,
23
- Index2PubkeyCache,
29
+ PubkeyCache,
24
30
  computeAnchorCheckpoint,
25
31
  computeAttestationsRewards,
26
32
  computeBlockRewards,
@@ -36,6 +42,7 @@ import {
36
42
  BeaconBlock,
37
43
  BlindedBeaconBlock,
38
44
  BlindedBeaconBlockBody,
45
+ DataColumnSidecars,
39
46
  Epoch,
40
47
  Root,
41
48
  RootHex,
@@ -46,7 +53,6 @@ import {
46
53
  ValidatorIndex,
47
54
  Wei,
48
55
  deneb,
49
- fulu,
50
56
  gloas,
51
57
  isBlindedBeaconBlock,
52
58
  phase0,
@@ -58,7 +64,7 @@ import {Logger, fromHex, gweiToWei, isErrorAborted, pruneSetToMax, sleep, toRoot
58
64
  import {ProcessShutdownCallback} from "@lodestar/validator";
59
65
  import {GENESIS_EPOCH, ZERO_HASH} from "../constants/index.js";
60
66
  import {IBeaconDb} from "../db/index.js";
61
- import {BLOB_SIDECARS_IN_WRAPPER_INDEX} from "../db/repositories/blobSidecars.ts";
67
+ import {BLOB_SIDECARS_IN_WRAPPER_INDEX} from "../db/repositories/blobSidecars.js";
62
68
  import {BuilderStatus} from "../execution/builder/http.js";
63
69
  import {IExecutionBuilder, IExecutionEngine} from "../execution/index.js";
64
70
  import {Metrics} from "../metrics/index.js";
@@ -69,15 +75,15 @@ import {CustodyConfig, getValidatorsCustodyRequirement} from "../util/dataColumn
69
75
  import {callInNextEventLoop} from "../util/eventLoop.js";
70
76
  import {ensureDir, writeIfNotExist} from "../util/file.js";
71
77
  import {isOptimisticBlock} from "../util/forkChoice.js";
72
- import {JobItemQueue} from "../util/queue/itemQueue.ts";
78
+ import {JobItemQueue} from "../util/queue/itemQueue.js";
73
79
  import {SerializedCache} from "../util/serializedCache.js";
74
- import {getSlotFromSignedBeaconBlockSerialized} from "../util/sszBytes.ts";
80
+ import {getSlotFromSignedBeaconBlockSerialized} from "../util/sszBytes.js";
75
81
  import {ArchiveStore} from "./archiveStore/archiveStore.js";
76
82
  import {CheckpointBalancesCache} from "./balancesCache.js";
77
83
  import {BeaconProposerCache} from "./beaconProposerCache.js";
78
84
  import {IBlockInput, isBlockInputBlobs, isBlockInputColumns} from "./blocks/blockInput/index.js";
79
85
  import {BlockProcessor, ImportBlockOpts} from "./blocks/index.js";
80
- import {persistBlockInputs} from "./blocks/writeBlockInputToDb.ts";
86
+ import {persistBlockInput} from "./blocks/writeBlockInputToDb.js";
81
87
  import {BlsMultiThreadWorkerPool, BlsSingleThreadVerifier, IBlsVerifier} from "./bls/index.js";
82
88
  import {ColumnReconstructionTracker} from "./ColumnReconstructionTracker.js";
83
89
  import {ChainEvent, ChainEventEmitter} from "./emitter.js";
@@ -164,7 +170,7 @@ export class BeaconChain implements IBeaconChain {
164
170
  readonly lightClientServer?: LightClientServer;
165
171
  readonly reprocessController: ReprocessController;
166
172
  readonly archiveStore: ArchiveStore;
167
- readonly unfinalizedBlockWrites: JobItemQueue<[IBlockInput[]], void>;
173
+ readonly unfinalizedBlockWrites: JobItemQueue<[IBlockInput], void>;
168
174
 
169
175
  // Ops pool
170
176
  readonly attestationPool: AttestationPool;
@@ -191,8 +197,7 @@ export class BeaconChain implements IBeaconChain {
191
197
  readonly seenBlockAttesters = new SeenBlockAttesters();
192
198
 
193
199
  // Global state caches
194
- readonly pubkey2index: PubkeyIndexMap;
195
- readonly index2pubkey: Index2PubkeyCache;
200
+ readonly pubkeyCache: PubkeyCache;
196
201
 
197
202
  readonly beaconProposerCache: BeaconProposerCache;
198
203
  readonly checkpointBalancesCache: CheckpointBalancesCache;
@@ -238,8 +243,7 @@ export class BeaconChain implements IBeaconChain {
238
243
  {
239
244
  privateKey,
240
245
  config,
241
- pubkey2index,
242
- index2pubkey,
246
+ pubkeyCache,
243
247
  db,
244
248
  dbName,
245
249
  dataDir,
@@ -255,8 +259,7 @@ export class BeaconChain implements IBeaconChain {
255
259
  }: {
256
260
  privateKey: PrivateKey;
257
261
  config: BeaconConfig;
258
- pubkey2index: PubkeyIndexMap;
259
- index2pubkey: Index2PubkeyCache;
262
+ pubkeyCache: PubkeyCache;
260
263
  db: IBeaconDb;
261
264
  dbName: string;
262
265
  dataDir: string;
@@ -288,8 +291,8 @@ export class BeaconChain implements IBeaconChain {
288
291
  const emitter = new ChainEventEmitter();
289
292
  // by default, verify signatures on both main threads and worker threads
290
293
  const bls = opts.blsVerifyAllMainThread
291
- ? new BlsSingleThreadVerifier({metrics, index2pubkey})
292
- : new BlsMultiThreadWorkerPool(opts, {logger, metrics, index2pubkey});
294
+ ? new BlsSingleThreadVerifier({metrics, pubkeyCache})
295
+ : new BlsMultiThreadWorkerPool(opts, {logger, metrics, pubkeyCache});
293
296
 
294
297
  if (!clock) clock = new Clock({config, genesisTime: this.genesisTime, signal});
295
298
 
@@ -317,12 +320,14 @@ export class BeaconChain implements IBeaconChain {
317
320
 
318
321
  this.beaconProposerCache = new BeaconProposerCache(opts);
319
322
  this.checkpointBalancesCache = new CheckpointBalancesCache();
323
+ this.serializedCache = new SerializedCache();
320
324
  this.seenBlockInputCache = new SeenBlockInput({
321
325
  config,
322
326
  custodyConfig: this.custodyConfig,
323
327
  clock,
324
328
  chainEvents: emitter,
325
329
  signal,
330
+ serializedCache: this.serializedCache,
326
331
  metrics,
327
332
  logger,
328
333
  });
@@ -345,8 +350,7 @@ export class BeaconChain implements IBeaconChain {
345
350
  ]);
346
351
 
347
352
  // Global cache of validators pubkey/index mapping
348
- this.pubkey2index = pubkey2index;
349
- this.index2pubkey = index2pubkey;
353
+ this.pubkeyCache = pubkeyCache;
350
354
 
351
355
  const fileDataStore = opts.nHistoricalStatesFileDataStore ?? true;
352
356
  const blockStateCache = new FIFOBlockStateCache(this.opts, {metrics});
@@ -410,8 +414,6 @@ export class BeaconChain implements IBeaconChain {
410
414
  this.bls = bls;
411
415
  this.emitter = emitter;
412
416
 
413
- this.serializedCache = new SerializedCache();
414
-
415
417
  this.getBlobsTracker = new GetBlobsTracker({
416
418
  logger,
417
419
  executionEngine: this.executionEngine,
@@ -433,7 +435,7 @@ export class BeaconChain implements IBeaconChain {
433
435
  );
434
436
 
435
437
  this.unfinalizedBlockWrites = new JobItemQueue(
436
- persistBlockInputs.bind(this),
438
+ persistBlockInput.bind(this),
437
439
  {
438
440
  maxLength: DEFAULT_MAX_PENDING_UNFINALIZED_BLOCK_WRITES,
439
441
  signal,
@@ -604,7 +606,7 @@ export class BeaconChain implements IBeaconChain {
604
606
  ): Promise<{state: CachedBeaconStateAllForks | Uint8Array; executionOptimistic: boolean; finalized: boolean} | null> {
605
607
  if (opts?.allowRegen) {
606
608
  const state = await this.regen.getState(stateRoot, RegenCaller.restApi);
607
- const block = this.forkChoice.getBlock(state.latestBlockHeader.hashTreeRoot());
609
+ const block = this.forkChoice.getBlockDefaultStatus(state.latestBlockHeader.hashTreeRoot());
608
610
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
609
611
  return {
610
612
  state,
@@ -620,7 +622,7 @@ export class BeaconChain implements IBeaconChain {
620
622
  // TODO: This is very inneficient for debug requests of serialized content, since it deserializes to serialize again
621
623
  const cachedStateCtx = this.regen.getStateSync(stateRoot);
622
624
  if (cachedStateCtx) {
623
- const block = this.forkChoice.getBlock(cachedStateCtx.latestBlockHeader.hashTreeRoot());
625
+ const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
624
626
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
625
627
  return {
626
628
  state: cachedStateCtx,
@@ -654,7 +656,7 @@ export class BeaconChain implements IBeaconChain {
654
656
  // finalized or justified checkpoint states maynot be available with PersistentCheckpointStateCache, use getCheckpointStateOrBytes() api to get Uint8Array
655
657
  const cachedStateCtx = this.regen.getCheckpointStateSync(checkpoint);
656
658
  if (cachedStateCtx) {
657
- const block = this.forkChoice.getBlock(cachedStateCtx.latestBlockHeader.hashTreeRoot());
659
+ const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
658
660
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
659
661
  return {
660
662
  state: cachedStateCtx,
@@ -671,7 +673,7 @@ export class BeaconChain implements IBeaconChain {
671
673
  ): Promise<{state: CachedBeaconStateAllForks | Uint8Array; executionOptimistic: boolean; finalized: boolean} | null> {
672
674
  const cachedStateCtx = await this.regen.getCheckpointStateOrBytes(checkpoint);
673
675
  if (cachedStateCtx) {
674
- const block = this.forkChoice.getBlock(checkpoint.root);
676
+ const block = this.forkChoice.getBlockDefaultStatus(checkpoint.root);
675
677
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
676
678
  return {
677
679
  state: cachedStateCtx,
@@ -715,7 +717,7 @@ export class BeaconChain implements IBeaconChain {
715
717
  async getBlockByRoot(
716
718
  root: string
717
719
  ): Promise<{block: SignedBeaconBlock; executionOptimistic: boolean; finalized: boolean} | null> {
718
- const block = this.forkChoice.getBlockHex(root);
720
+ const block = this.forkChoice.getBlockHexDefaultStatus(root);
719
721
  if (block) {
720
722
  // Block found in fork-choice.
721
723
  // It may be in the block input cache, awaiting full DA reconstruction, check there first
@@ -739,7 +741,7 @@ export class BeaconChain implements IBeaconChain {
739
741
  async getSerializedBlockByRoot(
740
742
  root: string
741
743
  ): Promise<{block: Uint8Array; executionOptimistic: boolean; finalized: boolean; slot: Slot} | null> {
742
- const block = this.forkChoice.getBlockHex(root);
744
+ const block = this.forkChoice.getBlockHexDefaultStatus(root);
743
745
  if (block) {
744
746
  // Block found in fork-choice.
745
747
  // It may be in the block input cache, awaiting full DA reconstruction, check there first
@@ -817,7 +819,7 @@ export class BeaconChain implements IBeaconChain {
817
819
  return null;
818
820
  }
819
821
 
820
- async getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<fulu.DataColumnSidecars> {
822
+ async getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecars> {
821
823
  const blockInput = this.seenBlockInputCache.get(blockRootHex);
822
824
  if (blockInput) {
823
825
  if (!isBlockInputColumns(blockInput)) {
@@ -827,10 +829,10 @@ export class BeaconChain implements IBeaconChain {
827
829
  }
828
830
  const sidecarsUnfinalized = await this.db.dataColumnSidecar.values(fromHex(blockRootHex));
829
831
  if (sidecarsUnfinalized.length > 0) {
830
- return sidecarsUnfinalized;
832
+ return sidecarsUnfinalized as DataColumnSidecars;
831
833
  }
832
834
  const sidecarsFinalized = await this.db.dataColumnSidecarArchive.values(blockSlot);
833
- return sidecarsFinalized;
835
+ return sidecarsFinalized as DataColumnSidecars;
834
836
  }
835
837
 
836
838
  async getSerializedDataColumnSidecars(
@@ -852,7 +854,7 @@ export class BeaconChain implements IBeaconChain {
852
854
  if (serialized) {
853
855
  return serialized;
854
856
  }
855
- return ssz.fulu.DataColumnSidecar.serialize(sidecar);
857
+ return sszTypesFor(blockInput.forkName as ForkPostFulu).DataColumnSidecar.serialize(sidecar);
856
858
  });
857
859
  }
858
860
  const sidecarsUnfinalized = await this.db.dataColumnSidecar.getManyBinary(fromHex(blockRootHex), indices);
@@ -919,7 +921,7 @@ export class BeaconChain implements IBeaconChain {
919
921
  RegenCaller.produceBlock
920
922
  );
921
923
  const proposerIndex = state.epochCtx.getBeaconProposer(slot);
922
- const proposerPubKey = this.index2pubkey[proposerIndex].toBytes();
924
+ const proposerPubKey = this.pubkeyCache.getOrThrow(proposerIndex).toBytes();
923
925
 
924
926
  const {body, produceResult, executionPayloadValue, shouldOverrideBuilder} = await produceBlockBody.call(
925
927
  this,
@@ -1190,7 +1192,7 @@ export class BeaconChain implements IBeaconChain {
1190
1192
  * @param blockState state that declares justified checkpoint `checkpoint`
1191
1193
  */
1192
1194
  private justifiedBalancesGetter(
1193
- checkpoint: CheckpointWithHex,
1195
+ checkpoint: CheckpointWithPayloadStatus,
1194
1196
  blockState: CachedBeaconStateAllForks
1195
1197
  ): EffectiveBalanceIncrements {
1196
1198
  this.metrics?.balancesCache.requests.inc();
@@ -1229,7 +1231,7 @@ export class BeaconChain implements IBeaconChain {
1229
1231
  * @param blockState state that declares justified checkpoint `checkpoint`
1230
1232
  */
1231
1233
  private closestJustifiedBalancesStateToCheckpoint(
1232
- checkpoint: CheckpointWithHex,
1234
+ checkpoint: CheckpointWithPayloadStatus,
1233
1235
  blockState: CachedBeaconStateAllForks
1234
1236
  ): {state: CachedBeaconStateAllForks; stateId: string; shouldWarn: boolean} {
1235
1237
  const state = this.regen.getCheckpointStateSync(checkpoint);
@@ -1243,7 +1245,10 @@ export class BeaconChain implements IBeaconChain {
1243
1245
  }
1244
1246
 
1245
1247
  // Find a state in the same branch of checkpoint at same epoch. Balances should exactly the same
1246
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex)) {
1248
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendants(
1249
+ checkpoint.rootHex,
1250
+ checkpoint.payloadStatus
1251
+ )) {
1247
1252
  if (computeEpochAtSlot(descendantBlock.slot) === checkpoint.epoch) {
1248
1253
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
1249
1254
  if (descendantBlockState) {
@@ -1259,7 +1264,10 @@ export class BeaconChain implements IBeaconChain {
1259
1264
 
1260
1265
  // Find a state in the same branch of checkpoint at a latter epoch. Balances are not the same, but should be close
1261
1266
  // Note: must call .forwardIterateDescendants() again since nodes are not sorted
1262
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex)) {
1267
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendants(
1268
+ checkpoint.rootHex,
1269
+ checkpoint.payloadStatus
1270
+ )) {
1263
1271
  if (computeEpochAtSlot(descendantBlock.slot) > checkpoint.epoch) {
1264
1272
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
1265
1273
  if (descendantBlockState) {
@@ -1535,7 +1543,7 @@ export class BeaconChain implements IBeaconChain {
1535
1543
  throw Error(`State is not in cache for slot ${slot}`);
1536
1544
  }
1537
1545
 
1538
- const rewards = await computeAttestationsRewards(this.config, this.pubkey2index, cachedState, validatorIds);
1546
+ const rewards = await computeAttestationsRewards(this.config, this.pubkeyCache, cachedState, validatorIds);
1539
1547
 
1540
1548
  return {rewards, executionOptimistic, finalized};
1541
1549
  }
@@ -1552,6 +1560,6 @@ export class BeaconChain implements IBeaconChain {
1552
1560
 
1553
1561
  preState = processSlots(preState, block.slot); // Dial preState's slot to block.slot
1554
1562
 
1555
- return computeSyncCommitteeRewards(this.config, this.index2pubkey, block, preState, validatorIds);
1563
+ return computeSyncCommitteeRewards(this.config, this.pubkeyCache, block, preState, validatorIds);
1556
1564
  }
1557
1565
  }
@@ -1,9 +1,9 @@
1
1
  import {EventEmitter} from "node:events";
2
2
  import {StrictEventEmitter} from "strict-event-emitter-types";
3
3
  import {routes} from "@lodestar/api";
4
- import {CheckpointWithHex} from "@lodestar/fork-choice";
4
+ import {CheckpointWithPayloadStatus} from "@lodestar/fork-choice";
5
5
  import {CachedBeaconStateAllForks} from "@lodestar/state-transition";
6
- import {DataColumnSidecar, RootHex, deneb, phase0} from "@lodestar/types";
6
+ import {DataColumnSidecars, RootHex, deneb, phase0} from "@lodestar/types";
7
7
  import {PeerIdStr} from "../util/peerId.js";
8
8
  import {BlockInputSource, IBlockInput} from "./blocks/blockInput/types.js";
9
9
 
@@ -83,12 +83,12 @@ export type ChainEventData = {
83
83
  export type IChainEvents = ApiEvents & {
84
84
  [ChainEvent.checkpoint]: (checkpoint: phase0.Checkpoint, state: CachedBeaconStateAllForks) => void;
85
85
 
86
- [ChainEvent.forkChoiceJustified]: (checkpoint: CheckpointWithHex) => void;
87
- [ChainEvent.forkChoiceFinalized]: (checkpoint: CheckpointWithHex) => void;
86
+ [ChainEvent.forkChoiceJustified]: (checkpoint: CheckpointWithPayloadStatus) => void;
87
+ [ChainEvent.forkChoiceFinalized]: (checkpoint: CheckpointWithPayloadStatus) => void;
88
88
 
89
89
  [ChainEvent.updateTargetCustodyGroupCount]: (targetGroupCount: number) => void;
90
90
 
91
- [ChainEvent.publishDataColumns]: (sidecars: DataColumnSidecar[]) => void;
91
+ [ChainEvent.publishDataColumns]: (sidecars: DataColumnSidecars) => void;
92
92
 
93
93
  [ChainEvent.publishBlobSidecars]: (sidecars: deneb.BlobSidecar[]) => void;
94
94
 
@@ -1,5 +1,5 @@
1
1
  import {BuilderIndex, RootHex, Slot} from "@lodestar/types";
2
- import {GossipActionError} from "./gossipValidation.ts";
2
+ import {GossipActionError} from "./gossipValidation.js";
3
3
 
4
4
  export enum ExecutionPayloadBidErrorCode {
5
5
  BUILDER_NOT_ELIGIBLE = "EXECUTION_PAYLOAD_BID_ERROR_BUILDER_NOT_ELIGIBLE",
@@ -25,9 +25,13 @@ export type ExecutionPayloadEnvelopeErrorType =
25
25
  | {
26
26
  code: ExecutionPayloadEnvelopeErrorCode.BUILDER_INDEX_MISMATCH;
27
27
  envelopeBuilderIndex: BuilderIndex;
28
- bidBuilderIndex: BuilderIndex;
28
+ bidBuilderIndex: BuilderIndex | null;
29
+ }
30
+ | {
31
+ code: ExecutionPayloadEnvelopeErrorCode.BLOCK_HASH_MISMATCH;
32
+ envelopeBlockHash: RootHex;
33
+ bidBlockHash: RootHex | null;
29
34
  }
30
- | {code: ExecutionPayloadEnvelopeErrorCode.BLOCK_HASH_MISMATCH; envelopeBlockHash: RootHex; bidBlockHash: RootHex}
31
35
  | {code: ExecutionPayloadEnvelopeErrorCode.INVALID_SIGNATURE}
32
36
  | {code: ExecutionPayloadEnvelopeErrorCode.CACHE_FAIL; blockRoot: RootHex};
33
37
 
@@ -1,5 +1,5 @@
1
1
  import {RootHex, Slot, ValidatorIndex} from "@lodestar/types";
2
- import {GossipActionError} from "./gossipValidation.ts";
2
+ import {GossipActionError} from "./gossipValidation.js";
3
3
 
4
4
  export enum PayloadAttestationErrorCode {
5
5
  NOT_CURRENT_SLOT = "PAYLOAD_ATTESTATION_ERROR_NOT_CURRENT_SLOT",
@@ -4,9 +4,11 @@ import {
4
4
  ForkChoice,
5
5
  ForkChoiceStore,
6
6
  JustifiedBalancesGetter,
7
+ PayloadStatus,
7
8
  ProtoArray,
8
9
  ProtoBlock,
9
10
  ForkChoiceOpts as RawForkChoiceOpts,
11
+ getCheckpointPayloadStatus,
10
12
  } from "@lodestar/fork-choice";
11
13
  import {ZERO_HASH_HEX} from "@lodestar/params";
12
14
  import {
@@ -104,6 +106,14 @@ export function initializeForkChoiceFromFinalizedState(
104
106
  // production code use ForkChoice constructor directly
105
107
  const forkchoiceConstructor = opts.forkchoiceConstructor ?? ForkChoice;
106
108
 
109
+ const isForkPostGloas = (state as CachedBeaconStateGloas).latestBlockHash !== undefined;
110
+
111
+ // Determine justified checkpoint payload status
112
+ const justifiedPayloadStatus = getCheckpointPayloadStatus(state, justifiedCheckpoint.epoch);
113
+
114
+ // Determine finalized checkpoint payload status
115
+ const finalizedPayloadStatus = getCheckpointPayloadStatus(state, finalizedCheckpoint.epoch);
116
+
107
117
  return new forkchoiceConstructor(
108
118
  config,
109
119
 
@@ -113,6 +123,8 @@ export function initializeForkChoiceFromFinalizedState(
113
123
  finalizedCheckpoint,
114
124
  justifiedBalances,
115
125
  justifiedBalancesGetter,
126
+ justifiedPayloadStatus,
127
+ finalizedPayloadStatus,
116
128
  {
117
129
  onJustified: (cp) => emitter.emit(ChainEvent.forkChoiceJustified, cp),
118
130
  onFinalized: (cp) => emitter.emit(ChainEvent.forkChoiceFinalized, cp),
@@ -145,15 +157,12 @@ export function initializeForkChoiceFromFinalizedState(
145
157
  : {executionPayloadBlockHash: null, executionStatus: ExecutionStatus.PreMerge}),
146
158
 
147
159
  dataAvailabilityStatus: DataAvailabilityStatus.PreData,
148
- ...(computeEpochAtSlot(blockHeader.slot) < state.config.GLOAS_FORK_EPOCH
149
- ? {
150
- builderIndex: undefined,
151
- blockHashHex: undefined,
152
- }
153
- : {
154
- builderIndex: (state as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex,
155
- blockHashHex: toRootHex((state as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash),
156
- }),
160
+ payloadStatus: isForkPostGloas ? PayloadStatus.PENDING : PayloadStatus.FULL, // TODO GLOAS: Post-gloas how do we know if the checkpoint payload is FULL or EMPTY?
161
+ builderIndex: isForkPostGloas ? (state as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex : null,
162
+ blockHashFromBid: isForkPostGloas
163
+ ? toRootHex((state as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash)
164
+ : null,
165
+ parentBlockHash: isForkPostGloas ? toRootHex((state as CachedBeaconStateGloas).latestBlockHash) : null,
157
166
  },
158
167
  currentSlot
159
168
  ),
@@ -196,12 +205,22 @@ export function initializeForkChoiceFromUnfinalizedState(
196
205
 
197
206
  // this is not the justified state, but there is no other ways to get justified balances
198
207
  const justifiedBalances = getEffectiveBalanceIncrementsZeroInactive(unfinalizedState);
208
+
209
+ const isForkPostGloas = (unfinalizedState as CachedBeaconStateGloas).latestBlockHash !== undefined;
210
+
211
+ // For unfinalized state, use getCheckpointPayloadStatus to determine the correct status.
212
+ // It checks state.execution_payload_availability to determine EMPTY vs FULL.
213
+ const justifiedPayloadStatus = getCheckpointPayloadStatus(unfinalizedState, justifiedCheckpoint.epoch);
214
+ const finalizedPayloadStatus = getCheckpointPayloadStatus(unfinalizedState, finalizedCheckpoint.epoch);
215
+
199
216
  const store = new ForkChoiceStore(
200
217
  currentSlot,
201
218
  justifiedCheckpoint,
202
219
  finalizedCheckpoint,
203
220
  justifiedBalances,
204
221
  justifiedBalancesGetter,
222
+ justifiedPayloadStatus,
223
+ finalizedPayloadStatus,
205
224
  {
206
225
  onJustified: (cp) => emitter.emit(ChainEvent.forkChoiceJustified, cp),
207
226
  onFinalized: (cp) => emitter.emit(ChainEvent.forkChoiceFinalized, cp),
@@ -235,15 +254,14 @@ export function initializeForkChoiceFromUnfinalizedState(
235
254
  : {executionPayloadBlockHash: null, executionStatus: ExecutionStatus.PreMerge}),
236
255
 
237
256
  dataAvailabilityStatus: DataAvailabilityStatus.PreData,
238
- ...(computeEpochAtSlot(blockHeader.slot) < unfinalizedState.config.GLOAS_FORK_EPOCH
239
- ? {
240
- builderIndex: undefined,
241
- blockHashHex: undefined,
242
- }
243
- : {
244
- builderIndex: (unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex,
245
- blockHashHex: toRootHex((unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash),
246
- }),
257
+ payloadStatus: isForkPostGloas ? PayloadStatus.PENDING : PayloadStatus.FULL, // TODO GLOAS: Post-gloas how do we know if the checkpoint payload is FULL or EMPTY?
258
+ builderIndex: isForkPostGloas
259
+ ? (unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex
260
+ : null,
261
+ blockHashFromBid: isForkPostGloas
262
+ ? toRootHex((unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash)
263
+ : null,
264
+ parentBlockHash: isForkPostGloas ? toRootHex((unfinalizedState as CachedBeaconStateGloas).latestBlockHash) : null,
247
265
  };
248
266
 
249
267
  const parentSlot = blockHeader.slot - 1;
@@ -285,9 +303,9 @@ export function initializeForkChoiceFromUnfinalizedState(
285
303
  };
286
304
 
287
305
  const protoArray = ProtoArray.initialize(finalizedBlock, currentSlot);
288
- protoArray.onBlock(justifiedBlock, currentSlot);
289
- protoArray.onBlock(parentBlock, currentSlot);
290
- protoArray.onBlock(headBlock, currentSlot);
306
+ protoArray.onBlock(justifiedBlock, currentSlot, null);
307
+ protoArray.onBlock(parentBlock, currentSlot, null);
308
+ protoArray.onBlock(headBlock, currentSlot, null);
291
309
 
292
310
  logger?.verbose("Initialized protoArray successfully", {...logCtx, length: protoArray.length()});
293
311