@lodestar/beacon-node 1.42.0-dev.5f2fffc2ce → 1.42.0-dev.6fa48cb5f2

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 (440) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +36 -17
  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 +27 -11
  55. package/lib/chain/blocks/importBlock.js.map +1 -1
  56. package/lib/chain/blocks/importExecutionPayload.d.ts +48 -0
  57. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -0
  58. package/lib/chain/blocks/importExecutionPayload.js +158 -0
  59. package/lib/chain/blocks/importExecutionPayload.js.map +1 -0
  60. package/lib/chain/blocks/index.js +1 -1
  61. package/lib/chain/blocks/index.js.map +1 -1
  62. package/lib/chain/blocks/payloadEnvelopeInput/index.d.ts +3 -0
  63. package/lib/chain/blocks/payloadEnvelopeInput/index.d.ts.map +1 -0
  64. package/lib/chain/blocks/payloadEnvelopeInput/index.js +3 -0
  65. package/lib/chain/blocks/payloadEnvelopeInput/index.js.map +1 -0
  66. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +80 -0
  67. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -0
  68. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +248 -0
  69. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -0
  70. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +29 -0
  71. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -0
  72. package/lib/chain/blocks/payloadEnvelopeInput/types.js +11 -0
  73. package/lib/chain/blocks/payloadEnvelopeInput/types.js.map +1 -0
  74. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +15 -0
  75. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -0
  76. package/lib/chain/blocks/payloadEnvelopeProcessor.js +46 -0
  77. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -0
  78. package/lib/chain/blocks/types.d.ts +9 -2
  79. package/lib/chain/blocks/types.d.ts.map +1 -1
  80. package/lib/chain/blocks/types.js.map +1 -1
  81. package/lib/chain/blocks/utils/checkpoint.d.ts +2 -2
  82. package/lib/chain/blocks/utils/checkpoint.d.ts.map +1 -1
  83. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  84. package/lib/chain/blocks/verifyBlock.d.ts +2 -2
  85. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  86. package/lib/chain/blocks/verifyBlock.js +4 -4
  87. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  88. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +3 -3
  89. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  90. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +3 -3
  91. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  92. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -2
  93. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  94. package/lib/chain/blocks/verifyBlocksSignatures.js +1 -1
  95. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  96. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +3 -3
  97. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  98. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +3 -3
  99. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  100. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +12 -0
  101. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts.map +1 -0
  102. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +40 -0
  103. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js.map +1 -0
  104. package/lib/chain/chain.d.ts +19 -14
  105. package/lib/chain/chain.d.ts.map +1 -1
  106. package/lib/chain/chain.js +75 -42
  107. package/lib/chain/chain.js.map +1 -1
  108. package/lib/chain/emitter.d.ts +2 -2
  109. package/lib/chain/emitter.d.ts.map +1 -1
  110. package/lib/chain/errors/blockError.d.ts +4 -4
  111. package/lib/chain/errors/blockError.d.ts.map +1 -1
  112. package/lib/chain/errors/executionPayloadEnvelope.d.ts +12 -2
  113. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  114. package/lib/chain/errors/executionPayloadEnvelope.js +3 -1
  115. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  116. package/lib/chain/forkChoice/index.d.ts +4 -4
  117. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  118. package/lib/chain/forkChoice/index.js +27 -33
  119. package/lib/chain/forkChoice/index.js.map +1 -1
  120. package/lib/chain/initState.d.ts +2 -2
  121. package/lib/chain/initState.d.ts.map +1 -1
  122. package/lib/chain/initState.js +1 -1
  123. package/lib/chain/initState.js.map +1 -1
  124. package/lib/chain/interface.d.ts +17 -15
  125. package/lib/chain/interface.d.ts.map +1 -1
  126. package/lib/chain/lightClient/index.d.ts +2 -2
  127. package/lib/chain/lightClient/index.d.ts.map +1 -1
  128. package/lib/chain/lightClient/index.js +4 -4
  129. package/lib/chain/lightClient/index.js.map +1 -1
  130. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +6 -6
  131. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  132. package/lib/chain/opPools/aggregatedAttestationPool.js +10 -13
  133. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  134. package/lib/chain/opPools/opPool.d.ts +3 -3
  135. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  136. package/lib/chain/opPools/opPool.js +7 -7
  137. package/lib/chain/opPools/opPool.js.map +1 -1
  138. package/lib/chain/opPools/utils.d.ts +2 -2
  139. package/lib/chain/opPools/utils.d.ts.map +1 -1
  140. package/lib/chain/opPools/utils.js +2 -2
  141. package/lib/chain/opPools/utils.js.map +1 -1
  142. package/lib/chain/options.d.ts +1 -0
  143. package/lib/chain/options.d.ts.map +1 -1
  144. package/lib/chain/options.js +1 -0
  145. package/lib/chain/options.js.map +1 -1
  146. package/lib/chain/prepareNextSlot.d.ts +2 -2
  147. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  148. package/lib/chain/prepareNextSlot.js +3 -3
  149. package/lib/chain/prepareNextSlot.js.map +1 -1
  150. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +4 -4
  151. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  152. package/lib/chain/produceBlock/computeNewStateRoot.js +8 -4
  153. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  154. package/lib/chain/produceBlock/produceBlockBody.d.ts +5 -5
  155. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  156. package/lib/chain/produceBlock/produceBlockBody.js +13 -17
  157. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  158. package/lib/chain/regen/interface.d.ts +15 -13
  159. package/lib/chain/regen/interface.d.ts.map +1 -1
  160. package/lib/chain/regen/interface.js +2 -0
  161. package/lib/chain/regen/interface.js.map +1 -1
  162. package/lib/chain/regen/queued.d.ts +14 -14
  163. package/lib/chain/regen/queued.d.ts.map +1 -1
  164. package/lib/chain/regen/queued.js.map +1 -1
  165. package/lib/chain/regen/regen.d.ts +6 -5
  166. package/lib/chain/regen/regen.d.ts.map +1 -1
  167. package/lib/chain/regen/regen.js +6 -6
  168. package/lib/chain/regen/regen.js.map +1 -1
  169. package/lib/chain/seenCache/index.d.ts +1 -1
  170. package/lib/chain/seenCache/index.d.ts.map +1 -1
  171. package/lib/chain/seenCache/index.js +1 -1
  172. package/lib/chain/seenCache/index.js.map +1 -1
  173. package/lib/chain/seenCache/seenGossipBlockInput.js +2 -2
  174. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  175. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +38 -0
  176. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -0
  177. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +76 -0
  178. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -0
  179. package/lib/chain/serializeState.d.ts +2 -2
  180. package/lib/chain/serializeState.d.ts.map +1 -1
  181. package/lib/chain/serializeState.js +1 -1
  182. package/lib/chain/serializeState.js.map +1 -1
  183. package/lib/chain/shufflingCache.d.ts +2 -2
  184. package/lib/chain/shufflingCache.d.ts.map +1 -1
  185. package/lib/chain/shufflingCache.js +3 -4
  186. package/lib/chain/shufflingCache.js.map +1 -1
  187. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +6 -6
  188. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  189. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  190. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +11 -11
  191. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  192. package/lib/chain/stateCache/persistentCheckpointsCache.js +12 -16
  193. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  194. package/lib/chain/stateCache/types.d.ts +14 -14
  195. package/lib/chain/stateCache/types.d.ts.map +1 -1
  196. package/lib/chain/stateCache/types.js.map +1 -1
  197. package/lib/chain/validation/attesterSlashing.js +3 -3
  198. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  199. package/lib/chain/validation/blobSidecar.js +1 -1
  200. package/lib/chain/validation/blobSidecar.js.map +1 -1
  201. package/lib/chain/validation/block.d.ts.map +1 -1
  202. package/lib/chain/validation/block.js +3 -3
  203. package/lib/chain/validation/block.js.map +1 -1
  204. package/lib/chain/validation/blsToExecutionChange.js +2 -2
  205. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  206. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  207. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  208. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  209. package/lib/chain/validation/executionPayloadBid.js +4 -4
  210. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  211. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  212. package/lib/chain/validation/executionPayloadEnvelope.js +29 -19
  213. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  214. package/lib/chain/validation/lightClientFinalityUpdate.js +1 -1
  215. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  216. package/lib/chain/validation/lightClientOptimisticUpdate.js +1 -1
  217. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  218. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  219. package/lib/chain/validation/payloadAttestationMessage.js +1 -2
  220. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  221. package/lib/chain/validation/proposerSlashing.js +1 -1
  222. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  223. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -2
  224. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  225. package/lib/chain/validation/signatureSets/contributionAndProof.js +1 -1
  226. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  227. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -2
  228. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  229. package/lib/chain/validation/signatureSets/syncCommittee.js +1 -1
  230. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  231. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +2 -2
  232. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  233. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  234. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -2
  235. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  236. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +1 -1
  237. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  238. package/lib/chain/validation/syncCommittee.d.ts +4 -4
  239. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  240. package/lib/chain/validation/syncCommittee.js +13 -12
  241. package/lib/chain/validation/syncCommittee.js.map +1 -1
  242. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  243. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  244. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  245. package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
  246. package/lib/chain/validation/voluntaryExit.js +3 -3
  247. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  248. package/lib/chain/validatorMonitor.d.ts +5 -4
  249. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  250. package/lib/chain/validatorMonitor.js +13 -8
  251. package/lib/chain/validatorMonitor.js.map +1 -1
  252. package/lib/execution/engine/interface.d.ts +2 -2
  253. package/lib/metrics/metrics/lodestar.d.ts +40 -4
  254. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  255. package/lib/metrics/metrics/lodestar.js +93 -15
  256. package/lib/metrics/metrics/lodestar.js.map +1 -1
  257. package/lib/network/gossip/encoding.d.ts.map +1 -1
  258. package/lib/network/gossip/encoding.js +15 -0
  259. package/lib/network/gossip/encoding.js.map +1 -1
  260. package/lib/network/gossip/topic.d.ts +727 -0
  261. package/lib/network/gossip/topic.d.ts.map +1 -1
  262. package/lib/network/interface.d.ts +4 -2
  263. package/lib/network/interface.d.ts.map +1 -1
  264. package/lib/network/libp2p/index.d.ts.map +1 -1
  265. package/lib/network/libp2p/index.js +5 -0
  266. package/lib/network/libp2p/index.js.map +1 -1
  267. package/lib/network/network.d.ts +4 -2
  268. package/lib/network/network.d.ts.map +1 -1
  269. package/lib/network/network.js +11 -5
  270. package/lib/network/network.js.map +1 -1
  271. package/lib/network/processor/extractSlotRootFns.d.ts +1 -1
  272. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  273. package/lib/network/processor/extractSlotRootFns.js +15 -5
  274. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  275. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  276. package/lib/network/processor/gossipHandlers.js +39 -9
  277. package/lib/network/processor/gossipHandlers.js.map +1 -1
  278. package/lib/network/processor/index.d.ts +12 -7
  279. package/lib/network/processor/index.d.ts.map +1 -1
  280. package/lib/network/processor/index.js +99 -78
  281. package/lib/network/processor/index.js.map +1 -1
  282. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
  283. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  284. package/lib/network/reqresp/ReqRespBeaconNode.js +10 -1
  285. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  286. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts +8 -0
  287. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -0
  288. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +69 -0
  289. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -0
  290. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts +6 -0
  291. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts.map +1 -0
  292. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +28 -0
  293. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -0
  294. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  295. package/lib/network/reqresp/handlers/index.js +11 -1
  296. package/lib/network/reqresp/handlers/index.js.map +1 -1
  297. package/lib/network/reqresp/protocols.d.ts +2 -0
  298. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  299. package/lib/network/reqresp/protocols.js +10 -0
  300. package/lib/network/reqresp/protocols.js.map +1 -1
  301. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  302. package/lib/network/reqresp/rateLimit.js +8 -0
  303. package/lib/network/reqresp/rateLimit.js.map +1 -1
  304. package/lib/network/reqresp/score.d.ts.map +1 -1
  305. package/lib/network/reqresp/score.js +2 -0
  306. package/lib/network/reqresp/score.js.map +1 -1
  307. package/lib/network/reqresp/types.d.ts +8 -2
  308. package/lib/network/reqresp/types.d.ts.map +1 -1
  309. package/lib/network/reqresp/types.js +7 -1
  310. package/lib/network/reqresp/types.js.map +1 -1
  311. package/lib/node/nodejs.d.ts +2 -2
  312. package/lib/node/nodejs.d.ts.map +1 -1
  313. package/lib/node/nodejs.js +1 -4
  314. package/lib/node/nodejs.js.map +1 -1
  315. package/lib/node/notifier.d.ts.map +1 -1
  316. package/lib/node/notifier.js +3 -3
  317. package/lib/node/notifier.js.map +1 -1
  318. package/lib/sync/backfill/backfill.d.ts +3 -3
  319. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  320. package/lib/sync/backfill/backfill.js +3 -3
  321. package/lib/sync/backfill/backfill.js.map +1 -1
  322. package/lib/sync/constants.d.ts +1 -1
  323. package/lib/sync/constants.js +1 -1
  324. package/lib/sync/unknownBlock.d.ts +3 -9
  325. package/lib/sync/unknownBlock.d.ts.map +1 -1
  326. package/lib/sync/unknownBlock.js +8 -41
  327. package/lib/sync/unknownBlock.js.map +1 -1
  328. package/lib/util/sszBytes.d.ts +4 -1
  329. package/lib/util/sszBytes.d.ts.map +1 -1
  330. package/lib/util/sszBytes.js +69 -12
  331. package/lib/util/sszBytes.js.map +1 -1
  332. package/lib/util/types.d.ts +2 -0
  333. package/lib/util/types.d.ts.map +1 -1
  334. package/lib/util/types.js +1 -0
  335. package/lib/util/types.js.map +1 -1
  336. package/package.json +16 -16
  337. package/src/api/impl/beacon/blocks/index.ts +37 -18
  338. package/src/api/impl/beacon/pool/index.ts +1 -1
  339. package/src/api/impl/beacon/state/index.ts +29 -41
  340. package/src/api/impl/beacon/state/utils.ts +11 -25
  341. package/src/api/impl/lodestar/index.ts +4 -8
  342. package/src/api/impl/proof/index.ts +2 -9
  343. package/src/api/impl/validator/index.ts +29 -41
  344. package/src/api/impl/validator/utils.ts +4 -7
  345. package/src/chain/archiveStore/archiveStore.ts +1 -0
  346. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -39
  347. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +2 -1
  348. package/src/chain/archiveStore/historicalState/types.ts +2 -0
  349. package/src/chain/archiveStore/historicalState/worker.ts +1 -4
  350. package/src/chain/archiveStore/interface.ts +1 -0
  351. package/src/chain/balancesCache.ts +5 -11
  352. package/src/chain/blocks/blockInput/types.ts +4 -3
  353. package/src/chain/blocks/importBlock.ts +47 -16
  354. package/src/chain/blocks/importExecutionPayload.ts +236 -0
  355. package/src/chain/blocks/index.ts +1 -1
  356. package/src/chain/blocks/payloadEnvelopeInput/index.ts +2 -0
  357. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +336 -0
  358. package/src/chain/blocks/payloadEnvelopeInput/types.ts +33 -0
  359. package/src/chain/blocks/payloadEnvelopeProcessor.ts +61 -0
  360. package/src/chain/blocks/types.ts +10 -2
  361. package/src/chain/blocks/utils/checkpoint.ts +2 -2
  362. package/src/chain/blocks/verifyBlock.ts +5 -10
  363. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +5 -10
  364. package/src/chain/blocks/verifyBlocksSignatures.ts +3 -3
  365. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -8
  366. package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +55 -0
  367. package/src/chain/chain.ts +112 -70
  368. package/src/chain/emitter.ts +2 -2
  369. package/src/chain/errors/blockError.ts +4 -4
  370. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  371. package/src/chain/forkChoice/index.ts +33 -52
  372. package/src/chain/initState.ts +7 -2
  373. package/src/chain/interface.ts +18 -16
  374. package/src/chain/lightClient/index.ts +9 -22
  375. package/src/chain/opPools/aggregatedAttestationPool.ts +15 -21
  376. package/src/chain/opPools/opPool.ts +13 -14
  377. package/src/chain/opPools/utils.ts +4 -4
  378. package/src/chain/options.ts +2 -0
  379. package/src/chain/prepareNextSlot.ts +6 -8
  380. package/src/chain/produceBlock/computeNewStateRoot.ts +11 -10
  381. package/src/chain/produceBlock/produceBlockBody.ts +23 -50
  382. package/src/chain/regen/interface.ts +15 -17
  383. package/src/chain/regen/queued.ts +16 -20
  384. package/src/chain/regen/regen.ts +16 -17
  385. package/src/chain/seenCache/index.ts +1 -1
  386. package/src/chain/seenCache/seenGossipBlockInput.ts +2 -2
  387. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +106 -0
  388. package/src/chain/serializeState.ts +3 -3
  389. package/src/chain/shufflingCache.ts +5 -7
  390. package/src/chain/stateCache/fifoBlockStateCache.ts +7 -7
  391. package/src/chain/stateCache/persistentCheckpointsCache.ts +27 -42
  392. package/src/chain/stateCache/types.ts +14 -18
  393. package/src/chain/validation/attesterSlashing.ts +3 -3
  394. package/src/chain/validation/blobSidecar.ts +1 -1
  395. package/src/chain/validation/block.ts +2 -4
  396. package/src/chain/validation/blsToExecutionChange.ts +2 -2
  397. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  398. package/src/chain/validation/executionPayloadBid.ts +3 -7
  399. package/src/chain/validation/executionPayloadEnvelope.ts +36 -29
  400. package/src/chain/validation/lightClientFinalityUpdate.ts +1 -1
  401. package/src/chain/validation/lightClientOptimisticUpdate.ts +1 -1
  402. package/src/chain/validation/payloadAttestationMessage.ts +2 -4
  403. package/src/chain/validation/proposerSlashing.ts +1 -1
  404. package/src/chain/validation/signatureSets/contributionAndProof.ts +2 -7
  405. package/src/chain/validation/signatureSets/syncCommittee.ts +2 -7
  406. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +2 -2
  407. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -7
  408. package/src/chain/validation/syncCommittee.ts +21 -20
  409. package/src/chain/validation/syncCommitteeContributionAndProof.ts +5 -10
  410. package/src/chain/validation/voluntaryExit.ts +3 -8
  411. package/src/chain/validatorMonitor.ts +23 -12
  412. package/src/execution/engine/interface.ts +2 -2
  413. package/src/metrics/metrics/lodestar.ts +100 -19
  414. package/src/network/gossip/encoding.ts +16 -0
  415. package/src/network/interface.ts +15 -2
  416. package/src/network/libp2p/index.ts +5 -0
  417. package/src/network/network.ts +34 -6
  418. package/src/network/processor/extractSlotRootFns.ts +19 -6
  419. package/src/network/processor/gossipHandlers.ts +45 -8
  420. package/src/network/processor/index.ts +110 -89
  421. package/src/network/reqresp/ReqRespBeaconNode.ts +14 -1
  422. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +94 -0
  423. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +43 -0
  424. package/src/network/reqresp/handlers/index.ts +12 -0
  425. package/src/network/reqresp/protocols.ts +12 -0
  426. package/src/network/reqresp/rateLimit.ts +18 -0
  427. package/src/network/reqresp/score.ts +2 -0
  428. package/src/network/reqresp/types.ts +13 -0
  429. package/src/node/nodejs.ts +3 -5
  430. package/src/node/notifier.ts +4 -10
  431. package/src/sync/backfill/backfill.ts +4 -4
  432. package/src/sync/constants.ts +1 -1
  433. package/src/sync/unknownBlock.ts +10 -50
  434. package/src/util/sszBytes.ts +90 -10
  435. package/src/util/types.ts +6 -0
  436. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +0 -15
  437. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +0 -1
  438. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +0 -28
  439. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +0 -1
  440. package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +0 -34
