@lodestar/beacon-node 1.41.0-dev.9fa839a030 → 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 (892) 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 +123 -4
  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 +19 -2
  36. package/lib/api/impl/lightclient/index.js.map +1 -1
  37. package/lib/api/impl/lodestar/index.d.ts +1 -1
  38. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  39. package/lib/api/impl/lodestar/index.js.map +1 -1
  40. package/lib/api/impl/node/index.js.map +1 -1
  41. package/lib/api/impl/node/utils.d.ts +1 -1
  42. package/lib/api/impl/node/utils.d.ts.map +1 -1
  43. package/lib/api/impl/node/utils.js.map +1 -1
  44. package/lib/api/impl/proof/index.js.map +1 -1
  45. package/lib/api/impl/utils.js.map +1 -1
  46. package/lib/api/impl/validator/index.d.ts.map +1 -1
  47. package/lib/api/impl/validator/index.js +134 -18
  48. package/lib/api/impl/validator/index.js.map +1 -1
  49. package/lib/api/impl/validator/utils.d.ts +1 -1
  50. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  51. package/lib/api/impl/validator/utils.js.map +1 -1
  52. package/lib/api/rest/activeSockets.d.ts.map +1 -1
  53. package/lib/api/rest/activeSockets.js.map +1 -1
  54. package/lib/api/rest/base.d.ts.map +1 -1
  55. package/lib/api/rest/base.js.map +1 -1
  56. package/lib/api/rest/index.d.ts.map +1 -1
  57. package/lib/api/rest/index.js.map +1 -1
  58. package/lib/api/rest/swaggerUI.js.map +1 -1
  59. package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -1
  60. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  61. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  62. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  63. package/lib/chain/GetBlobsTracker.js.map +1 -1
  64. package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
  65. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  66. package/lib/chain/archiveStore/archiveStore.js +11 -1
  67. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  68. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +5 -6
  69. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  70. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +9 -10
  71. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  72. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  73. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  74. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  75. package/lib/chain/archiveStore/historicalState/types.js +2 -1
  76. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  77. package/lib/chain/archiveStore/historicalState/worker.js +3 -3
  78. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  79. package/lib/chain/archiveStore/interface.js +2 -1
  80. package/lib/chain/archiveStore/interface.js.map +1 -1
  81. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +1 -1
  82. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  83. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -1
  84. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  85. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  86. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  87. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -1
  88. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  89. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +7 -0
  90. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +1 -0
  91. package/lib/chain/archiveStore/utils/archivePayloads.js +10 -0
  92. package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -0
  93. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  94. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  95. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  96. package/lib/chain/balancesCache.d.ts.map +1 -1
  97. package/lib/chain/balancesCache.js.map +1 -1
  98. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  99. package/lib/chain/beaconProposerCache.js.map +1 -1
  100. package/lib/chain/blocks/blockInput/blockInput.d.ts +25 -2
  101. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  102. package/lib/chain/blocks/blockInput/blockInput.js +71 -0
  103. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  104. package/lib/chain/blocks/blockInput/errors.js +2 -1
  105. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  106. package/lib/chain/blocks/blockInput/types.d.ts +18 -1
  107. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  108. package/lib/chain/blocks/blockInput/types.js +5 -2
  109. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  110. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  111. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  112. package/lib/chain/blocks/importBlock.js +27 -6
  113. package/lib/chain/blocks/importBlock.js.map +1 -1
  114. package/lib/chain/blocks/index.d.ts.map +1 -1
  115. package/lib/chain/blocks/index.js +2 -1
  116. package/lib/chain/blocks/index.js.map +1 -1
  117. package/lib/chain/blocks/types.js +6 -3
  118. package/lib/chain/blocks/types.js.map +1 -1
  119. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  120. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  121. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  122. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  123. package/lib/chain/blocks/verifyBlocksDataAvailability.js +3 -0
  124. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  125. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -0
  126. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  127. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -1
  128. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  129. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  130. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  131. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  132. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  133. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  134. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  135. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  136. package/lib/chain/blocks/writeBlockInputToDb.js +92 -95
  137. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  138. package/lib/chain/bls/maybeBatch.js.map +1 -1
  139. package/lib/chain/bls/multithread/index.d.ts +3 -3
  140. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  141. package/lib/chain/bls/multithread/index.js +5 -5
  142. package/lib/chain/bls/multithread/index.js.map +1 -1
  143. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  144. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  145. package/lib/chain/bls/multithread/jobItem.js +4 -3
  146. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  147. package/lib/chain/bls/multithread/types.js +2 -1
  148. package/lib/chain/bls/multithread/types.js.map +1 -1
  149. package/lib/chain/bls/multithread/utils.js.map +1 -1
  150. package/lib/chain/bls/multithread/worker.js.map +1 -1
  151. package/lib/chain/bls/singleThread.d.ts +4 -4
  152. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  153. package/lib/chain/bls/singleThread.js +4 -4
  154. package/lib/chain/bls/singleThread.js.map +1 -1
  155. package/lib/chain/bls/utils.d.ts +2 -2
  156. package/lib/chain/bls/utils.d.ts.map +1 -1
  157. package/lib/chain/bls/utils.js +7 -4
  158. package/lib/chain/bls/utils.js.map +1 -1
  159. package/lib/chain/chain.d.ts +9 -12
  160. package/lib/chain/chain.d.ts.map +1 -1
  161. package/lib/chain/chain.js +45 -28
  162. package/lib/chain/chain.js.map +1 -1
  163. package/lib/chain/emitter.d.ts +6 -8
  164. package/lib/chain/emitter.d.ts.map +1 -1
  165. package/lib/chain/emitter.js +2 -1
  166. package/lib/chain/emitter.js.map +1 -1
  167. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  168. package/lib/chain/errors/attestationError.js +2 -1
  169. package/lib/chain/errors/attestationError.js.map +1 -1
  170. package/lib/chain/errors/attesterSlashingError.js +2 -1
  171. package/lib/chain/errors/attesterSlashingError.js.map +1 -1
  172. package/lib/chain/errors/blobSidecarError.js +2 -1
  173. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  174. package/lib/chain/errors/blockError.d.ts.map +1 -1
  175. package/lib/chain/errors/blockError.js +2 -1
  176. package/lib/chain/errors/blockError.js.map +1 -1
  177. package/lib/chain/errors/blsToExecutionChangeError.js +2 -1
  178. package/lib/chain/errors/blsToExecutionChangeError.js.map +1 -1
  179. package/lib/chain/errors/dataColumnSidecarError.js +2 -1
  180. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  181. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  182. package/lib/chain/errors/executionPayloadBid.js +2 -1
  183. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  184. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  185. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  186. package/lib/chain/errors/executionPayloadEnvelope.js +2 -1
  187. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  188. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  189. package/lib/chain/errors/gossipValidation.js +4 -2
  190. package/lib/chain/errors/gossipValidation.js.map +1 -1
  191. package/lib/chain/errors/lightClientError.js +4 -2
  192. package/lib/chain/errors/lightClientError.js.map +1 -1
  193. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  194. package/lib/chain/errors/payloadAttestation.js +2 -1
  195. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  196. package/lib/chain/errors/proposerSlashingError.js +2 -1
  197. package/lib/chain/errors/proposerSlashingError.js.map +1 -1
  198. package/lib/chain/errors/syncCommitteeError.js +2 -1
  199. package/lib/chain/errors/syncCommitteeError.js.map +1 -1
  200. package/lib/chain/errors/voluntaryExitError.js +2 -1
  201. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  202. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  203. package/lib/chain/forkChoice/index.js +32 -25
  204. package/lib/chain/forkChoice/index.js.map +1 -1
  205. package/lib/chain/initState.d.ts +1 -1
  206. package/lib/chain/initState.d.ts.map +1 -1
  207. package/lib/chain/initState.js.map +1 -1
  208. package/lib/chain/interface.d.ts +4 -6
  209. package/lib/chain/interface.d.ts.map +1 -1
  210. package/lib/chain/interface.js +2 -1
  211. package/lib/chain/interface.js.map +1 -1
  212. package/lib/chain/lightClient/index.d.ts +0 -29
  213. package/lib/chain/lightClient/index.d.ts.map +1 -1
  214. package/lib/chain/lightClient/index.js +1 -1
  215. package/lib/chain/lightClient/index.js.map +1 -1
  216. package/lib/chain/lightClient/proofs.js.map +1 -1
  217. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  218. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -3
  219. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  220. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  221. package/lib/chain/opPools/attestationPool.js.map +1 -1
  222. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  223. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  224. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  225. package/lib/chain/opPools/opPool.js.map +1 -1
  226. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  227. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  228. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  229. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  230. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  231. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  232. package/lib/chain/opPools/types.js +4 -2
  233. package/lib/chain/opPools/types.js.map +1 -1
  234. package/lib/chain/opPools/utils.js.map +1 -1
  235. package/lib/chain/options.d.ts.map +1 -1
  236. package/lib/chain/options.js.map +1 -1
  237. package/lib/chain/prepareNextSlot.d.ts +1 -2
  238. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  239. package/lib/chain/prepareNextSlot.js +3 -3
  240. package/lib/chain/prepareNextSlot.js.map +1 -1
  241. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +9 -2
  242. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  243. package/lib/chain/produceBlock/computeNewStateRoot.js +25 -2
  244. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  245. package/lib/chain/produceBlock/produceBlockBody.d.ts +23 -8
  246. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  247. package/lib/chain/produceBlock/produceBlockBody.js +115 -13
  248. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  249. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  250. package/lib/chain/regen/errors.d.ts.map +1 -1
  251. package/lib/chain/regen/errors.js +2 -1
  252. package/lib/chain/regen/errors.js.map +1 -1
  253. package/lib/chain/regen/interface.js +4 -2
  254. package/lib/chain/regen/interface.js.map +1 -1
  255. package/lib/chain/regen/queued.d.ts.map +1 -1
  256. package/lib/chain/regen/queued.js +4 -1
  257. package/lib/chain/regen/queued.js.map +1 -1
  258. package/lib/chain/regen/regen.d.ts.map +1 -1
  259. package/lib/chain/regen/regen.js +6 -2
  260. package/lib/chain/regen/regen.js.map +1 -1
  261. package/lib/chain/reprocess.d.ts.map +1 -1
  262. package/lib/chain/reprocess.js +2 -1
  263. package/lib/chain/reprocess.js.map +1 -1
  264. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +1 -1
  265. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  266. package/lib/chain/seenCache/seenAttestationData.d.ts.map +1 -1
  267. package/lib/chain/seenCache/seenAttestationData.js +2 -1
  268. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  269. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  270. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  271. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +1 -1
  272. package/lib/chain/seenCache/seenBlockAttesters.js.map +1 -1
  273. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +1 -1
  274. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  275. package/lib/chain/seenCache/seenCommittee.d.ts.map +1 -1
  276. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  277. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +1 -1
  278. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  279. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -1
  280. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -1
  281. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -1
  282. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -1
  283. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -3
  284. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  285. package/lib/chain/seenCache/seenGossipBlockInput.js +38 -16
  286. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  287. package/lib/chain/serializeState.js +1 -0
  288. package/lib/chain/serializeState.js.map +1 -1
  289. package/lib/chain/shufflingCache.d.ts.map +1 -1
  290. package/lib/chain/shufflingCache.js +2 -1
  291. package/lib/chain/shufflingCache.js.map +1 -1
  292. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  293. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  294. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  295. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  296. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  297. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  298. package/lib/chain/stateCache/mapMetrics.d.ts.map +1 -1
  299. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  300. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -41
  301. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  302. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  303. package/lib/chain/stateCache/types.js +2 -1
  304. package/lib/chain/stateCache/types.js.map +1 -1
  305. package/lib/chain/validation/aggregateAndProof.js +1 -1
  306. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  307. package/lib/chain/validation/attestation.d.ts.map +1 -1
  308. package/lib/chain/validation/attestation.js +14 -7
  309. package/lib/chain/validation/attestation.js.map +1 -1
  310. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  311. package/lib/chain/validation/attesterSlashing.js +9 -2
  312. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  313. package/lib/chain/validation/blobSidecar.js +2 -2
  314. package/lib/chain/validation/blobSidecar.js.map +1 -1
  315. package/lib/chain/validation/block.d.ts.map +1 -1
  316. package/lib/chain/validation/block.js +6 -3
  317. package/lib/chain/validation/block.js.map +1 -1
  318. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  319. package/lib/chain/validation/dataColumnSidecar.d.ts +2 -2
  320. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  321. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  322. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  323. package/lib/chain/validation/executionPayloadBid.js +1 -2
  324. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  325. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  326. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  327. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  328. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  329. package/lib/chain/validation/payloadAttestationMessage.js +9 -3
  330. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  331. package/lib/chain/validation/proposerSlashing.js +1 -1
  332. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  333. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  334. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  335. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  336. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  337. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  338. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  339. package/lib/chain/validation/syncCommittee.js.map +1 -1
  340. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  341. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  342. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  343. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  344. package/lib/chain/validatorMonitor.js +2 -1
  345. package/lib/chain/validatorMonitor.js.map +1 -1
  346. package/lib/constants/network.js +4 -2
  347. package/lib/constants/network.js.map +1 -1
  348. package/lib/db/beacon.d.ts +3 -1
  349. package/lib/db/beacon.d.ts.map +1 -1
  350. package/lib/db/beacon.js +5 -1
  351. package/lib/db/beacon.js.map +1 -1
  352. package/lib/db/buckets.d.ts +24 -22
  353. package/lib/db/buckets.d.ts.map +1 -1
  354. package/lib/db/buckets.js +4 -1
  355. package/lib/db/buckets.js.map +1 -1
  356. package/lib/db/index.d.ts +1 -0
  357. package/lib/db/index.d.ts.map +1 -1
  358. package/lib/db/index.js +1 -0
  359. package/lib/db/index.js.map +1 -1
  360. package/lib/db/interface.d.ts +3 -1
  361. package/lib/db/interface.d.ts.map +1 -1
  362. package/lib/db/repositories/attesterSlashing.d.ts.map +1 -1
  363. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  364. package/lib/db/repositories/backfilledRanges.d.ts.map +1 -1
  365. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  366. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  367. package/lib/db/repositories/blobSidecars.js.map +1 -1
  368. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +1 -1
  369. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  370. package/lib/db/repositories/block.d.ts.map +1 -1
  371. package/lib/db/repositories/block.js.map +1 -1
  372. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  373. package/lib/db/repositories/blockArchive.js +1 -2
  374. package/lib/db/repositories/blockArchive.js.map +1 -1
  375. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  376. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  377. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  378. package/lib/db/repositories/blsToExecutionChange.d.ts.map +1 -1
  379. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  380. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  381. package/lib/db/repositories/checkpointState.js.map +1 -1
  382. package/lib/db/repositories/dataColumnSidecar.d.ts +5 -3
  383. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  384. package/lib/db/repositories/dataColumnSidecar.js +14 -1
  385. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  386. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +5 -3
  387. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  388. package/lib/db/repositories/dataColumnSidecarArchive.js +14 -1
  389. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  390. package/lib/db/repositories/executionPayloadEnvelope.d.ts +19 -0
  391. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -0
  392. package/lib/db/repositories/executionPayloadEnvelope.js +22 -0
  393. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -0
  394. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +18 -0
  395. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -0
  396. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +28 -0
  397. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -0
  398. package/lib/db/repositories/index.d.ts +2 -0
  399. package/lib/db/repositories/index.d.ts.map +1 -1
  400. package/lib/db/repositories/index.js +2 -0
  401. package/lib/db/repositories/index.js.map +1 -1
  402. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +1 -1
  403. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  404. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +1 -1
  405. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  406. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +1 -1
  407. package/lib/db/repositories/lightclientSyncCommittee.js.map +1 -1
  408. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  409. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  410. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  411. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  412. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  413. package/lib/db/repositories/stateArchive.js.map +1 -1
  414. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  415. package/lib/db/repositories/voluntaryExit.d.ts.map +1 -1
  416. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  417. package/lib/execution/builder/cache.d.ts.map +1 -1
  418. package/lib/execution/builder/cache.js.map +1 -1
  419. package/lib/execution/builder/http.d.ts.map +1 -1
  420. package/lib/execution/builder/http.js +2 -1
  421. package/lib/execution/builder/http.js.map +1 -1
  422. package/lib/execution/builder/index.js.map +1 -1
  423. package/lib/execution/builder/utils.js.map +1 -1
  424. package/lib/execution/engine/disabled.d.ts.map +1 -1
  425. package/lib/execution/engine/disabled.js.map +1 -1
  426. package/lib/execution/engine/http.d.ts +1 -0
  427. package/lib/execution/engine/http.d.ts.map +1 -1
  428. package/lib/execution/engine/http.js +3 -0
  429. package/lib/execution/engine/http.js.map +1 -1
  430. package/lib/execution/engine/index.js.map +1 -1
  431. package/lib/execution/engine/interface.js +4 -2
  432. package/lib/execution/engine/interface.js.map +1 -1
  433. package/lib/execution/engine/jsonRpcHttpClient.d.ts +10 -15
  434. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  435. package/lib/execution/engine/jsonRpcHttpClient.js +2 -1
  436. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  437. package/lib/execution/engine/jwt.js.map +1 -1
  438. package/lib/execution/engine/mock.d.ts.map +1 -1
  439. package/lib/execution/engine/mock.js.map +1 -1
  440. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  441. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  442. package/lib/execution/engine/types.js.map +1 -1
  443. package/lib/execution/engine/utils.d.ts +1 -1
  444. package/lib/execution/engine/utils.d.ts.map +1 -1
  445. package/lib/execution/engine/utils.js.map +1 -1
  446. package/lib/metrics/metrics/beacon.d.ts +1 -0
  447. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  448. package/lib/metrics/metrics/beacon.js +5 -0
  449. package/lib/metrics/metrics/beacon.js.map +1 -1
  450. package/lib/metrics/metrics/lodestar.d.ts +16 -6
  451. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  452. package/lib/metrics/metrics/lodestar.js +32 -10
  453. package/lib/metrics/metrics/lodestar.js.map +1 -1
  454. package/lib/metrics/metrics.d.ts.map +1 -1
  455. package/lib/metrics/metrics.js +8 -3
  456. package/lib/metrics/metrics.js.map +1 -1
  457. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  458. package/lib/metrics/server/http.d.ts +1 -1
  459. package/lib/metrics/server/http.d.ts.map +1 -1
  460. package/lib/metrics/server/http.js.map +1 -1
  461. package/lib/metrics/utils/avgMinMax.d.ts.map +1 -1
  462. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  463. package/lib/metrics/utils/gauge.d.ts.map +1 -1
  464. package/lib/metrics/utils/gauge.js.map +1 -1
  465. package/lib/metrics/utils/registryMetricCreator.d.ts.map +1 -1
  466. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  467. package/lib/monitoring/clientStats.js.map +1 -1
  468. package/lib/monitoring/properties.d.ts.map +1 -1
  469. package/lib/monitoring/properties.js.map +1 -1
  470. package/lib/monitoring/service.d.ts +2 -2
  471. package/lib/monitoring/service.d.ts.map +1 -1
  472. package/lib/monitoring/service.js +3 -2
  473. package/lib/monitoring/service.js.map +1 -1
  474. package/lib/monitoring/system.d.ts.map +1 -1
  475. package/lib/monitoring/system.js.map +1 -1
  476. package/lib/monitoring/types.js +4 -2
  477. package/lib/monitoring/types.js.map +1 -1
  478. package/lib/network/core/events.d.ts +1 -3
  479. package/lib/network/core/events.d.ts.map +1 -1
  480. package/lib/network/core/events.js +4 -2
  481. package/lib/network/core/events.js.map +1 -1
  482. package/lib/network/core/metrics.d.ts +6 -7
  483. package/lib/network/core/metrics.d.ts.map +1 -1
  484. package/lib/network/core/metrics.js.map +1 -1
  485. package/lib/network/core/networkCore.d.ts +4 -4
  486. package/lib/network/core/networkCore.d.ts.map +1 -1
  487. package/lib/network/core/networkCore.js.map +1 -1
  488. package/lib/network/core/networkCoreWorker.js.map +1 -1
  489. package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -3
  490. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  491. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  492. package/lib/network/core/types.d.ts +2 -2
  493. package/lib/network/core/types.d.ts.map +1 -1
  494. package/lib/network/discv5/index.d.ts +1 -3
  495. package/lib/network/discv5/index.d.ts.map +1 -1
  496. package/lib/network/discv5/index.js.map +1 -1
  497. package/lib/network/discv5/utils.js +2 -1
  498. package/lib/network/discv5/utils.js.map +1 -1
  499. package/lib/network/discv5/worker.js.map +1 -1
  500. package/lib/network/events.d.ts +3 -4
  501. package/lib/network/events.d.ts.map +1 -1
  502. package/lib/network/events.js +4 -2
  503. package/lib/network/events.js.map +1 -1
  504. package/lib/network/forks.js.map +1 -1
  505. package/lib/network/gossip/encoding.d.ts +3 -3
  506. package/lib/network/gossip/encoding.d.ts.map +1 -1
  507. package/lib/network/gossip/encoding.js.map +1 -1
  508. package/lib/network/gossip/errors.d.ts.map +1 -1
  509. package/lib/network/gossip/errors.js.map +1 -1
  510. package/lib/network/gossip/gossipsub.d.ts +13 -4
  511. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  512. package/lib/network/gossip/gossipsub.js +47 -20
  513. package/lib/network/gossip/gossipsub.js.map +1 -1
  514. package/lib/network/gossip/interface.d.ts +6 -6
  515. package/lib/network/gossip/interface.d.ts.map +1 -1
  516. package/lib/network/gossip/interface.js +4 -2
  517. package/lib/network/gossip/interface.js.map +1 -1
  518. package/lib/network/gossip/metrics.d.ts +12 -14
  519. package/lib/network/gossip/metrics.d.ts.map +1 -1
  520. package/lib/network/gossip/metrics.js.map +1 -1
  521. package/lib/network/gossip/scoringParameters.d.ts +2 -2
  522. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  523. package/lib/network/gossip/scoringParameters.js +1 -1
  524. package/lib/network/gossip/scoringParameters.js.map +1 -1
  525. package/lib/network/gossip/topic.d.ts +3166 -3169
  526. package/lib/network/gossip/topic.d.ts.map +1 -1
  527. package/lib/network/gossip/topic.js +2 -2
  528. package/lib/network/gossip/topic.js.map +1 -1
  529. package/lib/network/interface.d.ts +6 -5
  530. package/lib/network/interface.d.ts.map +1 -1
  531. package/lib/network/libp2p/error.js +2 -1
  532. package/lib/network/libp2p/error.js.map +1 -1
  533. package/lib/network/libp2p/index.d.ts +1 -1
  534. package/lib/network/libp2p/index.d.ts.map +1 -1
  535. package/lib/network/libp2p/index.js +7 -2
  536. package/lib/network/libp2p/index.js.map +1 -1
  537. package/lib/network/metadata.d.ts.map +1 -1
  538. package/lib/network/metadata.js +4 -2
  539. package/lib/network/metadata.js.map +1 -1
  540. package/lib/network/network.d.ts +6 -5
  541. package/lib/network/network.d.ts.map +1 -1
  542. package/lib/network/network.js +11 -2
  543. package/lib/network/network.js.map +1 -1
  544. package/lib/network/options.d.ts.map +1 -1
  545. package/lib/network/options.js +3 -0
  546. package/lib/network/options.js.map +1 -1
  547. package/lib/network/peers/client.js +2 -1
  548. package/lib/network/peers/client.js.map +1 -1
  549. package/lib/network/peers/datastore.d.ts +7 -8
  550. package/lib/network/peers/datastore.d.ts.map +1 -1
  551. package/lib/network/peers/datastore.js +10 -10
  552. package/lib/network/peers/datastore.js.map +1 -1
  553. package/lib/network/peers/discover.d.ts +0 -7
  554. package/lib/network/peers/discover.d.ts.map +1 -1
  555. package/lib/network/peers/discover.js +4 -2
  556. package/lib/network/peers/discover.js.map +1 -1
  557. package/lib/network/peers/peerManager.d.ts +3 -1
  558. package/lib/network/peers/peerManager.d.ts.map +1 -1
  559. package/lib/network/peers/peerManager.js +103 -53
  560. package/lib/network/peers/peerManager.js.map +1 -1
  561. package/lib/network/peers/peersData.d.ts.map +1 -1
  562. package/lib/network/peers/peersData.js +2 -1
  563. package/lib/network/peers/peersData.js.map +1 -1
  564. package/lib/network/peers/score/interface.js +4 -2
  565. package/lib/network/peers/score/interface.js.map +1 -1
  566. package/lib/network/peers/score/score.d.ts.map +1 -1
  567. package/lib/network/peers/score/score.js.map +1 -1
  568. package/lib/network/peers/score/store.d.ts.map +1 -1
  569. package/lib/network/peers/score/store.js.map +1 -1
  570. package/lib/network/peers/score/utils.js.map +1 -1
  571. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  572. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  573. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  574. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  575. package/lib/network/peers/utils/prioritizePeers.d.ts +3 -3
  576. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  577. package/lib/network/peers/utils/prioritizePeers.js +2 -1
  578. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  579. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  580. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  581. package/lib/network/processor/aggregatorTracker.d.ts.map +1 -1
  582. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  583. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  584. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  585. package/lib/network/processor/gossipHandlers.js +9 -2
  586. package/lib/network/processor/gossipHandlers.js.map +1 -1
  587. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  588. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  589. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  590. package/lib/network/processor/gossipQueues/linear.d.ts.map +1 -1
  591. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  592. package/lib/network/processor/gossipQueues/types.js +4 -2
  593. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  594. package/lib/network/processor/gossipValidatorFn.js +1 -1
  595. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  596. package/lib/network/processor/index.d.ts.map +1 -1
  597. package/lib/network/processor/index.js +4 -2
  598. package/lib/network/processor/index.js.map +1 -1
  599. package/lib/network/processor/types.d.ts +1 -1
  600. package/lib/network/processor/types.d.ts.map +1 -1
  601. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  602. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  603. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  604. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  605. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  606. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  607. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  608. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  609. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  610. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  611. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  612. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  613. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  614. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  615. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  616. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  617. package/lib/network/reqresp/handlers/index.js.map +1 -1
  618. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  619. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  620. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  621. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +1 -1
  622. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js +7 -1
  623. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  624. package/lib/network/reqresp/interface.js +2 -1
  625. package/lib/network/reqresp/interface.js.map +1 -1
  626. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  627. package/lib/network/reqresp/protocols.js.map +1 -1
  628. package/lib/network/reqresp/rateLimit.js.map +1 -1
  629. package/lib/network/reqresp/score.d.ts.map +1 -1
  630. package/lib/network/reqresp/score.js +0 -1
  631. package/lib/network/reqresp/score.js.map +1 -1
  632. package/lib/network/reqresp/types.js +4 -2
  633. package/lib/network/reqresp/types.js.map +1 -1
  634. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  635. package/lib/network/reqresp/utils/collect.js.map +1 -1
  636. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  637. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js +2 -1
  638. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  639. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +1 -1
  640. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  641. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  642. package/lib/network/statusCache.d.ts.map +1 -1
  643. package/lib/network/statusCache.js.map +1 -1
  644. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  645. package/lib/network/subnets/attnetsService.js +2 -1
  646. package/lib/network/subnets/attnetsService.js.map +1 -1
  647. package/lib/network/subnets/interface.js.map +1 -1
  648. package/lib/network/subnets/syncnetsService.d.ts.map +1 -1
  649. package/lib/network/subnets/syncnetsService.js.map +1 -1
  650. package/lib/network/subnets/util.js.map +1 -1
  651. package/lib/network/util.js +2 -2
  652. package/lib/network/util.js.map +1 -1
  653. package/lib/node/nodejs.d.ts +4 -6
  654. package/lib/node/nodejs.d.ts.map +1 -1
  655. package/lib/node/nodejs.js +8 -5
  656. package/lib/node/nodejs.js.map +1 -1
  657. package/lib/node/notifier.js.map +1 -1
  658. package/lib/node/utils/interop/deposits.js.map +1 -1
  659. package/lib/node/utils/interop/state.d.ts +1 -1
  660. package/lib/node/utils/interop/state.d.ts.map +1 -1
  661. package/lib/node/utils/interop/state.js.map +1 -1
  662. package/lib/node/utils/lightclient.js.map +1 -1
  663. package/lib/node/utils/state.js.map +1 -1
  664. package/lib/sync/backfill/backfill.d.ts +1 -10
  665. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  666. package/lib/sync/backfill/backfill.js +6 -3
  667. package/lib/sync/backfill/backfill.js.map +1 -1
  668. package/lib/sync/backfill/errors.js +2 -1
  669. package/lib/sync/backfill/errors.js.map +1 -1
  670. package/lib/sync/backfill/verify.js.map +1 -1
  671. package/lib/sync/interface.js +2 -1
  672. package/lib/sync/interface.js.map +1 -1
  673. package/lib/sync/range/batch.d.ts.map +1 -1
  674. package/lib/sync/range/batch.js +4 -2
  675. package/lib/sync/range/batch.js.map +1 -1
  676. package/lib/sync/range/chain.d.ts +0 -10
  677. package/lib/sync/range/chain.d.ts.map +1 -1
  678. package/lib/sync/range/chain.js +2 -1
  679. package/lib/sync/range/chain.js.map +1 -1
  680. package/lib/sync/range/range.d.ts +1 -3
  681. package/lib/sync/range/range.d.ts.map +1 -1
  682. package/lib/sync/range/range.js +4 -2
  683. package/lib/sync/range/range.js.map +1 -1
  684. package/lib/sync/range/utils/batches.js.map +1 -1
  685. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  686. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  687. package/lib/sync/range/utils/peerBalancer.d.ts.map +1 -1
  688. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  689. package/lib/sync/range/utils/updateChains.js.map +1 -1
  690. package/lib/sync/sync.d.ts.map +1 -1
  691. package/lib/sync/sync.js.map +1 -1
  692. package/lib/sync/types.js +4 -2
  693. package/lib/sync/types.js.map +1 -1
  694. package/lib/sync/unknownBlock.d.ts +0 -14
  695. package/lib/sync/unknownBlock.d.ts.map +1 -1
  696. package/lib/sync/unknownBlock.js.map +1 -1
  697. package/lib/sync/utils/downloadByRange.d.ts +4 -4
  698. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  699. package/lib/sync/utils/downloadByRange.js +2 -1
  700. package/lib/sync/utils/downloadByRange.js.map +1 -1
  701. package/lib/sync/utils/downloadByRoot.d.ts +8 -8
  702. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  703. package/lib/sync/utils/downloadByRoot.js +2 -1
  704. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  705. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  706. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  707. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  708. package/lib/sync/utils/remoteSyncType.js +4 -2
  709. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  710. package/lib/util/address.js.map +1 -1
  711. package/lib/util/array.d.ts.map +1 -1
  712. package/lib/util/array.js.map +1 -1
  713. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  714. package/lib/util/asyncIterableToEvents.js +2 -1
  715. package/lib/util/asyncIterableToEvents.js.map +1 -1
  716. package/lib/util/binarySearch.d.ts.map +1 -1
  717. package/lib/util/binarySearch.js.map +1 -1
  718. package/lib/util/bitArray.js +2 -1
  719. package/lib/util/bitArray.js.map +1 -1
  720. package/lib/util/blobs.d.ts +2 -2
  721. package/lib/util/blobs.d.ts.map +1 -1
  722. package/lib/util/blobs.js.map +1 -1
  723. package/lib/util/bufferPool.d.ts.map +1 -1
  724. package/lib/util/bufferPool.js +2 -1
  725. package/lib/util/bufferPool.js.map +1 -1
  726. package/lib/util/chunkify.js.map +1 -1
  727. package/lib/util/clock.d.ts +6 -0
  728. package/lib/util/clock.d.ts.map +1 -1
  729. package/lib/util/clock.js +11 -4
  730. package/lib/util/clock.js.map +1 -1
  731. package/lib/util/dataColumns.d.ts +11 -3
  732. package/lib/util/dataColumns.d.ts.map +1 -1
  733. package/lib/util/dataColumns.js +31 -2
  734. package/lib/util/dataColumns.js.map +1 -1
  735. package/lib/util/dependentRoot.js.map +1 -1
  736. package/lib/util/enum.js.map +1 -1
  737. package/lib/util/error.js.map +1 -1
  738. package/lib/util/eventLoop.js.map +1 -1
  739. package/lib/util/execution.js +2 -1
  740. package/lib/util/execution.js.map +1 -1
  741. package/lib/util/file.js.map +1 -1
  742. package/lib/util/forkChoice.js.map +1 -1
  743. package/lib/util/forkName.js.map +1 -1
  744. package/lib/util/graffiti.js.map +1 -1
  745. package/lib/util/hex.js.map +1 -1
  746. package/lib/util/ip.js.map +1 -1
  747. package/lib/util/itTrigger.d.ts.map +1 -1
  748. package/lib/util/itTrigger.js.map +1 -1
  749. package/lib/util/map.d.ts.map +1 -1
  750. package/lib/util/map.js.map +1 -1
  751. package/lib/util/metadata.js.map +1 -1
  752. package/lib/util/multifork.d.ts +8 -0
  753. package/lib/util/multifork.d.ts.map +1 -1
  754. package/lib/util/multifork.js +37 -0
  755. package/lib/util/multifork.js.map +1 -1
  756. package/lib/util/numpy.js.map +1 -1
  757. package/lib/util/peerId.js.map +1 -1
  758. package/lib/util/profile.js +2 -1
  759. package/lib/util/profile.js.map +1 -1
  760. package/lib/util/promises.js.map +1 -1
  761. package/lib/util/queue/errors.js +2 -1
  762. package/lib/util/queue/errors.js.map +1 -1
  763. package/lib/util/queue/fnQueue.d.ts.map +1 -1
  764. package/lib/util/queue/fnQueue.js.map +1 -1
  765. package/lib/util/queue/itemQueue.d.ts.map +1 -1
  766. package/lib/util/queue/itemQueue.js.map +1 -1
  767. package/lib/util/queue/options.js +2 -1
  768. package/lib/util/queue/options.js.map +1 -1
  769. package/lib/util/serializedCache.d.ts +7 -2
  770. package/lib/util/serializedCache.d.ts.map +1 -1
  771. package/lib/util/serializedCache.js +9 -2
  772. package/lib/util/serializedCache.js.map +1 -1
  773. package/lib/util/set.d.ts.map +1 -1
  774. package/lib/util/set.js.map +1 -1
  775. package/lib/util/shuffle.js.map +1 -1
  776. package/lib/util/sortBy.js.map +1 -1
  777. package/lib/util/sszBytes.js.map +1 -1
  778. package/lib/util/time.js.map +1 -1
  779. package/lib/util/timeSeries.d.ts.map +1 -1
  780. package/lib/util/timeSeries.js.map +1 -1
  781. package/lib/util/types.d.ts.map +1 -1
  782. package/lib/util/workerEvents.d.ts +1 -1
  783. package/lib/util/workerEvents.d.ts.map +1 -1
  784. package/lib/util/workerEvents.js.map +1 -1
  785. package/lib/util/wrapError.js.map +1 -1
  786. package/package.json +41 -44
  787. package/src/api/impl/beacon/blocks/index.ts +147 -3
  788. package/src/api/impl/beacon/state/index.ts +8 -8
  789. package/src/api/impl/beacon/state/utils.ts +15 -29
  790. package/src/api/impl/debug/index.ts +9 -5
  791. package/src/api/impl/lightclient/index.ts +19 -2
  792. package/src/api/impl/node/utils.ts +3 -3
  793. package/src/api/impl/validator/index.ts +153 -17
  794. package/src/chain/archiveStore/archiveStore.ts +15 -5
  795. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
  796. package/src/chain/archiveStore/historicalState/worker.ts +3 -3
  797. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -5
  798. package/src/chain/archiveStore/utils/archivePayloads.ts +15 -0
  799. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  800. package/src/chain/blocks/blockInput/blockInput.ts +103 -3
  801. package/src/chain/blocks/blockInput/types.ts +18 -0
  802. package/src/chain/blocks/importBlock.ts +35 -7
  803. package/src/chain/blocks/index.ts +2 -1
  804. package/src/chain/blocks/verifyBlocksDataAvailability.ts +3 -0
  805. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -2
  806. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  807. package/src/chain/blocks/writeBlockInputToDb.ts +105 -101
  808. package/src/chain/bls/multithread/index.ts +7 -7
  809. package/src/chain/bls/multithread/jobItem.ts +3 -3
  810. package/src/chain/bls/singleThread.ts +5 -5
  811. package/src/chain/bls/utils.ts +8 -5
  812. package/src/chain/chain.ts +82 -45
  813. package/src/chain/emitter.ts +5 -5
  814. package/src/chain/errors/executionPayloadBid.ts +1 -1
  815. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  816. package/src/chain/errors/payloadAttestation.ts +1 -1
  817. package/src/chain/forkChoice/index.ts +39 -21
  818. package/src/chain/interface.ts +4 -11
  819. package/src/chain/lightClient/index.ts +4 -1
  820. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  821. package/src/chain/options.ts +1 -0
  822. package/src/chain/prepareNextSlot.ts +5 -5
  823. package/src/chain/produceBlock/computeNewStateRoot.ts +36 -3
  824. package/src/chain/produceBlock/produceBlockBody.ts +162 -13
  825. package/src/chain/regen/queued.ts +7 -2
  826. package/src/chain/regen/regen.ts +9 -3
  827. package/src/chain/seenCache/seenGossipBlockInput.ts +56 -18
  828. package/src/chain/validation/aggregateAndProof.ts +1 -1
  829. package/src/chain/validation/attestation.ts +14 -7
  830. package/src/chain/validation/attesterSlashing.ts +10 -1
  831. package/src/chain/validation/blobSidecar.ts +2 -2
  832. package/src/chain/validation/block.ts +9 -4
  833. package/src/chain/validation/dataColumnSidecar.ts +3 -6
  834. package/src/chain/validation/executionPayloadBid.ts +1 -2
  835. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  836. package/src/chain/validation/payloadAttestationMessage.ts +10 -3
  837. package/src/chain/validation/proposerSlashing.ts +1 -1
  838. package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
  839. package/src/db/beacon.ts +8 -0
  840. package/src/db/buckets.ts +3 -0
  841. package/src/db/index.ts +1 -0
  842. package/src/db/interface.ts +5 -0
  843. package/src/db/repositories/blockArchive.ts +1 -2
  844. package/src/db/repositories/dataColumnSidecar.ts +18 -3
  845. package/src/db/repositories/dataColumnSidecarArchive.ts +18 -3
  846. package/src/db/repositories/executionPayloadEnvelope.ts +26 -0
  847. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +32 -0
  848. package/src/db/repositories/index.ts +2 -0
  849. package/src/execution/engine/http.ts +3 -0
  850. package/src/metrics/metrics/beacon.ts +5 -0
  851. package/src/metrics/metrics/lodestar.ts +32 -10
  852. package/src/metrics/metrics.ts +8 -3
  853. package/src/monitoring/service.ts +3 -2
  854. package/src/network/core/networkCore.ts +3 -3
  855. package/src/network/core/networkCoreWorkerHandler.ts +3 -3
  856. package/src/network/core/types.ts +2 -2
  857. package/src/network/events.ts +2 -1
  858. package/src/network/gossip/encoding.ts +3 -3
  859. package/src/network/gossip/gossipsub.ts +86 -25
  860. package/src/network/gossip/interface.ts +6 -6
  861. package/src/network/gossip/scoringParameters.ts +4 -4
  862. package/src/network/gossip/topic.ts +2 -1
  863. package/src/network/interface.ts +7 -4
  864. package/src/network/libp2p/index.ts +8 -3
  865. package/src/network/network.ts +26 -7
  866. package/src/network/options.ts +3 -0
  867. package/src/network/peers/datastore.ts +13 -10
  868. package/src/network/peers/peerManager.ts +118 -54
  869. package/src/network/peers/utils/prioritizePeers.ts +3 -3
  870. package/src/network/processor/gossipHandlers.ts +19 -4
  871. package/src/network/processor/gossipValidatorFn.ts +2 -2
  872. package/src/network/processor/types.ts +1 -1
  873. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  874. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  875. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  876. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  877. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  878. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  879. package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +6 -1
  880. package/src/network/reqresp/score.ts +0 -1
  881. package/src/network/reqresp/utils/collect.ts +1 -1
  882. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  883. package/src/network/util.ts +2 -2
  884. package/src/node/nodejs.ts +8 -9
  885. package/src/sync/utils/downloadByRoot.ts +1 -1
  886. package/src/sync/utils/remoteSyncType.ts +1 -1
  887. package/src/util/blobs.ts +3 -3
  888. package/src/util/clock.ts +9 -4
  889. package/src/util/dataColumns.ts +37 -1
  890. package/src/util/multifork.ts +45 -0
  891. package/src/util/serializedCache.ts +10 -3
  892. package/src/util/workerEvents.ts +1 -1
