@lodestar/beacon-node 1.43.0-dev.433e692fd9 → 1.43.0-dev.4358217e12

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 (311) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +7 -9
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/state/utils.d.ts +2 -2
  4. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  6. package/lib/api/impl/lodestar/index.js +1 -1
  7. package/lib/api/impl/lodestar/index.js.map +1 -1
  8. package/lib/api/impl/validator/index.d.ts.map +1 -1
  9. package/lib/api/impl/validator/index.js +0 -4
  10. package/lib/api/impl/validator/index.js.map +1 -1
  11. package/lib/chain/GetBlobsTracker.d.ts +1 -1
  12. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  13. package/lib/chain/GetBlobsTracker.js +1 -2
  14. package/lib/chain/GetBlobsTracker.js.map +1 -1
  15. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  16. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  17. package/lib/chain/archiveStore/interface.d.ts +4 -4
  18. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  19. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +4 -4
  20. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  21. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  22. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +2 -2
  23. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  24. package/lib/chain/archiveStore/utils/archiveBlocks.js +110 -58
  25. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  26. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  27. package/lib/chain/blocks/importBlock.js +9 -10
  28. package/lib/chain/blocks/importBlock.js.map +1 -1
  29. package/lib/chain/blocks/importExecutionPayload.d.ts +26 -13
  30. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  31. package/lib/chain/blocks/importExecutionPayload.js +86 -84
  32. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  33. package/lib/chain/blocks/index.d.ts +5 -3
  34. package/lib/chain/blocks/index.d.ts.map +1 -1
  35. package/lib/chain/blocks/index.js +28 -10
  36. package/lib/chain/blocks/index.js.map +1 -1
  37. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +3 -0
  38. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  39. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +20 -0
  40. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  41. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +5 -0
  42. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  43. package/lib/chain/blocks/payloadEnvelopeProcessor.js +7 -5
  44. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  45. package/lib/chain/blocks/types.d.ts +14 -20
  46. package/lib/chain/blocks/types.d.ts.map +1 -1
  47. package/lib/chain/blocks/utils/chainSegment.d.ts +23 -2
  48. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  49. package/lib/chain/blocks/utils/chainSegment.js +81 -12
  50. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  51. package/lib/chain/blocks/verifyBlock.d.ts +3 -2
  52. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  53. package/lib/chain/blocks/verifyBlock.js +30 -5
  54. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  55. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  56. package/lib/chain/blocks/verifyBlocksSanityChecks.js +15 -4
  57. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  58. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +24 -0
  59. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -0
  60. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +76 -0
  61. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -0
  62. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +14 -0
  63. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -0
  64. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +25 -0
  65. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -0
  66. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +1 -1
  67. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts.map +1 -1
  68. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +2 -11
  69. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js.map +1 -1
  70. package/lib/chain/chain.d.ts +8 -6
  71. package/lib/chain/chain.d.ts.map +1 -1
  72. package/lib/chain/chain.js +19 -6
  73. package/lib/chain/chain.js.map +1 -1
  74. package/lib/chain/emitter.d.ts +16 -4
  75. package/lib/chain/emitter.d.ts.map +1 -1
  76. package/lib/chain/emitter.js +5 -0
  77. package/lib/chain/emitter.js.map +1 -1
  78. package/lib/chain/errors/blockError.d.ts +8 -1
  79. package/lib/chain/errors/blockError.d.ts.map +1 -1
  80. package/lib/chain/errors/blockError.js +2 -0
  81. package/lib/chain/errors/blockError.js.map +1 -1
  82. package/lib/chain/errors/executionPayloadBid.d.ts +5 -0
  83. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  84. package/lib/chain/errors/executionPayloadBid.js +1 -0
  85. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  86. package/lib/chain/errors/executionPayloadEnvelope.d.ts +5 -0
  87. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  88. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  89. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  90. package/lib/chain/errors/index.d.ts +1 -0
  91. package/lib/chain/errors/index.d.ts.map +1 -1
  92. package/lib/chain/errors/index.js +1 -0
  93. package/lib/chain/errors/index.js.map +1 -1
  94. package/lib/chain/errors/proposerPreferences.d.ts +33 -0
  95. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -0
  96. package/lib/chain/errors/proposerPreferences.js +13 -0
  97. package/lib/chain/errors/proposerPreferences.js.map +1 -0
  98. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  99. package/lib/chain/forkChoice/index.js +11 -19
  100. package/lib/chain/forkChoice/index.js.map +1 -1
  101. package/lib/chain/interface.d.ts +7 -5
  102. package/lib/chain/interface.d.ts.map +1 -1
  103. package/lib/chain/interface.js.map +1 -1
  104. package/lib/chain/opPools/payloadAttestationPool.d.ts +2 -2
  105. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  106. package/lib/chain/opPools/payloadAttestationPool.js +4 -4
  107. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  108. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  109. package/lib/chain/prepareNextSlot.js +46 -16
  110. package/lib/chain/prepareNextSlot.js.map +1 -1
  111. package/lib/chain/produceBlock/produceBlockBody.d.ts +4 -2
  112. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  113. package/lib/chain/produceBlock/produceBlockBody.js +56 -26
  114. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  115. package/lib/chain/regen/interface.d.ts +1 -0
  116. package/lib/chain/regen/interface.d.ts.map +1 -1
  117. package/lib/chain/regen/interface.js +1 -0
  118. package/lib/chain/regen/interface.js.map +1 -1
  119. package/lib/chain/seenCache/index.d.ts +1 -0
  120. package/lib/chain/seenCache/index.d.ts.map +1 -1
  121. package/lib/chain/seenCache/index.js +1 -0
  122. package/lib/chain/seenCache/index.js.map +1 -1
  123. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +11 -4
  124. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  125. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +20 -18
  126. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  127. package/lib/chain/seenCache/seenProposerPreferences.d.ts +15 -0
  128. package/lib/chain/seenCache/seenProposerPreferences.d.ts.map +1 -0
  129. package/lib/chain/seenCache/seenProposerPreferences.js +25 -0
  130. package/lib/chain/seenCache/seenProposerPreferences.js.map +1 -0
  131. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  132. package/lib/chain/stateCache/persistentCheckpointsCache.js +4 -1
  133. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  134. package/lib/chain/validation/block.d.ts.map +1 -1
  135. package/lib/chain/validation/block.js +1 -0
  136. package/lib/chain/validation/block.js.map +1 -1
  137. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  138. package/lib/chain/validation/executionPayloadBid.js +13 -1
  139. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  140. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  141. package/lib/chain/validation/executionPayloadEnvelope.js +19 -9
  142. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  143. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  144. package/lib/chain/validation/payloadAttestationMessage.js +4 -3
  145. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  146. package/lib/chain/validation/proposerPreferences.d.ts +8 -0
  147. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -0
  148. package/lib/chain/validation/proposerPreferences.js +69 -0
  149. package/lib/chain/validation/proposerPreferences.js.map +1 -0
  150. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +1 -1
  151. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  152. package/lib/execution/engine/http.d.ts.map +1 -1
  153. package/lib/execution/engine/http.js +21 -14
  154. package/lib/execution/engine/http.js.map +1 -1
  155. package/lib/execution/engine/interface.d.ts +1 -0
  156. package/lib/execution/engine/interface.d.ts.map +1 -1
  157. package/lib/execution/engine/mock.d.ts.map +1 -1
  158. package/lib/execution/engine/mock.js +6 -0
  159. package/lib/execution/engine/mock.js.map +1 -1
  160. package/lib/execution/engine/types.d.ts +20 -0
  161. package/lib/execution/engine/types.d.ts.map +1 -1
  162. package/lib/execution/engine/types.js +18 -0
  163. package/lib/execution/engine/types.js.map +1 -1
  164. package/lib/metrics/metrics/lodestar.d.ts +1 -0
  165. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  166. package/lib/metrics/metrics/lodestar.js +4 -0
  167. package/lib/metrics/metrics/lodestar.js.map +1 -1
  168. package/lib/network/gossip/interface.d.ts +7 -1
  169. package/lib/network/gossip/interface.d.ts.map +1 -1
  170. package/lib/network/gossip/interface.js +1 -0
  171. package/lib/network/gossip/interface.js.map +1 -1
  172. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  173. package/lib/network/gossip/scoringParameters.js +12 -1
  174. package/lib/network/gossip/scoringParameters.js.map +1 -1
  175. package/lib/network/gossip/topic.d.ts +11 -2
  176. package/lib/network/gossip/topic.d.ts.map +1 -1
  177. package/lib/network/gossip/topic.js +6 -0
  178. package/lib/network/gossip/topic.js.map +1 -1
  179. package/lib/network/network.js +1 -1
  180. package/lib/network/network.js.map +1 -1
  181. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  182. package/lib/network/processor/gossipHandlers.js +32 -12
  183. package/lib/network/processor/gossipHandlers.js.map +1 -1
  184. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  185. package/lib/network/processor/gossipQueues/index.js +5 -0
  186. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  187. package/lib/network/processor/index.d.ts.map +1 -1
  188. package/lib/network/processor/index.js +1 -0
  189. package/lib/network/processor/index.js.map +1 -1
  190. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  191. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +14 -6
  192. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  193. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  194. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +11 -5
  195. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  196. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  197. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +17 -5
  198. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  199. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
  200. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +7 -4
  201. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
  202. package/lib/node/nodejs.d.ts.map +1 -1
  203. package/lib/node/nodejs.js +4 -2
  204. package/lib/node/nodejs.js.map +1 -1
  205. package/lib/node/notifier.js +7 -1
  206. package/lib/node/notifier.js.map +1 -1
  207. package/lib/sync/range/batch.d.ts +12 -2
  208. package/lib/sync/range/batch.d.ts.map +1 -1
  209. package/lib/sync/range/batch.js +56 -30
  210. package/lib/sync/range/batch.js.map +1 -1
  211. package/lib/sync/range/chain.d.ts +6 -2
  212. package/lib/sync/range/chain.d.ts.map +1 -1
  213. package/lib/sync/range/chain.js +4 -3
  214. package/lib/sync/range/chain.js.map +1 -1
  215. package/lib/sync/range/range.d.ts.map +1 -1
  216. package/lib/sync/range/range.js +17 -6
  217. package/lib/sync/range/range.js.map +1 -1
  218. package/lib/sync/types.d.ts +34 -0
  219. package/lib/sync/types.d.ts.map +1 -1
  220. package/lib/sync/types.js +34 -0
  221. package/lib/sync/types.js.map +1 -1
  222. package/lib/sync/unknownBlock.d.ts +24 -1
  223. package/lib/sync/unknownBlock.d.ts.map +1 -1
  224. package/lib/sync/unknownBlock.js +649 -53
  225. package/lib/sync/unknownBlock.js.map +1 -1
  226. package/lib/sync/utils/downloadByRange.d.ts +46 -10
  227. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  228. package/lib/sync/utils/downloadByRange.js +147 -24
  229. package/lib/sync/utils/downloadByRange.js.map +1 -1
  230. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  231. package/lib/sync/utils/downloadByRoot.js +6 -2
  232. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  233. package/lib/sync/utils/pendingBlocksTree.d.ts +0 -1
  234. package/lib/sync/utils/pendingBlocksTree.d.ts.map +1 -1
  235. package/lib/sync/utils/pendingBlocksTree.js +0 -9
  236. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  237. package/lib/util/sszBytes.d.ts.map +1 -1
  238. package/lib/util/sszBytes.js +16 -3
  239. package/lib/util/sszBytes.js.map +1 -1
  240. package/package.json +17 -16
  241. package/src/api/impl/beacon/blocks/index.ts +9 -9
  242. package/src/api/impl/beacon/state/utils.ts +2 -2
  243. package/src/api/impl/lodestar/index.ts +1 -1
  244. package/src/api/impl/validator/index.ts +0 -4
  245. package/src/chain/GetBlobsTracker.ts +1 -2
  246. package/src/chain/archiveStore/archiveStore.ts +5 -5
  247. package/src/chain/archiveStore/interface.ts +4 -4
  248. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +4 -4
  249. package/src/chain/archiveStore/utils/archiveBlocks.ts +153 -94
  250. package/src/chain/blocks/importBlock.ts +7 -13
  251. package/src/chain/blocks/importExecutionPayload.ts +106 -103
  252. package/src/chain/blocks/index.ts +44 -13
  253. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +27 -0
  254. package/src/chain/blocks/payloadEnvelopeProcessor.ts +7 -6
  255. package/src/chain/blocks/types.ts +14 -25
  256. package/src/chain/blocks/utils/chainSegment.ts +106 -17
  257. package/src/chain/blocks/verifyBlock.ts +35 -6
  258. package/src/chain/blocks/verifyBlocksSanityChecks.ts +16 -7
  259. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +129 -0
  260. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +38 -0
  261. package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +9 -18
  262. package/src/chain/chain.ts +36 -19
  263. package/src/chain/emitter.ts +15 -3
  264. package/src/chain/errors/blockError.ts +4 -1
  265. package/src/chain/errors/executionPayloadBid.ts +6 -0
  266. package/src/chain/errors/executionPayloadEnvelope.ts +6 -0
  267. package/src/chain/errors/index.ts +1 -0
  268. package/src/chain/errors/proposerPreferences.ts +39 -0
  269. package/src/chain/forkChoice/index.ts +8 -24
  270. package/src/chain/interface.ts +11 -3
  271. package/src/chain/opPools/payloadAttestationPool.ts +4 -8
  272. package/src/chain/prepareNextSlot.ts +60 -17
  273. package/src/chain/produceBlock/produceBlockBody.ts +77 -23
  274. package/src/chain/regen/interface.ts +1 -0
  275. package/src/chain/seenCache/index.ts +1 -0
  276. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +22 -20
  277. package/src/chain/seenCache/seenProposerPreferences.ts +29 -0
  278. package/src/chain/stateCache/persistentCheckpointsCache.ts +4 -1
  279. package/src/chain/validation/block.ts +1 -0
  280. package/src/chain/validation/executionPayloadBid.ts +14 -0
  281. package/src/chain/validation/executionPayloadEnvelope.ts +20 -10
  282. package/src/chain/validation/payloadAttestationMessage.ts +5 -3
  283. package/src/chain/validation/proposerPreferences.ts +91 -0
  284. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +1 -1
  285. package/src/execution/engine/http.ts +21 -14
  286. package/src/execution/engine/interface.ts +1 -0
  287. package/src/execution/engine/mock.ts +8 -1
  288. package/src/execution/engine/types.ts +41 -0
  289. package/src/metrics/metrics/lodestar.ts +4 -0
  290. package/src/network/gossip/interface.ts +6 -0
  291. package/src/network/gossip/scoringParameters.ts +14 -1
  292. package/src/network/gossip/topic.ts +6 -0
  293. package/src/network/network.ts +1 -1
  294. package/src/network/processor/gossipHandlers.ts +41 -16
  295. package/src/network/processor/gossipQueues/index.ts +5 -0
  296. package/src/network/processor/index.ts +1 -0
  297. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +14 -6
  298. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +11 -5
  299. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +17 -5
  300. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +7 -4
  301. package/src/node/nodejs.ts +4 -2
  302. package/src/node/notifier.ts +8 -1
  303. package/src/sync/range/batch.ts +90 -35
  304. package/src/sync/range/chain.ts +13 -5
  305. package/src/sync/range/range.ts +18 -6
  306. package/src/sync/types.ts +72 -0
  307. package/src/sync/unknownBlock.ts +810 -57
  308. package/src/sync/utils/downloadByRange.ts +256 -39
  309. package/src/sync/utils/downloadByRoot.ts +12 -2
  310. package/src/sync/utils/pendingBlocksTree.ts +0 -15
  311. package/src/util/sszBytes.ts +21 -3
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlocksSanityChecks.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSanityChecks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAgB,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAK9D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAMC,EACD,MAAqB,EACrB,IAAqB,EAKrB;IACA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,cAAc,GAAkB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAW,EAAE,CAAC;IAC/B,IAAI,WAAW,GAAsB,IAAI,CAAC;IAE1C,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAEnH,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,uEAAuE;YACvE,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,qDAAqD;gBACrD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACrE,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAC,CAAC,CAAC;QACxE,CAAC;QAED,oBAAoB;QACpB,mDAAmD;QACnD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,aAAa,EAAC,CAAC,CAAC;QACpE,CAAC;QAED,qBAAqB;QACrB,uDAAuD;QACvD,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/F,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,2BAA2B,EAAE,SAAS,EAAE,aAAa,EAAC,CAAC,CAAC;QAC5G,CAAC;QAED,MAAM,iBAAiB,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,eAAqB,CAAC;QAE1B,IAAI,iBAAiB,EAAE,CAAC;YACtB,eAAe,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,qGAAqG;YACrG,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACvD,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC7C,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,uBAAuB,CACtC,UAAU,EACV,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,eAAe,CAAC,CAChF;gBACH,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,cAAc,EAAE,UAAU,EAAC,CAAC,CAAC;YACjF,CAAC;YACD,qCAAqC;YACrC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC;QACrC,CAAC;QAED,oDAAoD;QACpD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;QAC5C,IAAI,SAAS,GAAG,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;QAC1F,CAAC;QAED,oBAAoB;QACpB,mDAAmD;QACnD,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC;QACrF,CAAC;QAED,oBAAoB;QACpB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,mFAAmF;IACnF,iCAAiC;IACjC,IAAI,WAAW,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,CAAC,qEAAqE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,OAAO,EAAC,cAAc,EAAE,WAAW,EAAE,WAAW,EAAC,CAAC;AAAA,CACnD"}
1
+ {"version":3,"file":"verifyBlocksSanityChecks.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSanityChecks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAgB,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAK9D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAMC,EACD,MAAqB,EACrB,IAAqB,EAKrB;IACA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,cAAc,GAAkB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAW,EAAE,CAAC;IAC/B,IAAI,WAAW,GAAsB,IAAI,CAAC;IAE1C,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAEnH,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,uEAAuE;YACvE,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,qDAAqD;gBACrD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACrE,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAC,CAAC,CAAC;QACxE,CAAC;QAED,oBAAoB;QACpB,mDAAmD;QACnD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,aAAa,EAAC,CAAC,CAAC;QACpE,CAAC;QAED,qBAAqB;QACrB,uDAAuD;QACvD,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/F,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,2BAA2B,EAAE,SAAS,EAAE,aAAa,EAAC,CAAC,CAAC;QAC5G,CAAC;QAED,MAAM,iBAAiB,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,eAAqB,CAAC;QAE1B,IAAI,iBAAiB,EAAE,CAAC;YACtB,eAAe,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,qGAAqG;YACrG,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,wBAAwB,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;YACvF,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC9B,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,cAAc,EAAE,UAAU,EAAC,CAAC,CAAC;YACjF,CAAC;YAED,WAAW,GAAG,wBAAwB,CAAC;YACvC,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACxG,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBACrG,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC5B,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE;wBAC1B,IAAI,EAAE,cAAc,CAAC,sBAAsB;wBAC3C,UAAU;wBACV,eAAe;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,WAAW,GAAG,sBAAsB,CAAC;YACvC,CAAC;YACD,qCAAqC;YACrC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC;QACrC,CAAC;QAED,oDAAoD;QACpD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;QAC5C,IAAI,SAAS,GAAG,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;QAC1F,CAAC;QAED,oBAAoB;QACpB,mDAAmD;QACnD,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC;QACrF,CAAC;QAED,oBAAoB;QACpB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,mFAAmF;IACnF,iCAAiC;IACjC,IAAI,WAAW,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,CAAC,qEAAqE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,OAAO,EAAC,cAAc,EAAE,WAAW,EAAE,WAAW,EAAC,CAAC;AAAA,CACnD"}
@@ -0,0 +1,24 @@
1
+ import { BeaconConfig } from "@lodestar/config";
2
+ import { type IBeaconStateViewGloas, type PubkeyCache } from "@lodestar/state-transition";
3
+ import { gloas } from "@lodestar/types";
4
+ import { IBlsVerifier } from "../bls/index.js";
5
+ export type VerifyExecutionPayloadEnvelopeOpts = {
6
+ verifyExecutionRequestsRoot?: boolean;
7
+ };
8
+ /**
9
+ * Verify execution payload envelope fields against the post-block state.
10
+ *
11
+ * Signature verification and the execution engine call (`verify_and_notify_new_payload`) are
12
+ * performed outside this function, see `verifyExecutionPayloadEnvelopeSignature` and
13
+ * `importExecutionPayload` which run both in parallel with this check.
14
+ *
15
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope
16
+ */
17
+ export declare function verifyExecutionPayloadEnvelope(config: BeaconConfig, state: IBeaconStateViewGloas, envelope: gloas.ExecutionPayloadEnvelope, opts?: VerifyExecutionPayloadEnvelopeOpts): void;
18
+ /**
19
+ * Verify the BLS signature of an execution payload envelope.
20
+ *
21
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope_signature
22
+ */
23
+ export declare function verifyExecutionPayloadEnvelopeSignature(config: BeaconConfig, state: IBeaconStateViewGloas, pubkeyCache: PubkeyCache, signedEnvelope: gloas.SignedExecutionPayloadEnvelope, proposerIndex: number, bls: IBlsVerifier): Promise<boolean>;
24
+ //# sourceMappingURL=verifyExecutionPayloadEnvelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyExecutionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/verifyExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAGjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,MAAM,MAAM,kCAAkC,GAAG;IAC/C,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,KAAK,CAAC,wBAAwB,EACxC,IAAI,CAAC,EAAE,kCAAkC,GACxC,IAAI,CA4EN;AAED;;;;GAIG;AACH,wBAAsB,uCAAuC,CAC3D,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,qBAAqB,EAC5B,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,KAAK,CAAC,8BAA8B,EACpD,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CASlB"}
@@ -0,0 +1,76 @@
1
+ import { computeTimeAtSlot, getExecutionPayloadEnvelopeSignatureSet, } from "@lodestar/state-transition";
2
+ import { ssz } from "@lodestar/types";
3
+ import { byteArrayEquals, toHex, toRootHex } from "@lodestar/utils";
4
+ /**
5
+ * Verify execution payload envelope fields against the post-block state.
6
+ *
7
+ * Signature verification and the execution engine call (`verify_and_notify_new_payload`) are
8
+ * performed outside this function, see `verifyExecutionPayloadEnvelopeSignature` and
9
+ * `importExecutionPayload` which run both in parallel with this check.
10
+ *
11
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope
12
+ */
13
+ export function verifyExecutionPayloadEnvelope(config, state, envelope, opts) {
14
+ const { verifyExecutionRequestsRoot = true } = opts ?? {};
15
+ const payload = envelope.payload;
16
+ // Verify consistency with the beacon block.
17
+ // Compute header root on a clone of latestBlockHeader to avoid mutating state.
18
+ const headerValue = ssz.phase0.BeaconBlockHeader.clone(state.latestBlockHeader);
19
+ if (byteArrayEquals(headerValue.stateRoot, ssz.Root.defaultValue())) {
20
+ headerValue.stateRoot = state.hashTreeRoot();
21
+ }
22
+ const headerRoot = ssz.phase0.BeaconBlockHeader.hashTreeRoot(headerValue);
23
+ if (!byteArrayEquals(envelope.beaconBlockRoot, headerRoot)) {
24
+ throw new Error(`Envelope's block is not the latest block header envelope=${toRootHex(envelope.beaconBlockRoot)} latestBlockHeader=${toRootHex(headerRoot)}`);
25
+ }
26
+ // Verify consistency with the committed bid
27
+ const bid = state.latestExecutionPayloadBid;
28
+ if (envelope.builderIndex !== bid.builderIndex) {
29
+ throw new Error(`Builder index mismatch between envelope and committed bid envelope=${envelope.builderIndex} bid=${bid.builderIndex}`);
30
+ }
31
+ if (!byteArrayEquals(bid.prevRandao, payload.prevRandao)) {
32
+ throw new Error(`Prev randao mismatch between bid and payload bid=${toHex(bid.prevRandao)} payload=${toHex(payload.prevRandao)}`);
33
+ }
34
+ if (Number(bid.gasLimit) !== payload.gasLimit) {
35
+ throw new Error(`Gas limit mismatch between payload and bid payload=${payload.gasLimit} bid=${Number(bid.gasLimit)}`);
36
+ }
37
+ if (!byteArrayEquals(bid.blockHash, payload.blockHash)) {
38
+ throw new Error(`Block hash mismatch between payload and bid payload=${toRootHex(payload.blockHash)} bid=${toRootHex(bid.blockHash)}`);
39
+ }
40
+ // Verify execution_requests_root matches bid commitment.
41
+ // Can be skipped if already verified during gossip validation.
42
+ if (verifyExecutionRequestsRoot) {
43
+ const requestsRoot = ssz.electra.ExecutionRequests.hashTreeRoot(envelope.executionRequests);
44
+ if (!byteArrayEquals(requestsRoot, bid.executionRequestsRoot)) {
45
+ throw new Error(`Execution requests root mismatch envelope=${toRootHex(requestsRoot)} bid=${toRootHex(bid.executionRequestsRoot)}`);
46
+ }
47
+ }
48
+ // Verify the execution payload is valid
49
+ if (payload.slotNumber !== state.slot) {
50
+ throw new Error(`Slot mismatch between payload and state payload=${payload.slotNumber} state=${state.slot}`);
51
+ }
52
+ if (!byteArrayEquals(payload.parentHash, state.latestBlockHash)) {
53
+ throw new Error(`Parent hash mismatch between payload and state payload=${toRootHex(payload.parentHash)} state=${toRootHex(state.latestBlockHash)}`);
54
+ }
55
+ const expectedTimestamp = computeTimeAtSlot(config, state.slot, state.genesisTime);
56
+ if (payload.timestamp !== expectedTimestamp) {
57
+ throw new Error(`Timestamp mismatch between payload and state payload=${payload.timestamp} state=${expectedTimestamp}`);
58
+ }
59
+ // Verify consistency with expected withdrawals
60
+ const payloadWithdrawalsRoot = ssz.capella.Withdrawals.hashTreeRoot(payload.withdrawals);
61
+ const expectedWithdrawalsRoot = ssz.capella.Withdrawals.hashTreeRoot(state.payloadExpectedWithdrawals);
62
+ if (!byteArrayEquals(payloadWithdrawalsRoot, expectedWithdrawalsRoot)) {
63
+ throw new Error(`Withdrawals mismatch between payload and expected payload=${toRootHex(payloadWithdrawalsRoot)} expected=${toRootHex(expectedWithdrawalsRoot)}`);
64
+ }
65
+ // Execution engine verification (verify_and_notify_new_payload) is done externally by the caller
66
+ }
67
+ /**
68
+ * Verify the BLS signature of an execution payload envelope.
69
+ *
70
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope_signature
71
+ */
72
+ export async function verifyExecutionPayloadEnvelopeSignature(config, state, pubkeyCache, signedEnvelope, proposerIndex, bls) {
73
+ const signatureSet = getExecutionPayloadEnvelopeSignatureSet(config, pubkeyCache, state, signedEnvelope, proposerIndex);
74
+ return bls.verifySignatureSets([signatureSet]);
75
+ }
76
+ //# sourceMappingURL=verifyExecutionPayloadEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyExecutionPayloadEnvelope.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyExecutionPayloadEnvelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { DataAvailabilityStatus } from "@lodestar/state-transition";
2
+ import { PayloadEnvelopeInput } from "../seenCache/seenPayloadEnvelopeInput.js";
3
+ export declare const PAYLOAD_DATA_AVAILABILITY_TIMEOUT = 12000;
4
+ /**
5
+ * Verifies that all payload envelope inputs have their data columns available.
6
+ * - Waits a max of PAYLOAD_DATA_AVAILABILITY_TIMEOUT for all data to be available
7
+ * - Returns the time at which all data was available
8
+ * - Returns the data availability status for each payload input
9
+ */
10
+ export declare function verifyPayloadsDataAvailability(payloadInputs: PayloadEnvelopeInput[], signal: AbortSignal): Promise<{
11
+ dataAvailabilityStatuses: DataAvailabilityStatus[];
12
+ availableTime: number;
13
+ }>;
14
+ //# sourceMappingURL=verifyPayloadsDataAvailability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyPayloadsDataAvailability.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/verifyPayloadsDataAvailability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAI9E,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,aAAa,EAAE,oBAAoB,EAAE,EACrC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC;IACT,wBAAwB,EAAE,sBAAsB,EAAE,CAAC;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAiBD"}
@@ -0,0 +1,25 @@
1
+ import { DataAvailabilityStatus } from "@lodestar/state-transition";
2
+ // we can now wait for full 12 seconds because sync and reconstruction will try pulling
3
+ // the data columns from the network anyway while the envelope is being processed
4
+ export const PAYLOAD_DATA_AVAILABILITY_TIMEOUT = 12_000;
5
+ /**
6
+ * Verifies that all payload envelope inputs have their data columns available.
7
+ * - Waits a max of PAYLOAD_DATA_AVAILABILITY_TIMEOUT for all data to be available
8
+ * - Returns the time at which all data was available
9
+ * - Returns the data availability status for each payload input
10
+ */
11
+ export async function verifyPayloadsDataAvailability(payloadInputs, signal) {
12
+ const promises = [];
13
+ for (const payloadInput of payloadInputs) {
14
+ if (!payloadInput.hasAllData()) {
15
+ promises.push(payloadInput.waitForAllData(PAYLOAD_DATA_AVAILABILITY_TIMEOUT, signal));
16
+ }
17
+ }
18
+ await Promise.all(promises);
19
+ const availableTime = Math.max(0, Math.max(...payloadInputs.map((payloadInput) => payloadInput.getTimeComplete())));
20
+ const dataAvailabilityStatuses = payloadInputs.map((payloadInput) => payloadInput.getBlobKzgCommitments().length === 0
21
+ ? DataAvailabilityStatus.NotRequired
22
+ : DataAvailabilityStatus.Available);
23
+ return { dataAvailabilityStatuses, availableTime };
24
+ }
25
+ //# sourceMappingURL=verifyPayloadsDataAvailability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyPayloadsDataAvailability.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyPayloadsDataAvailability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAIlE,uFAAuF;AACvF,iFAAiF;AACjF,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,aAAqC,EACrC,MAAmB,EAIlB;IACD,MAAM,QAAQ,GAAyC,EAAE,CAAC;IAC1D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IACpH,MAAM,wBAAwB,GAA6B,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAC5F,YAAY,CAAC,qBAAqB,EAAE,CAAC,MAAM,KAAK,CAAC;QAC/C,CAAC,CAAC,sBAAsB,CAAC,WAAW;QACpC,CAAC,CAAC,sBAAsB,CAAC,SAAS,CACrC,CAAC;IAEF,OAAO,EAAC,wBAAwB,EAAE,aAAa,EAAC,CAAC;AAAA,CAClD"}
@@ -3,7 +3,7 @@ import { PayloadEnvelopeInput } from "../seenCache/seenPayloadEnvelopeInput.js";
3
3
  /**
4
4
  * Persists payload envelope data to DB. This operation must be eventually completed if a payload is imported.
5
5
  *
6
- * TODO GLOAS: Persist envelope metadata (stateRoot, executionRequests, builderIndex, etc.) without the full
6
+ * TODO GLOAS: Persist envelope metadata (executionRequests, builderIndex, etc.) without the full
7
7
  * execution payload body — only keep the blockHash reference. The EL already stores the payload.
8
8
  * See https://github.com/ChainSafe/lodestar/issues/5671
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"writePayloadEnvelopeInputToDb.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAG9E;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"writePayloadEnvelopeInputToDb.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAG9E;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -2,7 +2,7 @@ import { writeDataColumnsToDb } from "./writeBlockInputToDb.js";
2
2
  /**
3
3
  * Persists payload envelope data to DB. This operation must be eventually completed if a payload is imported.
4
4
  *
5
- * TODO GLOAS: Persist envelope metadata (stateRoot, executionRequests, builderIndex, etc.) without the full
5
+ * TODO GLOAS: Persist envelope metadata (executionRequests, builderIndex, etc.) without the full
6
6
  * execution payload body — only keep the blockHash reference. The EL already stores the payload.
7
7
  * See https://github.com/ChainSafe/lodestar/issues/5671
8
8
  */
