@lodestar/beacon-node 1.42.0-dev.4411584fd8 → 1.42.0-dev.4e640bd2f7

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 (431) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +49 -18
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.js +1 -1
  5. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  6. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  7. package/lib/api/impl/beacon/state/index.js +27 -32
  8. package/lib/api/impl/beacon/state/index.js.map +1 -1
  9. package/lib/api/impl/beacon/state/utils.d.ts +4 -4
  10. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  11. package/lib/api/impl/beacon/state/utils.js +7 -10
  12. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  13. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  14. package/lib/api/impl/lodestar/index.js +4 -6
  15. package/lib/api/impl/lodestar/index.js.map +1 -1
  16. package/lib/api/impl/proof/index.d.ts.map +1 -1
  17. package/lib/api/impl/proof/index.js +2 -6
  18. package/lib/api/impl/proof/index.js.map +1 -1
  19. package/lib/api/impl/validator/index.d.ts.map +1 -1
  20. package/lib/api/impl/validator/index.js +27 -27
  21. package/lib/api/impl/validator/index.js.map +1 -1
  22. package/lib/api/impl/validator/utils.d.ts +2 -2
  23. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  24. package/lib/api/impl/validator/utils.js +3 -3
  25. package/lib/api/impl/validator/utils.js.map +1 -1
  26. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  27. package/lib/chain/archiveStore/archiveStore.js +1 -0
  28. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  29. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +3 -7
  30. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  31. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +8 -26
  32. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  33. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts +2 -2
  34. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  35. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -0
  36. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  37. package/lib/chain/archiveStore/historicalState/types.d.ts +2 -0
  38. package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
  39. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  40. package/lib/chain/archiveStore/historicalState/worker.js +1 -3
  41. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  42. package/lib/chain/archiveStore/interface.d.ts +1 -0
  43. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  44. package/lib/chain/balancesCache.d.ts +2 -2
  45. package/lib/chain/balancesCache.d.ts.map +1 -1
  46. package/lib/chain/balancesCache.js +4 -4
  47. package/lib/chain/balancesCache.js.map +1 -1
  48. package/lib/chain/blocks/blockInput/types.d.ts +4 -3
  49. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  50. package/lib/chain/blocks/blockInput/types.js +1 -0
  51. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  52. package/lib/chain/blocks/importBlock.d.ts +3 -3
  53. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  54. package/lib/chain/blocks/importBlock.js +39 -23
  55. package/lib/chain/blocks/importBlock.js.map +1 -1
  56. package/lib/chain/blocks/importExecutionPayload.d.ts +50 -0
  57. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -0
  58. package/lib/chain/blocks/importExecutionPayload.js +186 -0
  59. package/lib/chain/blocks/importExecutionPayload.js.map +1 -0
  60. package/lib/chain/blocks/index.d.ts.map +1 -1
  61. package/lib/chain/blocks/index.js +3 -2
  62. package/lib/chain/blocks/index.js.map +1 -1
  63. package/lib/chain/blocks/payloadEnvelopeInput/index.d.ts +3 -0
  64. package/lib/chain/blocks/payloadEnvelopeInput/index.d.ts.map +1 -0
  65. package/lib/chain/blocks/payloadEnvelopeInput/index.js +3 -0
  66. package/lib/chain/blocks/payloadEnvelopeInput/index.js.map +1 -0
  67. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +80 -0
  68. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -0
  69. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +248 -0
  70. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -0
  71. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +29 -0
  72. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -0
  73. package/lib/chain/blocks/payloadEnvelopeInput/types.js +11 -0
  74. package/lib/chain/blocks/payloadEnvelopeInput/types.js.map +1 -0
  75. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +15 -0
  76. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -0
  77. package/lib/chain/blocks/payloadEnvelopeProcessor.js +46 -0
  78. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -0
  79. package/lib/chain/blocks/types.d.ts +28 -15
  80. package/lib/chain/blocks/types.d.ts.map +1 -1
  81. package/lib/chain/blocks/types.js.map +1 -1
  82. package/lib/chain/blocks/utils/checkpoint.d.ts +2 -2
  83. package/lib/chain/blocks/utils/checkpoint.d.ts.map +1 -1
  84. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  85. package/lib/chain/blocks/verifyBlock.d.ts +2 -2
  86. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  87. package/lib/chain/blocks/verifyBlock.js +4 -4
  88. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  89. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +5 -5
  90. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  91. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +4 -4
  92. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  93. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -2
  94. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  95. package/lib/chain/blocks/verifyBlocksSignatures.js +1 -1
  96. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  97. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +3 -3
  98. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  99. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +3 -3
  100. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  101. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +12 -0
  102. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts.map +1 -0
  103. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +40 -0
  104. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js.map +1 -0
  105. package/lib/chain/chain.d.ts +19 -14
  106. package/lib/chain/chain.d.ts.map +1 -1
  107. package/lib/chain/chain.js +75 -42
  108. package/lib/chain/chain.js.map +1 -1
  109. package/lib/chain/emitter.d.ts +2 -2
  110. package/lib/chain/emitter.d.ts.map +1 -1
  111. package/lib/chain/errors/blockError.d.ts +4 -4
  112. package/lib/chain/errors/blockError.d.ts.map +1 -1
  113. package/lib/chain/errors/executionPayloadEnvelope.d.ts +12 -2
  114. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  115. package/lib/chain/errors/executionPayloadEnvelope.js +3 -1
  116. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  117. package/lib/chain/forkChoice/index.d.ts +4 -4
  118. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  119. package/lib/chain/forkChoice/index.js +27 -33
  120. package/lib/chain/forkChoice/index.js.map +1 -1
  121. package/lib/chain/initState.d.ts +2 -2
  122. package/lib/chain/initState.d.ts.map +1 -1
  123. package/lib/chain/initState.js +1 -1
  124. package/lib/chain/initState.js.map +1 -1
  125. package/lib/chain/interface.d.ts +17 -15
  126. package/lib/chain/interface.d.ts.map +1 -1
  127. package/lib/chain/lightClient/index.d.ts +2 -2
  128. package/lib/chain/lightClient/index.d.ts.map +1 -1
  129. package/lib/chain/lightClient/index.js +4 -4
  130. package/lib/chain/lightClient/index.js.map +1 -1
  131. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +6 -6
  132. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  133. package/lib/chain/opPools/aggregatedAttestationPool.js +10 -13
  134. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  135. package/lib/chain/opPools/opPool.d.ts +3 -3
  136. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  137. package/lib/chain/opPools/opPool.js +7 -7
  138. package/lib/chain/opPools/opPool.js.map +1 -1
  139. package/lib/chain/opPools/utils.d.ts +2 -2
  140. package/lib/chain/opPools/utils.d.ts.map +1 -1
  141. package/lib/chain/opPools/utils.js +1 -1
  142. package/lib/chain/opPools/utils.js.map +1 -1
  143. package/lib/chain/options.d.ts +1 -0
  144. package/lib/chain/options.d.ts.map +1 -1
  145. package/lib/chain/options.js +1 -0
  146. package/lib/chain/options.js.map +1 -1
  147. package/lib/chain/prepareNextSlot.d.ts +2 -2
  148. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  149. package/lib/chain/prepareNextSlot.js +3 -3
  150. package/lib/chain/prepareNextSlot.js.map +1 -1
  151. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +4 -4
  152. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  153. package/lib/chain/produceBlock/computeNewStateRoot.js +8 -4
  154. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  155. package/lib/chain/produceBlock/produceBlockBody.d.ts +5 -5
  156. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  157. package/lib/chain/produceBlock/produceBlockBody.js +12 -16
  158. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  159. package/lib/chain/regen/interface.d.ts +15 -13
  160. package/lib/chain/regen/interface.d.ts.map +1 -1
  161. package/lib/chain/regen/interface.js +2 -0
  162. package/lib/chain/regen/interface.js.map +1 -1
  163. package/lib/chain/regen/queued.d.ts +14 -14
  164. package/lib/chain/regen/queued.d.ts.map +1 -1
  165. package/lib/chain/regen/queued.js.map +1 -1
  166. package/lib/chain/regen/regen.d.ts +6 -5
  167. package/lib/chain/regen/regen.d.ts.map +1 -1
  168. package/lib/chain/regen/regen.js +6 -6
  169. package/lib/chain/regen/regen.js.map +1 -1
  170. package/lib/chain/seenCache/index.d.ts +1 -1
  171. package/lib/chain/seenCache/index.d.ts.map +1 -1
  172. package/lib/chain/seenCache/index.js +1 -1
  173. package/lib/chain/seenCache/index.js.map +1 -1
  174. package/lib/chain/seenCache/seenGossipBlockInput.js +2 -2
  175. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  176. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +38 -0
  177. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -0
  178. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +76 -0
  179. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -0
  180. package/lib/chain/serializeState.d.ts +2 -2
  181. package/lib/chain/serializeState.d.ts.map +1 -1
  182. package/lib/chain/serializeState.js +1 -1
  183. package/lib/chain/serializeState.js.map +1 -1
  184. package/lib/chain/shufflingCache.d.ts +2 -2
  185. package/lib/chain/shufflingCache.d.ts.map +1 -1
  186. package/lib/chain/shufflingCache.js +3 -4
  187. package/lib/chain/shufflingCache.js.map +1 -1
  188. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +6 -6
  189. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  190. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  191. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +11 -11
  192. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  193. package/lib/chain/stateCache/persistentCheckpointsCache.js +12 -16
  194. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  195. package/lib/chain/stateCache/types.d.ts +14 -14
  196. package/lib/chain/stateCache/types.d.ts.map +1 -1
  197. package/lib/chain/stateCache/types.js.map +1 -1
  198. package/lib/chain/validation/attesterSlashing.js +3 -3
  199. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  200. package/lib/chain/validation/blobSidecar.js +1 -1
  201. package/lib/chain/validation/blobSidecar.js.map +1 -1
  202. package/lib/chain/validation/block.d.ts.map +1 -1
  203. package/lib/chain/validation/block.js +3 -3
  204. package/lib/chain/validation/block.js.map +1 -1
  205. package/lib/chain/validation/blsToExecutionChange.js +2 -2
  206. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  207. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  208. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  209. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  210. package/lib/chain/validation/executionPayloadBid.js +4 -4
  211. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  212. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  213. package/lib/chain/validation/executionPayloadEnvelope.js +29 -19
  214. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  215. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  216. package/lib/chain/validation/payloadAttestationMessage.js +1 -2
  217. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  218. package/lib/chain/validation/proposerSlashing.js +1 -1
  219. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  220. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -2
  221. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  222. package/lib/chain/validation/signatureSets/contributionAndProof.js +1 -1
  223. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  224. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -2
  225. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  226. package/lib/chain/validation/signatureSets/syncCommittee.js +1 -1
  227. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  228. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +2 -2
  229. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  230. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  231. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -2
  232. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  233. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +1 -1
  234. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  235. package/lib/chain/validation/syncCommittee.d.ts +4 -4
  236. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  237. package/lib/chain/validation/syncCommittee.js +13 -12
  238. package/lib/chain/validation/syncCommittee.js.map +1 -1
  239. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  240. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  241. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  242. package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
  243. package/lib/chain/validation/voluntaryExit.js +3 -3
  244. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  245. package/lib/chain/validatorMonitor.d.ts +5 -4
  246. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  247. package/lib/chain/validatorMonitor.js +12 -7
  248. package/lib/chain/validatorMonitor.js.map +1 -1
  249. package/lib/metrics/metrics/lodestar.d.ts +40 -4
  250. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  251. package/lib/metrics/metrics/lodestar.js +93 -15
  252. package/lib/metrics/metrics/lodestar.js.map +1 -1
  253. package/lib/network/gossip/encoding.d.ts.map +1 -1
  254. package/lib/network/gossip/encoding.js +15 -0
  255. package/lib/network/gossip/encoding.js.map +1 -1
  256. package/lib/network/interface.d.ts +4 -2
  257. package/lib/network/interface.d.ts.map +1 -1
  258. package/lib/network/libp2p/index.d.ts.map +1 -1
  259. package/lib/network/libp2p/index.js +22 -11
  260. package/lib/network/libp2p/index.js.map +1 -1
  261. package/lib/network/network.d.ts +4 -2
  262. package/lib/network/network.d.ts.map +1 -1
  263. package/lib/network/network.js +9 -3
  264. package/lib/network/network.js.map +1 -1
  265. package/lib/network/options.d.ts.map +1 -1
  266. package/lib/network/options.js +7 -2
  267. package/lib/network/options.js.map +1 -1
  268. package/lib/network/processor/extractSlotRootFns.d.ts +1 -1
  269. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  270. package/lib/network/processor/extractSlotRootFns.js +15 -5
  271. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  272. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  273. package/lib/network/processor/gossipHandlers.js +49 -12
  274. package/lib/network/processor/gossipHandlers.js.map +1 -1
  275. package/lib/network/processor/index.d.ts +12 -7
  276. package/lib/network/processor/index.d.ts.map +1 -1
  277. package/lib/network/processor/index.js +99 -78
  278. package/lib/network/processor/index.js.map +1 -1
  279. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  280. package/lib/network/reqresp/ReqRespBeaconNode.js +9 -0
  281. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  282. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts +8 -0
  283. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -0
  284. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +69 -0
  285. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -0
  286. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts +6 -0
  287. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts.map +1 -0
  288. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +28 -0
  289. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -0
  290. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  291. package/lib/network/reqresp/handlers/index.js +11 -1
  292. package/lib/network/reqresp/handlers/index.js.map +1 -1
  293. package/lib/network/reqresp/protocols.d.ts +2 -0
  294. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  295. package/lib/network/reqresp/protocols.js +10 -0
  296. package/lib/network/reqresp/protocols.js.map +1 -1
  297. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  298. package/lib/network/reqresp/rateLimit.js +8 -0
  299. package/lib/network/reqresp/rateLimit.js.map +1 -1
  300. package/lib/network/reqresp/score.d.ts.map +1 -1
  301. package/lib/network/reqresp/score.js +2 -0
  302. package/lib/network/reqresp/score.js.map +1 -1
  303. package/lib/network/reqresp/types.d.ts +8 -2
  304. package/lib/network/reqresp/types.d.ts.map +1 -1
  305. package/lib/network/reqresp/types.js +7 -1
  306. package/lib/network/reqresp/types.js.map +1 -1
  307. package/lib/node/nodejs.d.ts +2 -2
  308. package/lib/node/nodejs.d.ts.map +1 -1
  309. package/lib/node/nodejs.js +1 -4
  310. package/lib/node/nodejs.js.map +1 -1
  311. package/lib/node/notifier.d.ts.map +1 -1
  312. package/lib/node/notifier.js +3 -3
  313. package/lib/node/notifier.js.map +1 -1
  314. package/lib/sync/backfill/backfill.d.ts +2 -2
  315. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  316. package/lib/sync/backfill/backfill.js +2 -2
  317. package/lib/sync/backfill/backfill.js.map +1 -1
  318. package/lib/sync/unknownBlock.d.ts +3 -9
  319. package/lib/sync/unknownBlock.d.ts.map +1 -1
  320. package/lib/sync/unknownBlock.js +8 -41
  321. package/lib/sync/unknownBlock.js.map +1 -1
  322. package/lib/util/sszBytes.d.ts +4 -1
  323. package/lib/util/sszBytes.d.ts.map +1 -1
  324. package/lib/util/sszBytes.js +69 -12
  325. package/lib/util/sszBytes.js.map +1 -1
  326. package/lib/util/types.d.ts +2 -0
  327. package/lib/util/types.d.ts.map +1 -1
  328. package/lib/util/types.js +1 -0
  329. package/lib/util/types.js.map +1 -1
  330. package/package.json +16 -16
  331. package/src/api/impl/beacon/blocks/index.ts +52 -19
  332. package/src/api/impl/beacon/pool/index.ts +1 -1
  333. package/src/api/impl/beacon/state/index.ts +29 -41
  334. package/src/api/impl/beacon/state/utils.ts +11 -25
  335. package/src/api/impl/lodestar/index.ts +4 -8
  336. package/src/api/impl/proof/index.ts +2 -9
  337. package/src/api/impl/validator/index.ts +29 -41
  338. package/src/api/impl/validator/utils.ts +4 -7
  339. package/src/chain/archiveStore/archiveStore.ts +1 -0
  340. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -39
  341. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +2 -1
  342. package/src/chain/archiveStore/historicalState/types.ts +2 -0
  343. package/src/chain/archiveStore/historicalState/worker.ts +1 -4
  344. package/src/chain/archiveStore/interface.ts +1 -0
  345. package/src/chain/balancesCache.ts +5 -11
  346. package/src/chain/blocks/blockInput/types.ts +4 -3
  347. package/src/chain/blocks/importBlock.ts +59 -27
  348. package/src/chain/blocks/importExecutionPayload.ts +267 -0
  349. package/src/chain/blocks/index.ts +3 -2
  350. package/src/chain/blocks/payloadEnvelopeInput/index.ts +2 -0
  351. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +336 -0
  352. package/src/chain/blocks/payloadEnvelopeInput/types.ts +33 -0
  353. package/src/chain/blocks/payloadEnvelopeProcessor.ts +61 -0
  354. package/src/chain/blocks/types.ts +34 -15
  355. package/src/chain/blocks/utils/checkpoint.ts +2 -2
  356. package/src/chain/blocks/verifyBlock.ts +5 -10
  357. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -14
  358. package/src/chain/blocks/verifyBlocksSignatures.ts +3 -3
  359. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -8
  360. package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +55 -0
  361. package/src/chain/chain.ts +112 -70
  362. package/src/chain/emitter.ts +2 -2
  363. package/src/chain/errors/blockError.ts +4 -4
  364. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  365. package/src/chain/forkChoice/index.ts +33 -52
  366. package/src/chain/initState.ts +7 -2
  367. package/src/chain/interface.ts +18 -16
  368. package/src/chain/lightClient/index.ts +9 -22
  369. package/src/chain/opPools/aggregatedAttestationPool.ts +15 -21
  370. package/src/chain/opPools/opPool.ts +13 -14
  371. package/src/chain/opPools/utils.ts +3 -3
  372. package/src/chain/options.ts +2 -0
  373. package/src/chain/prepareNextSlot.ts +6 -8
  374. package/src/chain/produceBlock/computeNewStateRoot.ts +11 -10
  375. package/src/chain/produceBlock/produceBlockBody.ts +22 -49
  376. package/src/chain/regen/interface.ts +15 -17
  377. package/src/chain/regen/queued.ts +16 -20
  378. package/src/chain/regen/regen.ts +16 -17
  379. package/src/chain/seenCache/index.ts +1 -1
  380. package/src/chain/seenCache/seenGossipBlockInput.ts +2 -2
  381. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +106 -0
  382. package/src/chain/serializeState.ts +3 -3
  383. package/src/chain/shufflingCache.ts +5 -7
  384. package/src/chain/stateCache/fifoBlockStateCache.ts +7 -7
  385. package/src/chain/stateCache/persistentCheckpointsCache.ts +27 -42
  386. package/src/chain/stateCache/types.ts +14 -18
  387. package/src/chain/validation/attesterSlashing.ts +3 -3
  388. package/src/chain/validation/blobSidecar.ts +1 -1
  389. package/src/chain/validation/block.ts +2 -4
  390. package/src/chain/validation/blsToExecutionChange.ts +2 -2
  391. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  392. package/src/chain/validation/executionPayloadBid.ts +3 -7
  393. package/src/chain/validation/executionPayloadEnvelope.ts +36 -29
  394. package/src/chain/validation/payloadAttestationMessage.ts +2 -4
  395. package/src/chain/validation/proposerSlashing.ts +1 -1
  396. package/src/chain/validation/signatureSets/contributionAndProof.ts +2 -7
  397. package/src/chain/validation/signatureSets/syncCommittee.ts +2 -7
  398. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +2 -2
  399. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -7
  400. package/src/chain/validation/syncCommittee.ts +21 -20
  401. package/src/chain/validation/syncCommitteeContributionAndProof.ts +5 -10
  402. package/src/chain/validation/voluntaryExit.ts +3 -8
  403. package/src/chain/validatorMonitor.ts +22 -11
  404. package/src/metrics/metrics/lodestar.ts +100 -19
  405. package/src/network/gossip/encoding.ts +16 -0
  406. package/src/network/interface.ts +15 -2
  407. package/src/network/libp2p/index.ts +24 -13
  408. package/src/network/network.ts +32 -4
  409. package/src/network/options.ts +7 -2
  410. package/src/network/processor/extractSlotRootFns.ts +19 -6
  411. package/src/network/processor/gossipHandlers.ts +56 -11
  412. package/src/network/processor/index.ts +110 -89
  413. package/src/network/reqresp/ReqRespBeaconNode.ts +13 -0
  414. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +94 -0
  415. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +43 -0
  416. package/src/network/reqresp/handlers/index.ts +12 -0
  417. package/src/network/reqresp/protocols.ts +12 -0
  418. package/src/network/reqresp/rateLimit.ts +18 -0
  419. package/src/network/reqresp/score.ts +2 -0
  420. package/src/network/reqresp/types.ts +13 -0
  421. package/src/node/nodejs.ts +3 -5
  422. package/src/node/notifier.ts +4 -10
  423. package/src/sync/backfill/backfill.ts +3 -3
  424. package/src/sync/unknownBlock.ts +10 -50
  425. package/src/util/sszBytes.ts +90 -10
  426. package/src/util/types.ts +6 -0
  427. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +0 -15
  428. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +0 -1
  429. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +0 -28
  430. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +0 -1
  431. package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +0 -34