@@ -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
2
  import { MaybeValidExecutionStatus } from "@lodestar/fork-choice";
3
- import { CachedBeaconStateAllForks, DataAvailabilityStatus } from "@lodestar/state-transition";
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.
@@ -71,7 +78,7 @@ export type ImportBlockOpts = {
71
78
  */
72
79
  export type FullyVerifiedBlock = {
73
80
  blockInput: IBlockInput;
74
- postState: CachedBeaconStateAllForks;
81
+ postState: IBeaconStateView;
75
82
  parentBlockSlot: Slot;
76
83
  proposerBalanceDelta: number;
77
84
  /**
@@ -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,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAEhE,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;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,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 +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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlock.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlock.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlock.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
2
  import { ExecutionStatus, IForkChoice, LVHInvalidResponse, LVHValidResponse, MaybeValidExecutionStatus, ProtoBlock } from "@lodestar/fork-choice";
3
- import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
3
+ import { IBeaconStateView } from "@lodestar/state-transition";
4
4
  import { Logger } from "@lodestar/utils";
5
5
  import { IExecutionEngine } from "../../execution/engine/interface.js";
6
6
  import { Metrics } from "../../metrics/metrics.js";
@@ -60,10 +60,10 @@ type VerifyBlockExecutionResponse = VerifyExecutionErrorResponse | {
60
60
  *
61
61
  * Since the EL client must be aware of each parent, all payloads must be submitted in sequence.
62
62
  */
63
- export declare function verifyBlocksExecutionPayload(chain: VerifyBlockExecutionPayloadModules, parentBlock: ProtoBlock, blockInputs: IBlockInput[], preState0: CachedBeaconStateAllForks, signal: AbortSignal, opts: BlockProcessOpts & ImportBlockOpts): Promise<SegmentExecStatus>;
63
+ export declare function verifyBlocksExecutionPayload(chain: VerifyBlockExecutionPayloadModules, parentBlock: ProtoBlock, blockInputs: IBlockInput[], preState0: IBeaconStateView, signal: AbortSignal, opts: BlockProcessOpts & ImportBlockOpts): Promise<SegmentExecStatus>;
64
64
  /**
65
65
  * Verifies a single block execution payload by sending it to the EL client (via HTTP).
66
66
  */
67
- export declare function verifyBlockExecutionPayload(chain: VerifyBlockExecutionPayloadModules, blockInput: IBlockInput, preState0: CachedBeaconStateAllForks): Promise<VerifyBlockExecutionResponse>;
67
+ export declare function verifyBlockExecutionPayload(chain: VerifyBlockExecutionPayloadModules, blockInput: IBlockInput, preState0: IBeaconStateView): Promise<VerifyBlockExecutionResponse>;
68
68
  export {};
69
69
  //# sourceMappingURL=verifyBlocksExecutionPayloads.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlocksExecutionPayloads.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksExecutionPayloads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlocksExecutionPayloads.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksExecutionPayloads.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ExecutionStatus, } from "@lodestar/fork-choice";
2
2
  import { ForkSeq } from "@lodestar/params";
3
- import { isExecutionBlockBodyType, isExecutionEnabled, isExecutionStateType, } from "@lodestar/state-transition";
3
+ import { isExecutionBlockBodyType } from "@lodestar/state-transition";
4
4
  import { ErrorAborted, toRootHex } from "@lodestar/utils";
5
5
  import { ExecutionPayloadStatus } from "../../execution/engine/interface.js";
6
6
  import { BlockError, BlockErrorCode } from "../errors/index.js";
@@ -83,9 +83,9 @@ export async function verifyBlockExecutionPayload(chain, blockInput, preState0)
83
83
  return { executionStatus: ExecutionStatus.PayloadSeparated, lvhResponse: undefined, execError: null };
84
84
  }
85
85
  /** Not null if execution is enabled */
86
- const executionPayloadEnabled = isExecutionStateType(preState0) &&
86
+ const executionPayloadEnabled = preState0.isExecutionStateType &&
87
87
  isExecutionBlockBodyType(block.message.body) &&
88
- isExecutionEnabled(preState0, block.message)
88
+ preState0.isExecutionEnabled(block.message)
89
89
  ? block.message.body.executionPayload
90
90
  : null;
91
91
  if (!executionPayloadEnabled) {