@@ -21,20 +21,11 @@ export async function writePayloadEnvelopeInputToDb(payloadInput) {
21
21
  });
22
22
  }
23
23
  export async function persistPayloadEnvelopeInput(payloadInput) {
24
- await writePayloadEnvelopeInputToDb
25
- .call(this, payloadInput)
26
- .catch((e) => {
24
+ await writePayloadEnvelopeInputToDb.call(this, payloadInput).catch((e) => {
27
25
  this.logger.error("Error persisting payload envelope in hot db", {
28
26
  slot: payloadInput.slot,
29
27
  root: payloadInput.blockRootHex,
30
28
  }, e);
31
- })
32
- .finally(() => {
33
- this.seenPayloadEnvelopeInputCache.prune(payloadInput.blockRootHex);
34
- this.logger.debug("Pruned payload envelope input", {
35
- slot: payloadInput.slot,
36
- root: payloadInput.blockRootHex,
37
- });
38
29
  });
39
30
  }
40
31
  //# sourceMappingURL=writePayloadEnvelopeInputToDb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writePayloadEnvelopeInputToDb.js","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAEjD,YAAkC,EACnB;IACf,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IAE/C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;QAC7G,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnD,mFAAmF;IACnF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;QACpD,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AAAA,CACJ;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAE/C,YAAkC,EACnB;IACf,MAAM,6BAA6B;SAChC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;SACxB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,EAC7C;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,YAAY;SAChC,EACD,CAAC,CACF,CAAC;IAAA,CACH,CAAC;SACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;YACjD,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,YAAY;SAChC,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;AAAA,CACN"}
1
+ {"version":3,"file":"writePayloadEnvelopeInputToDb.js","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAEjD,YAAkC,EACnB;IACf,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IAE/C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;QAC7G,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnD,mFAAmF;IACnF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;QACpD,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AAAA,CACJ;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAE/C,YAAkC,EACnB;IACf,MAAM,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,EAC7C;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,YAAY;SAChC,EACD,CAAC,CACF,CAAC;IAAA,CACH,CAAC,CAAC;AAAA,CACJ"}
@@ -1,9 +1,9 @@
1
1
  import { PrivateKey } from "@libp2p/interface";
2
2
  import { Type } from "@chainsafe/ssz";
3
3
  import { BeaconConfig } from "@lodestar/config";
4
- import { CheckpointWithPayloadStatus, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
4
+ import { CheckpointWithHex, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
5
5
  import { EpochShuffling, IBeaconStateView, PubkeyCache } from "@lodestar/state-transition";
6
- import { BeaconBlock, BlindedBeaconBlock, DataColumnSidecar, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, deneb, gloas, phase0, rewards } from "@lodestar/types";
6
+ import { BeaconBlock, BlindedBeaconBlock, DataColumnSidecar, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, deneb, electra, gloas, phase0, rewards } from "@lodestar/types";
7
7
  import { Logger } from "@lodestar/utils";
8
8
  import { ProcessShutdownCallback } from "@lodestar/validator";
9
9
  import { IBeaconDb } from "../db/index.js";
@@ -34,7 +34,7 @@ import { AssembledBlockType, BlockType, ProduceResult } from "./produceBlock/ind
34
34
  import { BlockAttributes } from "./produceBlock/produceBlockBody.js";
35
35
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
36
36
  import { ReprocessController } from "./reprocess.js";
37
- import { PayloadEnvelopeInput, SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages } from "./seenCache/index.js";
37
+ import { PayloadEnvelopeInput, SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenProposerPreferences, SeenSyncCommitteeMessages } from "./seenCache/index.js";
38
38
  import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js";
39
39
  import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
40
40
  import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
@@ -75,6 +75,7 @@ export declare class BeaconChain implements IBeaconChain {
75
75
  readonly seenPayloadAttesters: SeenPayloadAttesters;
76
76
  readonly seenAggregatedAttestations: SeenAggregatedAttestations;
77
77
  readonly seenExecutionPayloadBids: SeenExecutionPayloadBids;
78
+ readonly seenProposerPreferences: SeenProposerPreferences;
78
79
  readonly seenBlockProposers: SeenBlockProposers;
79
80
  readonly seenSyncCommitteeMessages: SeenSyncCommitteeMessages;
80
81
  readonly seenContributionAndProof: SeenContributionAndProof;
@@ -154,12 +155,12 @@ export declare class BeaconChain implements IBeaconChain {
154
155
  finalized: boolean;
155
156
  } | null>;
156
157
  getPersistedCheckpointState(checkpoint?: phase0.Checkpoint): Promise<Uint8Array | null>;
157
- getStateByCheckpoint(checkpoint: CheckpointWithPayloadStatus): {
158
+ getStateByCheckpoint(checkpoint: CheckpointWithHex): {
158
159
  state: IBeaconStateView;
159
160
  executionOptimistic: boolean;
160
161
  finalized: boolean;
161
162
  } | null;
162
- getStateOrBytesByCheckpoint(checkpoint: CheckpointWithPayloadStatus): Promise<{
163
+ getStateOrBytesByCheckpoint(checkpoint: CheckpointWithHex): Promise<{
163
164
  state: IBeaconStateView | Uint8Array;
164
165
  executionOptimistic: boolean;
165
166
  finalized: boolean;
@@ -184,6 +185,7 @@ export declare class BeaconChain implements IBeaconChain {
184
185
  getSerializedBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
185
186
  getSerializedExecutionPayloadEnvelope(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
186
187
  getExecutionPayloadEnvelope(blockSlot: Slot, blockRootHex: string): Promise<gloas.SignedExecutionPayloadEnvelope | null>;
188
+ getParentExecutionRequests(parentBlockSlot: Slot, parentBlockRootHex: RootHex): Promise<electra.ExecutionRequests>;
187
189
  getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecar[]>;
188
190
  getSerializedDataColumnSidecars(blockSlot: Slot, blockRootHex: string, indices: number[]): Promise<(Uint8Array | undefined)[]>;
189
191
  produceCommonBlockBody(blockAttributes: BlockAttributes): Promise<CommonBlockBody>;
@@ -211,7 +213,7 @@ export declare class BeaconChain implements IBeaconChain {
211
213
  shouldOverrideBuilder?: boolean;
212
214
  }>;
213
215
  processBlock(block: IBlockInput, opts?: ImportBlockOpts): Promise<void>;
214
- processChainSegment(blocks: IBlockInput[], opts?: ImportBlockOpts): Promise<void>;
216
+ processChainSegment(blocks: IBlockInput[], payloadEnvelopes: Map<Slot, PayloadEnvelopeInput> | null, opts?: ImportBlockOpts): Promise<void>;
215
217
  processExecutionPayload(payloadInput: PayloadEnvelopeInput, opts?: ImportPayloadOpts): Promise<void>;
216
218
  getStatus(): Status;
217
219
  recomputeForkChoiceHead(caller: ForkchoiceCaller): ProtoBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ import { BlockType } from "./produceBlock/index.js";
39
39
  import { produceBlockBody, produceCommonBlockBody } from "./produceBlock/produceBlockBody.js";
40
40
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
41
41
  import { ReprocessController } from "./reprocess.js";
42
- import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages, } from "./seenCache/index.js";
42
+ import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenProposerPreferences, SeenSyncCommitteeMessages, } from "./seenCache/index.js";
43
43
  import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js";
44
44
  import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
45
45
  import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
@@ -107,6 +107,7 @@ export class BeaconChain {
107
107
  seenPayloadAttesters = new SeenPayloadAttesters();
108
108
  seenAggregatedAttestations;
109
109
  seenExecutionPayloadBids = new SeenExecutionPayloadBids();
110
+ seenProposerPreferences = new SeenProposerPreferences();
110
111
  seenBlockProposers = new SeenBlockProposers();
111
112
  seenSyncCommitteeMessages = new SeenSyncCommitteeMessages();
112
113
  seenContributionAndProof;
@@ -635,6 +636,17 @@ export class BeaconChain {
635
636
  (await this.db.executionPayloadEnvelopeArchive.get(blockSlot)) ??
636
637
  null);
637
638
  }
639
+ async getParentExecutionRequests(parentBlockSlot, parentBlockRootHex) {
640
+ // at the fork boundary, parent is pre-gloas
641
+ if (!isForkPostGloas(this.config.getForkName(parentBlockSlot))) {
642
+ return ssz.electra.ExecutionRequests.defaultValue();
643
+ }
644
+ const envelope = await this.getExecutionPayloadEnvelope(parentBlockSlot, parentBlockRootHex);
645
+ if (envelope === null) {
646
+ throw Error(`Parent execution payload envelope not found slot=${parentBlockSlot}, root=${parentBlockRootHex}`);
647
+ }
648
+ return envelope.message.executionRequests;
649
+ }
638
650
  async getDataColumnSidecars(blockSlot, blockRootHex) {
639
651
  const fork = this.config.getForkName(blockSlot);
640
652
  if (isForkPostGloas(fork)) {
@@ -769,10 +781,10 @@ export class BeaconChain {
769
781
  return { block, executionPayloadValue, consensusBlockValue: gweiToWei(proposerReward), shouldOverrideBuilder };
770
782
  }
771
783
  async processBlock(block, opts) {
772
- return this.blockProcessor.processBlocksJob([block], opts);
784
+ return this.blockProcessor.processBlocksJob([block], null, opts);
773
785
  }
774
- async processChainSegment(blocks, opts) {
775
- return this.blockProcessor.processBlocksJob(blocks, opts);
786
+ async processChainSegment(blocks, payloadEnvelopes, opts) {
787
+ await this.blockProcessor.processBlocksJob(blocks, payloadEnvelopes, opts);
776
788
  }
777
789
  async processExecutionPayload(payloadInput, opts) {
778
790
  return this.payloadEnvelopeProcessor.processPayloadEnvelopeJob(payloadInput, opts);
@@ -973,7 +985,7 @@ export class BeaconChain {
973
985
  return { state: blockState, stateId: "block_state_same_epoch", shouldWarn: true };
974
986
  }
975
987
  // Find a state in the same branch of checkpoint at same epoch. Balances should exactly the same
976
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex, checkpoint.payloadStatus)) {
988
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendantsDefaultStatus(checkpoint.rootHex)) {
977
989
  if (computeEpochAtSlot(descendantBlock.slot) === checkpoint.epoch) {
978
990
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
979
991
  if (descendantBlockState) {
@@ -987,7 +999,7 @@ export class BeaconChain {
987
999
  }
988
1000
  // Find a state in the same branch of checkpoint at a latter epoch. Balances are not the same, but should be close
989
1001
  // Note: must call .forwardIterateDescendants() again since nodes are not sorted
990
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex, checkpoint.payloadStatus)) {
1002
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendantsDefaultStatus(checkpoint.rootHex)) {
991
1003
  if (computeEpochAtSlot(descendantBlock.slot) > checkpoint.epoch) {
992
1004
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
993
1005
  if (descendantBlockState) {
@@ -1045,6 +1057,7 @@ export class BeaconChain {
1045
1057
  this.payloadAttestationPool.prune(slot);
1046
1058
  this.executionPayloadBidPool.prune(slot);
1047
1059
  this.seenExecutionPayloadBids.prune(slot);
1060
+ this.seenProposerPreferences.prune(slot);
1048
1061
  this.seenAttestationDatas.onSlot(slot);
1049
1062
  this.reprocessController.onSlot(slot);
1050
1063
  // Prune old cached block production artifacts, those are only useful on their slot