@@ -1,18 +1,32 @@
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
- import {EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostElectra} from "@lodestar/params";
13
+ import {
14
+ BUILDER_INDEX_SELF_BUILD,
15
+ EFFECTIVE_BALANCE_INCREMENT,
16
+ ForkPostFulu,
17
+ GENESIS_SLOT,
18
+ SLOTS_PER_EPOCH,
19
+ isForkPostElectra,
20
+ isForkPostGloas,
21
+ } from "@lodestar/params";
9
22
  import {
10
23
  BeaconStateAllForks,
11
24
  BeaconStateElectra,
12
25
  CachedBeaconStateAllForks,
26
+ CachedBeaconStateGloas,
13
27
  EffectiveBalanceIncrements,
14
28
  EpochShuffling,
15
- Index2PubkeyCache,
29
+ PubkeyCache,
16
30
  computeAnchorCheckpoint,
17
31
  computeAttestationsRewards,
18
32
  computeBlockRewards,
@@ -28,6 +42,7 @@ import {
28
42
  BeaconBlock,
29
43
  BlindedBeaconBlock,
30
44
  BlindedBeaconBlockBody,
45
+ DataColumnSidecars,
31
46
  Epoch,
32
47
  Root,
33
48
  RootHex,
@@ -38,7 +53,7 @@ import {
38
53
  ValidatorIndex,
39
54
  Wei,
40
55
  deneb,
41
- fulu,
56
+ gloas,
42
57
  isBlindedBeaconBlock,
43
58
  phase0,
44
59
  rewards,
@@ -49,7 +64,7 @@ import {Logger, fromHex, gweiToWei, isErrorAborted, pruneSetToMax, sleep, toRoot
49
64
  import {ProcessShutdownCallback} from "@lodestar/validator";
50
65
  import {GENESIS_EPOCH, ZERO_HASH} from "../constants/index.js";
51
66
  import {IBeaconDb} from "../db/index.js";
52
- import {BLOB_SIDECARS_IN_WRAPPER_INDEX} from "../db/repositories/blobSidecars.ts";
67
+ import {BLOB_SIDECARS_IN_WRAPPER_INDEX} from "../db/repositories/blobSidecars.js";
53
68
  import {BuilderStatus} from "../execution/builder/http.js";
54
69
  import {IExecutionBuilder, IExecutionEngine} from "../execution/index.js";
55
70
  import {Metrics} from "../metrics/index.js";
@@ -60,15 +75,15 @@ import {CustodyConfig, getValidatorsCustodyRequirement} from "../util/dataColumn
60
75
  import {callInNextEventLoop} from "../util/eventLoop.js";
61
76
  import {ensureDir, writeIfNotExist} from "../util/file.js";
62
77
  import {isOptimisticBlock} from "../util/forkChoice.js";
63
- import {JobItemQueue} from "../util/queue/itemQueue.ts";
78
+ import {JobItemQueue} from "../util/queue/itemQueue.js";
64
79
  import {SerializedCache} from "../util/serializedCache.js";
65
- import {getSlotFromSignedBeaconBlockSerialized} from "../util/sszBytes.ts";
80
+ import {getSlotFromSignedBeaconBlockSerialized} from "../util/sszBytes.js";
66
81
  import {ArchiveStore} from "./archiveStore/archiveStore.js";
67
82
  import {CheckpointBalancesCache} from "./balancesCache.js";
68
83
  import {BeaconProposerCache} from "./beaconProposerCache.js";
69
84
  import {IBlockInput, isBlockInputBlobs, isBlockInputColumns} from "./blocks/blockInput/index.js";
70
85
  import {BlockProcessor, ImportBlockOpts} from "./blocks/index.js";
71
- import {persistBlockInputs} from "./blocks/writeBlockInputToDb.ts";
86
+ import {persistBlockInput} from "./blocks/writeBlockInputToDb.js";
72
87
  import {BlsMultiThreadWorkerPool, BlsSingleThreadVerifier, IBlsVerifier} from "./bls/index.js";
73
88
  import {ColumnReconstructionTracker} from "./ColumnReconstructionTracker.js";
74
89
  import {ChainEvent, ChainEventEmitter} from "./emitter.js";
@@ -87,8 +102,8 @@ import {
87
102
  } from "./opPools/index.js";
88
103
  import {IChainOptions} from "./options.js";
89
104
  import {PrepareNextSlotScheduler} from "./prepareNextSlot.js";
90
- import {computeNewStateRoot} from "./produceBlock/computeNewStateRoot.js";
91
- import {AssembledBlockType, BlockType, ProduceResult} from "./produceBlock/index.js";
105
+ import {computeEnvelopeStateRoot, computeNewStateRoot} from "./produceBlock/computeNewStateRoot.js";
106
+ import {AssembledBlockType, BlockType, ProduceFullGloas, ProduceResult} from "./produceBlock/index.js";
92
107
  import {BlockAttributes, produceBlockBody, produceCommonBlockBody} from "./produceBlock/produceBlockBody.js";
93
108
  import {QueuedStateRegenerator, RegenCaller} from "./regen/index.js";
94
109
  import {ReprocessController} from "./reprocess.js";
@@ -155,7 +170,7 @@ export class BeaconChain implements IBeaconChain {
155
170
  readonly lightClientServer?: LightClientServer;
156
171
  readonly reprocessController: ReprocessController;
157
172
  readonly archiveStore: ArchiveStore;
158
- readonly unfinalizedBlockWrites: JobItemQueue<[IBlockInput[]], void>;
173
+ readonly unfinalizedBlockWrites: JobItemQueue<[IBlockInput], void>;
159
174
 
160
175
  // Ops pool
161
176
  readonly attestationPool: AttestationPool;
@@ -182,8 +197,7 @@ export class BeaconChain implements IBeaconChain {
182
197
  readonly seenBlockAttesters = new SeenBlockAttesters();
183
198
 
184
199
  // Global state caches
185
- readonly pubkey2index: PubkeyIndexMap;
186
- readonly index2pubkey: Index2PubkeyCache;
200
+ readonly pubkeyCache: PubkeyCache;
187
201
 
188
202
  readonly beaconProposerCache: BeaconProposerCache;
189
203
  readonly checkpointBalancesCache: CheckpointBalancesCache;
@@ -229,8 +243,7 @@ export class BeaconChain implements IBeaconChain {
229
243
  {
230
244
  privateKey,
231
245
  config,
232
- pubkey2index,
233
- index2pubkey,
246
+ pubkeyCache,
234
247
  db,
235
248
  dbName,
236
249
  dataDir,
@@ -246,8 +259,7 @@ export class BeaconChain implements IBeaconChain {
246
259
  }: {
247
260
  privateKey: PrivateKey;
248
261
  config: BeaconConfig;
249
- pubkey2index: PubkeyIndexMap;
250
- index2pubkey: Index2PubkeyCache;
262
+ pubkeyCache: PubkeyCache;
251
263
  db: IBeaconDb;
252
264
  dbName: string;
253
265
  dataDir: string;
@@ -279,8 +291,8 @@ export class BeaconChain implements IBeaconChain {
279
291
  const emitter = new ChainEventEmitter();
280
292
  // by default, verify signatures on both main threads and worker threads
281
293
  const bls = opts.blsVerifyAllMainThread
282
- ? new BlsSingleThreadVerifier({metrics, index2pubkey})
283
- : new BlsMultiThreadWorkerPool(opts, {logger, metrics, index2pubkey});
294
+ ? new BlsSingleThreadVerifier({metrics, pubkeyCache})
295
+ : new BlsMultiThreadWorkerPool(opts, {logger, metrics, pubkeyCache});
284
296
 
285
297
  if (!clock) clock = new Clock({config, genesisTime: this.genesisTime, signal});
286
298
 
@@ -308,12 +320,14 @@ export class BeaconChain implements IBeaconChain {
308
320
 
309
321
  this.beaconProposerCache = new BeaconProposerCache(opts);
310
322
  this.checkpointBalancesCache = new CheckpointBalancesCache();
323
+ this.serializedCache = new SerializedCache();
311
324
  this.seenBlockInputCache = new SeenBlockInput({
312
325
  config,
313
326
  custodyConfig: this.custodyConfig,
314
327
  clock,
315
328
  chainEvents: emitter,
316
329
  signal,
330
+ serializedCache: this.serializedCache,
317
331
  metrics,
318
332
  logger,
319
333
  });
@@ -336,8 +350,7 @@ export class BeaconChain implements IBeaconChain {
336
350
  ]);
337
351
 
338
352
  // Global cache of validators pubkey/index mapping
339
- this.pubkey2index = pubkey2index;
340
- this.index2pubkey = index2pubkey;
353
+ this.pubkeyCache = pubkeyCache;
341
354
 
342
355
  const fileDataStore = opts.nHistoricalStatesFileDataStore ?? true;
343
356
  const blockStateCache = new FIFOBlockStateCache(this.opts, {metrics});
@@ -401,8 +414,6 @@ export class BeaconChain implements IBeaconChain {
401
414
  this.bls = bls;
402
415
  this.emitter = emitter;
403
416
 
404
- this.serializedCache = new SerializedCache();
405
-
406
417
  this.getBlobsTracker = new GetBlobsTracker({
407
418
  logger,
408
419
  executionEngine: this.executionEngine,
@@ -424,7 +435,7 @@ export class BeaconChain implements IBeaconChain {
424
435
  );
425
436
 
426
437
  this.unfinalizedBlockWrites = new JobItemQueue(
427
- persistBlockInputs.bind(this),
438
+ persistBlockInput.bind(this),
428
439
  {
429
440
  maxLength: DEFAULT_MAX_PENDING_UNFINALIZED_BLOCK_WRITES,
430
441
  signal,
@@ -595,7 +606,7 @@ export class BeaconChain implements IBeaconChain {
595
606
  ): Promise<{state: CachedBeaconStateAllForks | Uint8Array; executionOptimistic: boolean; finalized: boolean} | null> {
596
607
  if (opts?.allowRegen) {
597
608
  const state = await this.regen.getState(stateRoot, RegenCaller.restApi);
598
- const block = this.forkChoice.getBlock(state.latestBlockHeader.hashTreeRoot());
609
+ const block = this.forkChoice.getBlockDefaultStatus(state.latestBlockHeader.hashTreeRoot());
599
610
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
600
611
  return {
601
612
  state,
@@ -611,7 +622,7 @@ export class BeaconChain implements IBeaconChain {
611
622
  // TODO: This is very inneficient for debug requests of serialized content, since it deserializes to serialize again
612
623
  const cachedStateCtx = this.regen.getStateSync(stateRoot);
613
624
  if (cachedStateCtx) {
614
- const block = this.forkChoice.getBlock(cachedStateCtx.latestBlockHeader.hashTreeRoot());
625
+ const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
615
626
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
616
627
  return {
617
628
  state: cachedStateCtx,
@@ -645,7 +656,7 @@ export class BeaconChain implements IBeaconChain {
645
656
  // finalized or justified checkpoint states maynot be available with PersistentCheckpointStateCache, use getCheckpointStateOrBytes() api to get Uint8Array
646
657
  const cachedStateCtx = this.regen.getCheckpointStateSync(checkpoint);
647
658
  if (cachedStateCtx) {
648
- const block = this.forkChoice.getBlock(cachedStateCtx.latestBlockHeader.hashTreeRoot());
659
+ const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
649
660
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
650
661
  return {
651
662
  state: cachedStateCtx,
@@ -662,7 +673,7 @@ export class BeaconChain implements IBeaconChain {
662
673
  ): Promise<{state: CachedBeaconStateAllForks | Uint8Array; executionOptimistic: boolean; finalized: boolean} | null> {
663
674
  const cachedStateCtx = await this.regen.getCheckpointStateOrBytes(checkpoint);
664
675
  if (cachedStateCtx) {
665
- const block = this.forkChoice.getBlock(checkpoint.root);
676
+ const block = this.forkChoice.getBlockDefaultStatus(checkpoint.root);
666
677
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
667
678
  return {
668
679
  state: cachedStateCtx,
@@ -706,7 +717,7 @@ export class BeaconChain implements IBeaconChain {
706
717
  async getBlockByRoot(
707
718
  root: string
708
719
  ): Promise<{block: SignedBeaconBlock; executionOptimistic: boolean; finalized: boolean} | null> {
709
- const block = this.forkChoice.getBlockHex(root);
720
+ const block = this.forkChoice.getBlockHexDefaultStatus(root);
710
721
  if (block) {
711
722
  // Block found in fork-choice.
712
723
  // It may be in the block input cache, awaiting full DA reconstruction, check there first
@@ -730,7 +741,7 @@ export class BeaconChain implements IBeaconChain {
730
741
  async getSerializedBlockByRoot(
731
742
  root: string
732
743
  ): Promise<{block: Uint8Array; executionOptimistic: boolean; finalized: boolean; slot: Slot} | null> {
733
- const block = this.forkChoice.getBlockHex(root);
744
+ const block = this.forkChoice.getBlockHexDefaultStatus(root);
734
745
  if (block) {
735
746
  // Block found in fork-choice.
736
747
  // It may be in the block input cache, awaiting full DA reconstruction, check there first
@@ -808,7 +819,7 @@ export class BeaconChain implements IBeaconChain {
808
819
  return null;
809
820
  }
810
821
 
811
- async getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<fulu.DataColumnSidecars> {
822
+ async getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecars> {
812
823
  const blockInput = this.seenBlockInputCache.get(blockRootHex);
813
824
  if (blockInput) {
814
825
  if (!isBlockInputColumns(blockInput)) {
@@ -818,10 +829,10 @@ export class BeaconChain implements IBeaconChain {
818
829
  }
819
830
  const sidecarsUnfinalized = await this.db.dataColumnSidecar.values(fromHex(blockRootHex));
820
831
  if (sidecarsUnfinalized.length > 0) {
821
- return sidecarsUnfinalized;
832
+ return sidecarsUnfinalized as DataColumnSidecars;
822
833
  }
823
834
  const sidecarsFinalized = await this.db.dataColumnSidecarArchive.values(blockSlot);
824
- return sidecarsFinalized;
835
+ return sidecarsFinalized as DataColumnSidecars;
825
836
  }
826
837
 
827
838
  async getSerializedDataColumnSidecars(
@@ -843,7 +854,7 @@ export class BeaconChain implements IBeaconChain {
843
854
  if (serialized) {
844
855
  return serialized;
845
856
  }
846
- return ssz.fulu.DataColumnSidecar.serialize(sidecar);
857
+ return sszTypesFor(blockInput.forkName as ForkPostFulu).DataColumnSidecar.serialize(sidecar);
847
858
  });
848
859
  }
849
860
  const sidecarsUnfinalized = await this.db.dataColumnSidecar.getManyBinary(fromHex(blockRootHex), indices);
@@ -902,6 +913,7 @@ export class BeaconChain implements IBeaconChain {
902
913
  consensusBlockValue: Wei;
903
914
  shouldOverrideBuilder?: boolean;
904
915
  }> {
916
+ const fork = this.config.getForkName(slot);
905
917
  const state = await this.regen.getBlockSlotState(
906
918
  parentBlock,
907
919
  slot,
@@ -909,7 +921,7 @@ export class BeaconChain implements IBeaconChain {
909
921
  RegenCaller.produceBlock
910
922
  );
911
923
  const proposerIndex = state.epochCtx.getBeaconProposer(slot);
912
- const proposerPubKey = this.index2pubkey[proposerIndex].toBytes();
924
+ const proposerPubKey = this.pubkeyCache.getOrThrow(proposerIndex).toBytes();
913
925
 
914
926
  const {body, produceResult, executionPayloadValue, shouldOverrideBuilder} = await produceBlockBody.call(
915
927
  this,
@@ -930,7 +942,7 @@ export class BeaconChain implements IBeaconChain {
930
942
  // The hashtree root computed here for debug log will get cached and hence won't introduce additional delays
931
943
  const bodyRoot =
932
944
  produceResult.type === BlockType.Full
933
- ? this.config.getForkTypes(slot).BeaconBlockBody.hashTreeRoot(body)
945
+ ? sszTypesFor(fork).BeaconBlockBody.hashTreeRoot(body)
934
946
  : this.config
935
947
  .getPostBellatrixForkTypes(slot)
936
948
  .BlindedBeaconBlockBody.hashTreeRoot(body as BlindedBeaconBlockBody);
@@ -948,14 +960,33 @@ export class BeaconChain implements IBeaconChain {
948
960
  body,
949
961
  } as AssembledBlockType<T>;
950
962
 
951
- const {newStateRoot, proposerReward} = computeNewStateRoot(this.metrics, state, block);
963
+ const {newStateRoot, proposerReward, postState} = computeNewStateRoot(this.metrics, state, block);
952
964
  block.stateRoot = newStateRoot;
953
965
  const blockRoot =
954
966
  produceResult.type === BlockType.Full
955
- ? this.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block)
967
+ ? sszTypesFor(fork).BeaconBlock.hashTreeRoot(block)
956
968
  : this.config.getPostBellatrixForkTypes(slot).BlindedBeaconBlock.hashTreeRoot(block as BlindedBeaconBlock);
957
969
  const blockRootHex = toRootHex(blockRoot);
958
970
 
971
+ if (isForkPostGloas(fork)) {
972
+ // TODO GLOAS: we should retire BlockType post-gloas, may need a new enum for self vs non-self built
973
+ if (produceResult.type !== BlockType.Full) {
974
+ throw Error(`Unexpected block type=${produceResult.type} for post-gloas fork=${fork}`);
975
+ }
976
+
977
+ const gloasResult = produceResult as ProduceFullGloas;
978
+ const envelope: gloas.ExecutionPayloadEnvelope = {
979
+ payload: gloasResult.executionPayload,
980
+ executionRequests: gloasResult.executionRequests,
981
+ builderIndex: BUILDER_INDEX_SELF_BUILD,
982
+ beaconBlockRoot: blockRoot,
983
+ slot,
984
+ stateRoot: ZERO_HASH,
985
+ };
986
+ const envelopeStateRoot = computeEnvelopeStateRoot(this.metrics, postState as CachedBeaconStateGloas, envelope);
987
+ gloasResult.envelopeStateRoot = envelopeStateRoot;
988
+ }
989
+
959
990
  // Track the produced block for consensus broadcast validations, later validation, etc.
960
991
  this.blockProductionCache.set(blockRootHex, produceResult);
961
992
  this.metrics?.blockProductionCacheSize.set(this.blockProductionCache.size);
@@ -1161,7 +1192,7 @@ export class BeaconChain implements IBeaconChain {
1161
1192
  * @param blockState state that declares justified checkpoint `checkpoint`
1162
1193
  */
1163
1194
  private justifiedBalancesGetter(
1164
- checkpoint: CheckpointWithHex,
1195
+ checkpoint: CheckpointWithPayloadStatus,
1165
1196
  blockState: CachedBeaconStateAllForks
1166
1197
  ): EffectiveBalanceIncrements {
1167
1198
  this.metrics?.balancesCache.requests.inc();
@@ -1200,7 +1231,7 @@ export class BeaconChain implements IBeaconChain {
1200
1231
  * @param blockState state that declares justified checkpoint `checkpoint`
1201
1232
  */
1202
1233
  private closestJustifiedBalancesStateToCheckpoint(
1203
- checkpoint: CheckpointWithHex,
1234
+ checkpoint: CheckpointWithPayloadStatus,
1204
1235
  blockState: CachedBeaconStateAllForks
1205
1236
  ): {state: CachedBeaconStateAllForks; stateId: string; shouldWarn: boolean} {
1206
1237
  const state = this.regen.getCheckpointStateSync(checkpoint);
@@ -1214,7 +1245,10 @@ export class BeaconChain implements IBeaconChain {
1214
1245
  }
1215
1246
 
1216
1247
  // Find a state in the same branch of checkpoint at same epoch. Balances should exactly the same
1217
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex)) {
1248
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendants(
1249
+ checkpoint.rootHex,
1250
+ checkpoint.payloadStatus
1251
+ )) {
1218
1252
  if (computeEpochAtSlot(descendantBlock.slot) === checkpoint.epoch) {
1219
1253
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
1220
1254
  if (descendantBlockState) {
@@ -1230,7 +1264,10 @@ export class BeaconChain implements IBeaconChain {
1230
1264
 
1231
1265
  // Find a state in the same branch of checkpoint at a latter epoch. Balances are not the same, but should be close
1232
1266
  // Note: must call .forwardIterateDescendants() again since nodes are not sorted
1233
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex)) {
1267
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendants(
1268
+ checkpoint.rootHex,
1269
+ checkpoint.payloadStatus
1270
+ )) {
1234
1271
  if (computeEpochAtSlot(descendantBlock.slot) > checkpoint.epoch) {
1235
1272
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
1236
1273
  if (descendantBlockState) {
@@ -1506,7 +1543,7 @@ export class BeaconChain implements IBeaconChain {
1506
1543
  throw Error(`State is not in cache for slot ${slot}`);
1507
1544
  }
1508
1545
 
1509
- const rewards = await computeAttestationsRewards(this.config, this.pubkey2index, cachedState, validatorIds);
1546
+ const rewards = await computeAttestationsRewards(this.config, this.pubkeyCache, cachedState, validatorIds);
1510
1547
 
1511
1548
  return {rewards, executionOptimistic, finalized};
1512
1549
  }
@@ -1523,6 +1560,6 @@ export class BeaconChain implements IBeaconChain {
1523
1560
 
1524
1561
  preState = processSlots(preState, block.slot); // Dial preState's slot to block.slot
1525
1562
 
1526
- return computeSyncCommitteeRewards(this.config, this.index2pubkey, block, preState, validatorIds);
1563
+ return computeSyncCommitteeRewards(this.config, this.pubkeyCache, block, preState, validatorIds);
1527
1564
  }
1528
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 {RootHex, deneb, fulu, 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: fulu.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
 
@@ -1,16 +1,11 @@
1
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
2
1
  import {CompositeTypeAny, TreeView, Type} from "@chainsafe/ssz";
3
2
  import {BeaconConfig} from "@lodestar/config";
4
3
  import {CheckpointWithHex, IForkChoice, ProtoBlock} from "@lodestar/fork-choice";
5
- import {
6
- BeaconStateAllForks,
7
- CachedBeaconStateAllForks,
8
- EpochShuffling,
9
- Index2PubkeyCache,
10
- } from "@lodestar/state-transition";
4
+ import {BeaconStateAllForks, CachedBeaconStateAllForks, EpochShuffling, PubkeyCache} from "@lodestar/state-transition";
11
5
  import {
12
6
  BeaconBlock,
13
7
  BlindedBeaconBlock,
8
+ DataColumnSidecars,
14
9
  Epoch,
15
10
  Root,
16
11
  RootHex,
@@ -23,7 +18,6 @@ import {
23
18
  altair,
24
19
  capella,
25
20
  deneb,
26
- fulu,
27
21
  phase0,
28
22
  rewards,
29
23
  } from "@lodestar/types";
@@ -117,8 +111,7 @@ export interface IBeaconChain {
117
111
  readonly regen: IStateRegenerator;
118
112
  readonly lightClientServer?: LightClientServer;
119
113
  readonly reprocessController: ReprocessController;
120
- readonly pubkey2index: PubkeyIndexMap;
121
- readonly index2pubkey: Index2PubkeyCache;
114
+ readonly pubkeyCache: PubkeyCache;
122
115
  readonly archiveStore: IArchiveStore;
123
116
 
124
117
  // Ops pool
@@ -224,7 +217,7 @@ export interface IBeaconChain {
224
217
  ): Promise<{block: SignedBeaconBlock; executionOptimistic: boolean; finalized: boolean} | null>;
225
218
  getBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<deneb.BlobSidecars | null>;
226
219
  getSerializedBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
227
- getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<fulu.DataColumnSidecars>;
220
+ getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecars>;
228
221
  getSerializedDataColumnSidecars(
229
222
  blockSlot: Slot,
230
223
  blockRootHex: string,
@@ -355,7 +355,10 @@ export class LightClientServer {
355
355
  // Signature data
356
356
  const update = await this.db.bestLightClientUpdate.get(period);
357
357
  if (!update) {
358
- throw Error(`No partialUpdate available for period ${period}`);
358
+ throw new LightClientServerError(
359
+ {code: LightClientServerErrorCode.RESOURCE_UNAVAILABLE},
360
+ `No partialUpdate available for period ${period}`
361
+ );
359
362
  }
360
363
  return update;
361
364
  }
@@ -864,7 +864,7 @@ function isValidShuffling(
864
864
  // attestation's shuffling is the same as the current state's.
865
865
  // To account for skipped slots, find the first block at *or before* the pivot slot.
866
866
  const beaconBlockRootHex = blockRootHex;
867
- const beaconBlock = forkChoice.getBlockHex(beaconBlockRootHex);
867
+ const beaconBlock = forkChoice.getBlockHexDefaultStatus(beaconBlockRootHex);
868
868
  if (!beaconBlock) {
869
869
  return InvalidAttestationData.BlockNotInForkChoice;
870
870
  }
@@ -27,6 +27,7 @@ export type IChainOptions = BlockProcessOpts &
27
27
  blsVerifyAllMainThread?: boolean;
28
28
  blsVerifyAllMultiThread?: boolean;
29
29
  blacklistedBlocks?: string[];
30
+ // TODO GLOAS: add similar option for execution payload envelopes?
30
31
  persistProducedBlocks?: boolean;
31
32
  persistInvalidSszObjects?: boolean;
32
33
  persistInvalidSszObjectsDir?: string;