@@ -0,0 +1,80 @@
1
+ import { DataColumnSidecars, RootHex, Slot, ValidatorIndex, deneb, gloas } from "@lodestar/types";
2
+ import { VersionedHashes } from "../../../execution/index.js";
3
+ import { AddPayloadEnvelopeProps, ColumnWithSource, CreateFromBlockProps, SourceMeta } from "./types.js";
4
+ export type PayloadEnvelopeInputState = {
5
+ hasPayload: false;
6
+ hasAllData: false;
7
+ hasComputedAllData: false;
8
+ } | {
9
+ hasPayload: false;
10
+ hasAllData: true;
11
+ hasComputedAllData: boolean;
12
+ } | {
13
+ hasPayload: true;
14
+ hasAllData: false;
15
+ hasComputedAllData: false;
16
+ payloadEnvelope: gloas.SignedExecutionPayloadEnvelope;
17
+ payloadEnvelopeSource: SourceMeta;
18
+ } | {
19
+ hasPayload: true;
20
+ hasAllData: true;
21
+ hasComputedAllData: boolean;
22
+ payloadEnvelope: gloas.SignedExecutionPayloadEnvelope;
23
+ payloadEnvelopeSource: SourceMeta;
24
+ timeCompleteSec: number;
25
+ };
26
+ /**
27
+ * Tracks bid + payload envelope + data columns for a Gloas block.
28
+ *
29
+ * Created during block import from signedExecutionPayloadBid in block body.
30
+ * Always has bid (required for creation).
31
+ *
32
+ * Completion requires: payload envelope + all sampled columns
33
+ */
34
+ export declare class PayloadEnvelopeInput {
35
+ readonly blockRootHex: RootHex;
36
+ readonly slot: Slot;
37
+ readonly proposerIndex: ValidatorIndex;
38
+ readonly bid: gloas.ExecutionPayloadBid;
39
+ readonly versionedHashes: VersionedHashes;
40
+ private columnsCache;
41
+ private readonly sampledColumns;
42
+ private readonly custodyColumns;
43
+ private timeCreatedSec;
44
+ private readonly payloadEnvelopeDataPromise;
45
+ private readonly columnsDataPromise;
46
+ state: PayloadEnvelopeInputState;
47
+ private constructor();
48
+ static createFromBlock(props: CreateFromBlockProps): PayloadEnvelopeInput;
49
+ getBid(): gloas.ExecutionPayloadBid;
50
+ getBuilderIndex(): ValidatorIndex;
51
+ getBlockHashHex(): RootHex;
52
+ getBlobKzgCommitments(): deneb.BlobKzgCommitments;
53
+ addPayloadEnvelope(props: AddPayloadEnvelopeProps): void;
54
+ addColumn(columnWithSource: ColumnWithSource): void;
55
+ getVersionedHashes(): VersionedHashes;
56
+ hasPayloadEnvelope(): boolean;
57
+ getPayloadEnvelope(): gloas.SignedExecutionPayloadEnvelope;
58
+ getPayloadEnvelopeSource(): SourceMeta;
59
+ getSampledColumns(): gloas.DataColumnSidecars;
60
+ getSampledColumnsWithSource(): ColumnWithSource[];
61
+ getCustodyColumns(): gloas.DataColumnSidecars;
62
+ hasComputedAllData(): boolean;
63
+ waitForComputedAllData(timeout: number, signal?: AbortSignal): Promise<DataColumnSidecars>;
64
+ getTimeCreated(): number;
65
+ getTimeComplete(): number;
66
+ isComplete(): boolean;
67
+ waitForData(): Promise<gloas.SignedExecutionPayloadEnvelope>;
68
+ getSerializedCacheKeys(): object[];
69
+ getLogMeta(): {
70
+ slot: number;
71
+ blockRoot: string;
72
+ hasPayload: boolean;
73
+ hasAllData: boolean;
74
+ hasComputedAllData: boolean;
75
+ isComplete: boolean;
76
+ columnsCount: number;
77
+ sampledColumnsCount: number;
78
+ };
79
+ }
80
+ //# sourceMappingURL=payloadEnvelopeInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadEnvelopeInput.d.ts","sourceRoot":"","sources":["../../../../src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,248 @@
1
+ import { NUMBER_OF_COLUMNS } from "@lodestar/params";
2
+ import { toRootHex, withTimeout } from "@lodestar/utils";
3
+ import { kzgCommitmentToVersionedHash } from "../../../util/blobs.js";
4
+ function createPromise() {
5
+ let resolve;
6
+ let reject;
7
+ const promise = new Promise((_resolve, _reject) => {
8
+ resolve = _resolve;
9
+ reject = _reject;
10
+ });
11
+ return { promise, resolve, reject };
12
+ }
13
+ /**
14
+ * Tracks bid + payload envelope + data columns for a Gloas block.
15
+ *
16
+ * Created during block import from signedExecutionPayloadBid in block body.
17
+ * Always has bid (required for creation).
18
+ *
19
+ * Completion requires: payload envelope + all sampled columns
20
+ */
21
+ export class PayloadEnvelopeInput {
22
+ blockRootHex;
23
+ slot;
24
+ proposerIndex;
25
+ bid;
26
+ versionedHashes;
27
+ columnsCache = new Map();
28
+ sampledColumns;
29
+ custodyColumns;
30
+ timeCreatedSec;
31
+ payloadEnvelopeDataPromise;
32
+ columnsDataPromise;
33
+ state;
34
+ constructor(props) {
35
+ this.blockRootHex = props.blockRootHex;
36
+ this.slot = props.slot;
37
+ this.proposerIndex = props.proposerIndex;
38
+ this.bid = props.bid;
39
+ this.versionedHashes = props.bid.blobKzgCommitments.map(kzgCommitmentToVersionedHash);
40
+ this.sampledColumns = props.sampledColumns;
41
+ this.custodyColumns = props.custodyColumns;
42
+ this.timeCreatedSec = props.timeCreatedSec;
43
+ this.payloadEnvelopeDataPromise = createPromise();
44
+ this.columnsDataPromise = createPromise();
45
+ const noBlobs = props.bid.blobKzgCommitments.length === 0;
46
+ const noSampledColumns = props.sampledColumns.length === 0;
47
+ const hasAllData = noBlobs || noSampledColumns;
48
+ if (hasAllData) {
49
+ this.state = { hasPayload: false, hasAllData: true, hasComputedAllData: true };
50
+ this.columnsDataPromise.resolve(this.getSampledColumns());
51
+ }
52
+ else {
53
+ this.state = { hasPayload: false, hasAllData: false, hasComputedAllData: false };
54
+ }
55
+ }
56
+ static createFromBlock(props) {
57
+ const bid = props.block.message.body.signedExecutionPayloadBid.message;
58
+ return new PayloadEnvelopeInput({
59
+ blockRootHex: props.blockRootHex,
60
+ slot: props.block.message.slot,
61
+ proposerIndex: props.block.message.proposerIndex,
62
+ bid,
63
+ sampledColumns: props.sampledColumns,
64
+ custodyColumns: props.custodyColumns,
65
+ timeCreatedSec: props.timeCreatedSec,
66
+ });
67
+ }
68
+ getBid() {
69
+ return this.bid;
70
+ }
71
+ getBuilderIndex() {
72
+ return this.bid.builderIndex;
73
+ }
74
+ getBlockHashHex() {
75
+ return toRootHex(this.bid.blockHash);
76
+ }
77
+ getBlobKzgCommitments() {
78
+ return this.bid.blobKzgCommitments;
79
+ }
80
+ addPayloadEnvelope(props) {
81
+ if (this.state.hasPayload) {
82
+ throw new Error(`Payload envelope already set for block ${this.blockRootHex}`);
83
+ }
84
+ if (toRootHex(props.envelope.message.beaconBlockRoot) !== this.blockRootHex) {
85
+ throw new Error("Payload envelope beacon_block_root mismatch");
86
+ }
87
+ const source = {
88
+ source: props.source,
89
+ seenTimestampSec: props.seenTimestampSec,
90
+ peerIdStr: props.peerIdStr,
91
+ };
92
+ if (this.state.hasAllData) {
93
+ // Complete state
94
+ this.state = {
95
+ hasPayload: true,
96
+ hasAllData: true,
97
+ hasComputedAllData: this.state.hasComputedAllData,
98
+ payloadEnvelope: props.envelope,
99
+ payloadEnvelopeSource: source,
100
+ timeCompleteSec: props.seenTimestampSec,
101
+ };
102
+ this.payloadEnvelopeDataPromise.resolve(props.envelope);
103
+ }
104
+ else {
105
+ // Has payload, waiting for columns
106
+ this.state = {
107
+ hasPayload: true,
108
+ hasAllData: false,
109
+ hasComputedAllData: false,
110
+ payloadEnvelope: props.envelope,
111
+ payloadEnvelopeSource: source,
112
+ };
113
+ }
114
+ }
115
+ addColumn(columnWithSource) {
116
+ const { columnSidecar, seenTimestampSec } = columnWithSource;
117
+ this.columnsCache.set(columnSidecar.index, columnWithSource);
118
+ const sampledColumns = this.getSampledColumns();
119
+ const hasAllData =
120
+ // already hasAllData
121
+ this.state.hasAllData ||
122
+ // has all sampled columns
123
+ sampledColumns.length === this.sampledColumns.length ||
124
+ // has enough columns to reconstruct the rest
125
+ this.columnsCache.size >= NUMBER_OF_COLUMNS / 2;
126
+ const hasComputedAllData =
127
+ // has all sampled columns
128
+ sampledColumns.length === this.sampledColumns.length;
129
+ if (!hasAllData) {
130
+ return;
131
+ }
132
+ if (hasComputedAllData) {
133
+ this.columnsDataPromise.resolve(sampledColumns);
134
+ }
135
+ if (this.state.hasPayload) {
136
+ // Complete state
137
+ this.state = {
138
+ hasPayload: true,
139
+ hasAllData: true,
140
+ hasComputedAllData: hasComputedAllData || this.state.hasComputedAllData,
141
+ payloadEnvelope: this.state.payloadEnvelope,
142
+ payloadEnvelopeSource: this.state.payloadEnvelopeSource,
143
+ timeCompleteSec: seenTimestampSec,
144
+ };
145
+ this.payloadEnvelopeDataPromise.resolve(this.state.payloadEnvelope);
146
+ }
147
+ else {
148
+ // No payload yet, all data ready
149
+ this.state = {
150
+ hasPayload: false,
151
+ hasAllData: true,
152
+ hasComputedAllData: hasComputedAllData || this.state.hasComputedAllData,
153
+ };
154
+ }
155
+ }
156
+ getVersionedHashes() {
157
+ return this.versionedHashes;
158
+ }
159
+ hasPayloadEnvelope() {
160
+ return this.state.hasPayload;
161
+ }
162
+ getPayloadEnvelope() {
163
+ if (!this.state.hasPayload)
164
+ throw new Error("Payload envelope not set");
165
+ return this.state.payloadEnvelope;
166
+ }
167
+ getPayloadEnvelopeSource() {
168
+ if (!this.state.hasPayload)
169
+ throw new Error("Payload envelope source not set");
170
+ return this.state.payloadEnvelopeSource;
171
+ }
172
+ getSampledColumns() {
173
+ const columns = [];
174
+ for (const index of this.sampledColumns) {
175
+ const column = this.columnsCache.get(index);
176
+ if (column) {
177
+ columns.push(column.columnSidecar);
178
+ }
179
+ }
180
+ return columns;
181
+ }
182
+ getSampledColumnsWithSource() {
183
+ const columns = [];
184
+ for (const index of this.sampledColumns) {
185
+ const column = this.columnsCache.get(index);
186
+ if (column) {
187
+ columns.push(column);
188
+ }
189
+ }
190
+ return columns;
191
+ }
192
+ getCustodyColumns() {
193
+ const columns = [];
194
+ for (const index of this.custodyColumns) {
195
+ const column = this.columnsCache.get(index);
196
+ if (column) {
197
+ columns.push(column.columnSidecar);
198
+ }
199
+ }
200
+ return columns;
201
+ }
202
+ hasComputedAllData() {
203
+ return this.state.hasComputedAllData;
204
+ }
205
+ waitForComputedAllData(timeout, signal) {
206
+ if (this.state.hasComputedAllData) {
207
+ return Promise.resolve(this.getSampledColumns());
208
+ }
209
+ return withTimeout(() => this.columnsDataPromise.promise, timeout, signal);
210
+ }
211
+ getTimeCreated() {
212
+ return this.timeCreatedSec;
213
+ }
214
+ getTimeComplete() {
215
+ if (!this.state.hasPayload || !this.state.hasAllData)
216
+ throw new Error("Not yet complete");
217
+ return this.state.timeCompleteSec;
218
+ }
219
+ isComplete() {
220
+ return this.state.hasPayload && this.state.hasAllData;
221
+ }
222
+ async waitForData() {
223
+ return this.payloadEnvelopeDataPromise.promise;
224
+ }
225
+ getSerializedCacheKeys() {
226
+ const objects = [];
227
+ if (this.state.hasPayload) {
228
+ objects.push(this.state.payloadEnvelope);
229
+ }
230
+ for (const { columnSidecar } of this.columnsCache.values()) {
231
+ objects.push(columnSidecar);
232
+ }
233
+ return objects;
234
+ }
235
+ getLogMeta() {
236
+ return {
237
+ slot: this.slot,
238
+ blockRoot: this.blockRootHex,
239
+ hasPayload: this.state.hasPayload,
240
+ hasAllData: this.state.hasAllData,
241
+ hasComputedAllData: this.state.hasComputedAllData,
242
+ isComplete: this.isComplete(),
243
+ columnsCount: this.columnsCache.size,
244
+ sampledColumnsCount: this.sampledColumns.length,
245
+ };
246
+ }
247
+ }
248
+ //# sourceMappingURL=payloadEnvelopeInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadEnvelopeInput.js","sourceRoot":"","sources":["../../../../src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { ForkPostGloas } from "@lodestar/params";
2
+ import { ColumnIndex, RootHex, SignedBeaconBlock, gloas } from "@lodestar/types";
3
+ export declare enum PayloadEnvelopeInputSource {
4
+ gossip = "gossip",
5
+ api = "api",
6
+ engine = "engine",
7
+ byRange = "req_resp_by_range",
8
+ byRoot = "req_resp_by_root",
9
+ recovery = "recovery"
10
+ }
11
+ export type SourceMeta = {
12
+ source: PayloadEnvelopeInputSource;
13
+ seenTimestampSec: number;
14
+ peerIdStr?: string;
15
+ };
16
+ export type ColumnWithSource = SourceMeta & {
17
+ columnSidecar: gloas.DataColumnSidecar;
18
+ };
19
+ export type CreateFromBlockProps = {
20
+ blockRootHex: RootHex;
21
+ block: SignedBeaconBlock<ForkPostGloas>;
22
+ sampledColumns: ColumnIndex[];
23
+ custodyColumns: ColumnIndex[];
24
+ timeCreatedSec: number;
25
+ };
26
+ export type AddPayloadEnvelopeProps = SourceMeta & {
27
+ envelope: gloas.SignedExecutionPayloadEnvelope;
28
+ };
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chain/blocks/payloadEnvelopeInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAE/E,oBAAY,0BAA0B;IACpC,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,sBAAsB;IAC7B,MAAM,qBAAqB;IAC3B,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,0BAA0B,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAC1C,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACxC,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG;IACjD,QAAQ,EAAE,KAAK,CAAC,8BAA8B,CAAC;CAChD,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { PayloadEnvelopeInputSource };
2
+ var PayloadEnvelopeInputSource;
3
+ (function (PayloadEnvelopeInputSource) {
4
+ PayloadEnvelopeInputSource["gossip"] = "gossip";
5
+ PayloadEnvelopeInputSource["api"] = "api";
6
+ PayloadEnvelopeInputSource["engine"] = "engine";
7
+ PayloadEnvelopeInputSource["byRange"] = "req_resp_by_range";
8
+ PayloadEnvelopeInputSource["byRoot"] = "req_resp_by_root";
9
+ PayloadEnvelopeInputSource["recovery"] = "recovery";
10
+ })(PayloadEnvelopeInputSource || (PayloadEnvelopeInputSource = {}));
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/chain/blocks/payloadEnvelopeInput/types.ts"],"names":[],"mappings":"SAGY,0BAA0B;AAAtC,IAAY,0BAOX;AAPD,WAAY,0BAA0B;IACpC,+CAAiB,CAAA;IACjB,yCAAW,CAAA;IACX,+CAAiB,CAAA;IACjB,2DAA6B,CAAA;IAC7B,yDAA2B,CAAA;IAC3B,mDAAqB,CAAA;AAAC,CACxB,EAPY,0BAA0B,KAA1B,0BAA0B,QAOrC"}
@@ -0,0 +1,15 @@
1
+ import { Metrics } from "../../metrics/metrics.js";
2
+ import { JobItemQueue } from "../../util/queue/index.js";
3
+ import type { BeaconChain } from "../chain.js";
4
+ import { PayloadEnvelopeInput } from "../seenCache/seenPayloadEnvelopeInput.js";
5
+ import { ImportPayloadOpts } from "./types.js";
6
+ /**
7
+ * PayloadEnvelopeProcessor processes payload envelope jobs in a queued fashion, one after the other.
8
+ */
9
+ export declare class PayloadEnvelopeProcessor {
10
+ readonly jobQueue: JobItemQueue<[PayloadEnvelopeInput, ImportPayloadOpts], void>;
11
+ private readonly importStatus;
12
+ constructor(chain: BeaconChain, metrics: Metrics | null, signal: AbortSignal);
13
+ processPayloadEnvelopeJob(payloadInput: PayloadEnvelopeInput, opts?: ImportPayloadOpts): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=payloadEnvelopeProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadEnvelopeProcessor.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/payloadEnvelopeProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAE9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAW7C;;GAEG;AACH,qBAAa,wBAAwB;IACnC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC;IACjF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoE;IAEjG,YAAY,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,EAS3E;IAEK,yBAAyB,CAAC,YAAY,EAAE,oBAAoB,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/G;CACF"}
@@ -0,0 +1,46 @@
1
+ import { JobItemQueue } from "../../util/queue/index.js";
2
+ import { importExecutionPayload } from "./importExecutionPayload.js";
3
+ // TODO GLOAS: Set to be equal to DEFAULT_MAX_PENDING_UNFINALIZED_PAYLOAD_ENVELOPE_WRITES for now
4
+ const QUEUE_MAX_LENGTH = 16;
5
+ var PayloadEnvelopeImportStatus;
6
+ (function (PayloadEnvelopeImportStatus) {
7
+ PayloadEnvelopeImportStatus["queued"] = "queued";
8
+ PayloadEnvelopeImportStatus["importing"] = "importing";
9
+ PayloadEnvelopeImportStatus["imported"] = "imported";
10
+ })(PayloadEnvelopeImportStatus || (PayloadEnvelopeImportStatus = {}));
11
+ /**
12
+ * PayloadEnvelopeProcessor processes payload envelope jobs in a queued fashion, one after the other.
13
+ */
14
+ export class PayloadEnvelopeProcessor {
15
+ jobQueue;
16
+ importStatus = new WeakMap();
17
+ constructor(chain, metrics, signal) {
18
+ this.jobQueue = new JobItemQueue((payloadInput, opts) => {
19
+ this.importStatus.set(payloadInput, PayloadEnvelopeImportStatus.importing);
20
+ return importExecutionPayload.call(chain, payloadInput, opts);
21
+ }, { maxLength: QUEUE_MAX_LENGTH, noYieldIfOneItem: true, signal }, metrics?.payloadEnvelopeProcessorQueue ?? undefined);
22
+ }
23
+ async processPayloadEnvelopeJob(payloadInput, opts = {}) {
24
+ if (!payloadInput.isComplete()) {
25
+ return;
26
+ }
27
+ if (this.importStatus.get(payloadInput) !== undefined) {
28
+ return;
29
+ }
30
+ await this.jobQueue.waitForSpace();
31
+ // Re-check after await, as another call may have queued this payload.
32
+ if (this.importStatus.get(payloadInput) !== undefined) {
33
+ return;
34
+ }
35
+ this.importStatus.set(payloadInput, PayloadEnvelopeImportStatus.queued);
36
+ try {
37
+ await this.jobQueue.push(payloadInput, opts);
38
+ this.importStatus.set(payloadInput, PayloadEnvelopeImportStatus.imported);
39
+ }
40
+ catch (e) {
41
+ this.importStatus.delete(payloadInput);
42
+ throw e;
43
+ }
44
+ }
45
+ }
46
+ //# sourceMappingURL=payloadEnvelopeProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadEnvelopeProcessor.js","sourceRoot":"","sources":["../../../src/chain/blocks/payloadEnvelopeProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAGnE,iGAAiG;AACjG,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,IAAK,2BAIJ;AAJD,WAAK,2BAA2B;IAC9B,gDAAiB,CAAA;IACjB,sDAAuB,CAAA;IACvB,oDAAqB,CAAA;AAAC,CACxB,EAJK,2BAA2B,KAA3B,2BAA2B,QAI/B;AAED;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAC1B,QAAQ,CAAgE;IAChE,YAAY,GAAG,IAAI,OAAO,EAAqD,CAAC;IAEjG,YAAY,KAAkB,EAAE,OAAuB,EAAE,MAAmB,EAAE;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAC9B,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;YAC3E,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAAA,CAC/D,EACD,EAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAC,EAC7D,OAAO,EAAE,6BAA6B,IAAI,SAAS,CACpD,CAAC;IAAA,CACH;IAED,KAAK,CAAC,yBAAyB,CAAC,YAAkC,EAAE,IAAI,GAAsB,EAAE,EAAiB;QAC/G,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAEnC,sEAAsE;QACtE,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAExE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,CAAC;QACV,CAAC;IAAA,CACF;CACF"}
@@ -1,6 +1,6 @@
1
1
  import type { ChainForkConfig } from "@lodestar/config";
2
- import { MaybeValidExecutionStatus } from "@lodestar/fork-choice";
3
- import { CachedBeaconStateAllForks, DataAvailabilityStatus } from "@lodestar/state-transition";
2
+ import { BlockExecutionStatus, PayloadExecutionStatus } from "@lodestar/fork-choice";
3
+ import { DataAvailabilityStatus, IBeaconStateView } from "@lodestar/state-transition";
4
4
  import type { IndexedAttestation, Slot, fulu } from "@lodestar/types";
5
5
  import { IBlockInput } from "./blockInput/types.js";
6
6
  export declare enum GossipedInputType {
@@ -28,6 +28,13 @@ export declare enum BlobSidecarValidation {
28
28
  */
29
29
  Full = 1
30
30
  }
31
+ export type ImportPayloadOpts = {
32
+ /**
33
+ * Set to true if envelope signature was already verified (e.g., during gossip/API validation).
34
+ * When false/undefined, signature will be verified during import.
35
+ */
36
+ validSignature?: boolean;
37
+ };
31
38
  export type ImportBlockOpts = {
32
39
  /**
33
40
  * TEMP: Review if this is safe, Lighthouse always imports attestations even in finalized sync.
@@ -66,26 +73,32 @@ export type ImportBlockOpts = {
66
73
  /** Seen timestamp seconds */
67
74
  seenTimestampSec?: number;
68
75
  };
69
- /**
70
- * A wrapper around a `SignedBeaconBlock` that indicates that this block is fully verified and ready to import
71
- */
72
- export type FullyVerifiedBlock = {
76
+ type FullyVerifiedBlockBase = {
73
77
  blockInput: IBlockInput;
74
- postState: CachedBeaconStateAllForks;
78
+ postBlockState: IBeaconStateView;
75
79
  parentBlockSlot: Slot;
76
80
  proposerBalanceDelta: number;
77
- /**
78
- * If the execution payload couldnt be verified because of EL syncing status,
79
- * used in optimistic sync or for merge block
80
- */
81
- executionStatus: MaybeValidExecutionStatus;
82
81
  dataAvailabilityStatus: DataAvailabilityStatus;
83
- /**
84
- * Pre-computed indexed attestations from signature verification to avoid duplicate work
85
- */
82
+ /** Pre-computed indexed attestations from signature verification to avoid duplicate work */
86
83
  indexedAttestations: IndexedAttestation[];
87
84
  /** Seen timestamp seconds */
88
85
  seenTimestampSec: number;
89
86
  };
87
+ /**
88
+ * A wrapper around a `SignedBeaconBlock` that indicates that this block is fully verified and ready to import.
89
+ *
90
+ * Discriminated union on `postEnvelopeState`:
91
+ * - `null` → block has no pre-verified envelope; `executionStatus` is any `BlockExecutionStatus`
92
+ * - non-null → envelope was pre-verified during state transition; `executionStatus` is narrowed to
93
+ * `Valid | Syncing` (matching what `forkChoice.onExecutionPayload` expects)
94
+ */
95
+ export type FullyVerifiedBlock = FullyVerifiedBlockBase & ({
96
+ postEnvelopeState: null;
97
+ /** If the execution payload couldn't be verified because of EL syncing status, used in optimistic sync or for merge block */
98
+ executionStatus: BlockExecutionStatus;
99
+ } | {
100
+ postEnvelopeState: IBeaconStateView;
101
+ executionStatus: PayloadExecutionStatus;
102
+ });
90
103
  export {};
91
104
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAC,yBAAyB,EAAE,sBAAsB,EAAqB,MAAM,4BAA4B,CAAC;AACjH,OAAO,KAAK,EAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAElD,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,UAAU,gBAAgB;CAC3B;AAED,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC;IACnC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAMrG;AAED,oBAAY,oBAAoB;IAC9B,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,oBAAY,qBAAqB;IAC/B,gFAAgF;IAChF,UAAU,IAAA;IACV;;;;OAIG;IACH,IAAI,IAAA;CACL;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,yBAAyB,CAAC;IACrC,eAAe,EAAE,IAAI,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,eAAe,EAAE,yBAAyB,CAAC;IAC3C,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C;;OAEG;IACH,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAqB,MAAM,4BAA4B,CAAC;AACxG,OAAO,KAAK,EAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAElD,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,UAAU,gBAAgB;CAC3B;AAED,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC;IACnC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAMrG;AAED,oBAAY,oBAAoB;IAC9B,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,oBAAY,qBAAqB;IAC/B,gFAAgF;IAChF,UAAU,IAAA;IACV;;;;OAIG;IACH,IAAI,IAAA;CACL;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,UAAU,EAAE,WAAW,CAAC;IACxB,cAAc,EAAE,gBAAgB,CAAC;IACjC,eAAe,EAAE,IAAI,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,4FAA4F;IAC5F,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GACrD,CACI;IACE,iBAAiB,EAAE,IAAI,CAAC;IACxB,6HAA6H;IAC7H,eAAe,EAAE,oBAAoB,CAAC;CACvC,GACD;IACE,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,eAAe,EAAE,sBAAsB,CAAC;CACzC,CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/chain/blocks/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAoD,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;SAIrG,iBAAiB;AAA7B,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,+CAA0B,CAAA;AAAC,CAC7B,EAJY,iBAAiB,KAAjB,iBAAiB,QAI5B;AAQD,MAAM,UAAU,kBAAkB,CAAC,MAAuB,EAAE,SAAe,EAAE,SAAe,EAAW;IACrG,OAAO,CACL,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK;QAC7C,+CAA+C;QAC/C,kBAAkB,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,qCAAqC,CAC9G,CAAC;AAAA,CACH;SAEW,oBAAoB;AAAhC,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,+DAAI,CAAA;IACJ,iEAAK,CAAA;AAAC,CACR,EAHY,oBAAoB,KAApB,oBAAoB,QAG/B;SAEW,qBAAqB;AAAjC,IAAY,qBASX;AATD,WAAY,qBAAqB;IAC/B,gFAAgF;IAChF,6EAAU,CAAA;IACV;;;;OAIG;IACH,iEAAI,CAAA;AAAC,CACP,EATY,qBAAqB,KAArB,qBAAqB,QAShC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/chain/blocks/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAA2C,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;SAI5F,iBAAiB;AAA7B,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,+CAA0B,CAAA;AAAC,CAC7B,EAJY,iBAAiB,KAAjB,iBAAiB,QAI5B;AAQD,MAAM,UAAU,kBAAkB,CAAC,MAAuB,EAAE,SAAe,EAAE,SAAe,EAAW;IACrG,OAAO,CACL,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK;QAC7C,+CAA+C;QAC/C,kBAAkB,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,qCAAqC,CAC9G,CAAC;AAAA,CACH;SAEW,oBAAoB;AAAhC,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,+DAAI,CAAA;IACJ,iEAAK,CAAA;AAAC,CACR,EAHY,oBAAoB,KAApB,oBAAoB,QAG/B;SAEW,qBAAqB;AAAjC,IAAY,qBASX;AATD,WAAY,qBAAqB;IAC/B,gFAAgF;IAChF,6EAAU,CAAA;IACV;;;;OAIG;IACH,iEAAI,CAAA;AAAC,CACP,EATY,qBAAqB,KAArB,qBAAqB,QAShC"}
@@ -1,7 +1,7 @@
1
- import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
1
+ import { IBeaconStateView } from "@lodestar/state-transition";
2
2
  import { phase0 } from "@lodestar/types";
3
3
  /**
4
4
  * Compute a Checkpoint type from `state.latestBlockHeader`
5
5
  */
6
- export declare function getCheckpointFromState(checkpointState: CachedBeaconStateAllForks): phase0.Checkpoint;
6
+ export declare function getCheckpointFromState(checkpointState: IBeaconStateView): phase0.Checkpoint;
7
7
  //# sourceMappingURL=checkpoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../../src/chain/blocks/utils/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,yBAAyB,EAAqB,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAG5C;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,yBAAyB,GAAG,MAAM,CAAC,UAAU,CAgBpG"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../../src/chain/blocks/utils/checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAqB,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAG5C;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAgB3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../../src/chain/blocks/utils/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAA4B,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAA0C,EAAqB;IACpG,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAElC,IAAI,IAAI,GAAG,eAAe,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC1F,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QACtD,WAAW,CAAC,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC;QAC5D,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC;KAChC,CAAC;AAAA,CACH"}
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../../src/chain/blocks/utils/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAmB,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAAiC,EAAqB;IAC3F,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAElC,IAAI,IAAI,GAAG,eAAe,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC1F,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QACtD,WAAW,CAAC,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC;QAC5D,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC;KAChC,CAAC;AAAA,CACH"}
@@ -1,5 +1,5 @@
1
1
  import { ProtoBlock } from "@lodestar/fork-choice";
2
- import { CachedBeaconStateAllForks, DataAvailabilityStatus } from "@lodestar/state-transition";
2
+ import { DataAvailabilityStatus, IBeaconStateView } from "@lodestar/state-transition";
3
3
  import { IndexedAttestation } from "@lodestar/types";
4
4
  import type { BeaconChain } from "../chain.js";
5
5
  import { BlockProcessOpts } from "../options.js";
@@ -18,7 +18,7 @@ import { SegmentExecStatus } from "./verifyBlocksExecutionPayloads.js";
18
18
  * If there's an error during one of the steps, the rest are aborted with an AbortController.
19
19
  */
20
20
  export declare function verifyBlocksInEpoch(this: BeaconChain, parentBlock: ProtoBlock, blockInputs: IBlockInput[], opts: BlockProcessOpts & ImportBlockOpts): Promise<{
21
- postStates: CachedBeaconStateAllForks[];
21
+ postStates: IBeaconStateView[];
22
22
  proposerBalanceDeltas: number[];
23
23
  segmentExecStatus: SegmentExecStatus;
24
24
  dataAvailabilityStatuses: DataAvailabilityStatus[];
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlock.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAElE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EAGvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,kBAAkB,EAAQ,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAS,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAM3C,OAAO,EAAC,iBAAiB,EAA+B,MAAM,oCAAoC,CAAC;AAInG;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,UAAU,EACvB,WAAW,EAAE,WAAW,EAAE,EAC1B,IAAI,EAAE,gBAAgB,GAAG,eAAe,GACvC,OAAO,CAAC;IACT,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,wBAAwB,EAAE,sBAAsB,EAAE,CAAC;IACnD,0BAA0B,EAAE,kBAAkB,EAAE,EAAE,CAAC;CACpD,CAAC,CAkMD"}
1
+ {"version":3,"file":"verifyBlock.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAqB,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAC,kBAAkB,EAAQ,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAS,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAM3C,OAAO,EAAC,iBAAiB,EAA+B,MAAM,oCAAoC,CAAC;AAInG;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,UAAU,EACvB,WAAW,EAAE,WAAW,EAAE,EAC1B,IAAI,EAAE,gBAAgB,GAAG,eAAe,GACvC,OAAO,CAAC;IACT,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,wBAAwB,EAAE,sBAAsB,EAAE,CAAC;IACnD,0BAA0B,EAAE,kBAAkB,EAAE,EAAE,CAAC;CACpD,CAAC,CAkMD"}
@@ -1,6 +1,6 @@
1
1
  import { ExecutionStatus } from "@lodestar/fork-choice";
2
2
  import { ForkName, isForkPostFulu } from "@lodestar/params";
3
- import { DataAvailabilityStatus, computeEpochAtSlot, isStateValidatorsNodesPopulated, } from "@lodestar/state-transition";
3
+ import { DataAvailabilityStatus, computeEpochAtSlot } from "@lodestar/state-transition";
4
4
  import { BlockError, BlockErrorCode } from "../errors/index.js";
5
5
  import { RegenCaller } from "../regen/index.js";
6
6
  import { DAType } from "./blockInput/index.js";
@@ -51,10 +51,10 @@ export async function verifyBlocksInEpoch(parentBlock, blockInputs, opts) {
51
51
  // in forky condition, make sure to populate ShufflingCache with regened state
52
52
  // otherwise it may fail to get indexed attestations from shuffling cache later
53
53
  this.shufflingCache.processState(preState0);
54
- if (!isStateValidatorsNodesPopulated(preState0)) {
54
+ if (!preState0.isStateValidatorsNodesPopulated()) {
55
55
  this.logger.verbose("verifyBlocksInEpoch preState0 SSZ cache stats", {
56
56
  slot: preState0.slot,
57
- cache: isStateValidatorsNodesPopulated(preState0),
57
+ cache: preState0.isStateValidatorsNodesPopulated(),
58
58
  clonedCount: preState0.clonedCount,
59
59
  clonedCountWithTransferCache: preState0.clonedCountWithTransferCache,
60
60
  createdWithTransferCache: preState0.createdWithTransferCache,
@@ -78,7 +78,7 @@ export async function verifyBlocksInEpoch(parentBlock, blockInputs, opts) {
78
78
  for (const [i, block] of blocks.entries()) {
79
79
  indexedAttestationsByBlock[i] = block.message.body.attestations.map((attestation) => {
80
80
  const attEpoch = computeEpochAtSlot(attestation.data.slot);
81
- const decisionRoot = preState0.epochCtx.getShufflingDecisionRoot(attEpoch);
81
+ const decisionRoot = preState0.getShufflingDecisionRoot(attEpoch);
82
82
  return this.shufflingCache.getIndexedAttestation(attEpoch, decisionRoot, fork, attestation);
83
83
  });
84
84
  }