@lodestar/beacon-node 1.35.0-dev.7a3b3a996e → 1.35.0-dev.811265f1e2

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 (385) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +46 -58
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/errors.js +0 -2
  4. package/lib/api/impl/errors.js.map +1 -1
  5. package/lib/api/impl/lodestar/index.js +1 -1
  6. package/lib/api/impl/lodestar/index.js.map +1 -1
  7. package/lib/api/impl/validator/index.js +1 -2
  8. package/lib/api/impl/validator/index.js.map +1 -1
  9. package/lib/api/rest/activeSockets.js +2 -3
  10. package/lib/api/rest/activeSockets.js.map +1 -1
  11. package/lib/api/rest/base.js +0 -4
  12. package/lib/api/rest/base.js.map +1 -1
  13. package/lib/api/rest/index.js +0 -2
  14. package/lib/api/rest/index.js.map +1 -1
  15. package/lib/api/rest/swaggerUI.js +2 -4
  16. package/lib/api/rest/swaggerUI.js.map +1 -1
  17. package/lib/chain/archiveStore/archiveStore.js +38 -49
  18. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  19. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -2
  20. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  21. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +0 -5
  22. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  23. package/lib/chain/balancesCache.js +3 -1
  24. package/lib/chain/balancesCache.js.map +1 -1
  25. package/lib/chain/beaconProposerCache.js +0 -1
  26. package/lib/chain/beaconProposerCache.js.map +1 -1
  27. package/lib/chain/blocks/blockInput/blockInput.d.ts +7 -19
  28. package/lib/chain/blocks/blockInput/blockInput.js +88 -132
  29. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  30. package/lib/chain/blocks/blockInput/types.d.ts +10 -19
  31. package/lib/chain/blocks/blockInput/types.js +0 -1
  32. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  33. package/lib/chain/blocks/blockInput/utils.d.ts +4 -0
  34. package/lib/chain/blocks/blockInput/utils.js +29 -6
  35. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  36. package/lib/chain/blocks/importBlock.js +12 -16
  37. package/lib/chain/blocks/importBlock.js.map +1 -1
  38. package/lib/chain/blocks/index.d.ts +4 -5
  39. package/lib/chain/blocks/index.js +4 -5
  40. package/lib/chain/blocks/index.js.map +1 -1
  41. package/lib/chain/blocks/types.d.ts +106 -3
  42. package/lib/chain/blocks/types.js +119 -0
  43. package/lib/chain/blocks/types.js.map +1 -1
  44. package/lib/chain/blocks/utils/chainSegment.d.ts +2 -2
  45. package/lib/chain/blocks/utils/chainSegment.js +2 -2
  46. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  47. package/lib/chain/blocks/verifyBlock.d.ts +3 -3
  48. package/lib/chain/blocks/verifyBlock.js +14 -15
  49. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  50. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts +22 -7
  51. package/lib/chain/blocks/verifyBlocksDataAvailability.js +110 -18
  52. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  53. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +3 -4
  54. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +22 -24
  55. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  56. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts +3 -4
  57. package/lib/chain/blocks/verifyBlocksSanityChecks.js +2 -2
  58. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  59. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +2 -3
  60. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +2 -2
  61. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  62. package/lib/chain/blocks/writeBlockInputToDb.d.ts +3 -3
  63. package/lib/chain/blocks/writeBlockInputToDb.js +66 -61
  64. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  65. package/lib/chain/bls/multithread/index.js +163 -167
  66. package/lib/chain/bls/multithread/index.js.map +1 -1
  67. package/lib/chain/bls/singleThread.js +0 -1
  68. package/lib/chain/bls/singleThread.js.map +1 -1
  69. package/lib/chain/chain.d.ts +10 -12
  70. package/lib/chain/chain.js +20 -79
  71. package/lib/chain/chain.js.map +1 -1
  72. package/lib/chain/emitter.d.ts +2 -43
  73. package/lib/chain/emitter.js +0 -18
  74. package/lib/chain/emitter.js.map +1 -1
  75. package/lib/chain/errors/blobSidecarError.d.ts +0 -24
  76. package/lib/chain/errors/blobSidecarError.js +0 -10
  77. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  78. package/lib/chain/errors/blockError.js +0 -1
  79. package/lib/chain/errors/blockError.js.map +1 -1
  80. package/lib/chain/errors/dataColumnSidecarError.d.ts +0 -42
  81. package/lib/chain/errors/dataColumnSidecarError.js +0 -14
  82. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  83. package/lib/chain/errors/gossipValidation.js +0 -1
  84. package/lib/chain/errors/gossipValidation.js.map +1 -1
  85. package/lib/chain/genesis/genesis.js +5 -16
  86. package/lib/chain/genesis/genesis.js.map +1 -1
  87. package/lib/chain/interface.d.ts +9 -12
  88. package/lib/chain/interface.js.map +1 -1
  89. package/lib/chain/lightClient/index.js +9 -16
  90. package/lib/chain/lightClient/index.js.map +1 -1
  91. package/lib/chain/opPools/aggregatedAttestationPool.js +8 -13
  92. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  93. package/lib/chain/opPools/attestationPool.js +2 -7
  94. package/lib/chain/opPools/attestationPool.js.map +1 -1
  95. package/lib/chain/opPools/opPool.js +12 -10
  96. package/lib/chain/opPools/opPool.js.map +1 -1
  97. package/lib/chain/opPools/syncCommitteeMessagePool.js +6 -9
  98. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  99. package/lib/chain/opPools/syncContributionAndProofPool.js +2 -5
  100. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  101. package/lib/chain/prepareNextSlot.js +136 -141
  102. package/lib/chain/prepareNextSlot.js.map +1 -1
  103. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
  104. package/lib/chain/produceBlock/produceBlockBody.js +10 -3
  105. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  106. package/lib/chain/regen/errors.js +0 -1
  107. package/lib/chain/regen/errors.js.map +1 -1
  108. package/lib/chain/regen/queued.js +28 -35
  109. package/lib/chain/regen/queued.js.map +1 -1
  110. package/lib/chain/regen/regen.js +0 -1
  111. package/lib/chain/regen/regen.js.map +1 -1
  112. package/lib/chain/reprocess.js +1 -3
  113. package/lib/chain/reprocess.js.map +1 -1
  114. package/lib/chain/seenCache/index.d.ts +1 -1
  115. package/lib/chain/seenCache/index.js +1 -1
  116. package/lib/chain/seenCache/index.js.map +1 -1
  117. package/lib/chain/seenCache/seenAggregateAndProof.js +6 -7
  118. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  119. package/lib/chain/seenCache/seenAttestationData.js +2 -5
  120. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  121. package/lib/chain/seenCache/seenAttesters.js +4 -2
  122. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  123. package/lib/chain/seenCache/seenBlockInput.d.ts +84 -0
  124. package/lib/chain/seenCache/seenBlockInput.js +225 -0
  125. package/lib/chain/seenCache/seenBlockInput.js.map +1 -0
  126. package/lib/chain/seenCache/seenBlockProposers.js +4 -2
  127. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  128. package/lib/chain/seenCache/seenCommittee.js +3 -1
  129. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  130. package/lib/chain/seenCache/seenCommitteeContribution.js +2 -3
  131. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  132. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +78 -74
  133. package/lib/chain/seenCache/seenGossipBlockInput.js +369 -235
  134. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  135. package/lib/chain/shufflingCache.js +2 -5
  136. package/lib/chain/shufflingCache.js.map +1 -1
  137. package/lib/chain/stateCache/blockStateCacheImpl.js +7 -13
  138. package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
  139. package/lib/chain/stateCache/datastore/db.js +0 -1
  140. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  141. package/lib/chain/stateCache/datastore/file.js +0 -1
  142. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  143. package/lib/chain/stateCache/fifoBlockStateCache.js +0 -10
  144. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  145. package/lib/chain/stateCache/inMemoryCheckpointsCache.js +4 -10
  146. package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
  147. package/lib/chain/stateCache/mapMetrics.js +4 -4
  148. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  149. package/lib/chain/stateCache/persistentCheckpointsCache.js +4 -13
  150. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  151. package/lib/chain/validation/blobSidecar.d.ts +3 -8
  152. package/lib/chain/validation/blobSidecar.js +31 -73
  153. package/lib/chain/validation/blobSidecar.js.map +1 -1
  154. package/lib/chain/validation/dataColumnSidecar.d.ts +9 -7
  155. package/lib/chain/validation/dataColumnSidecar.js +56 -94
  156. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  157. package/lib/chain/validatorMonitor.js +1 -2
  158. package/lib/chain/validatorMonitor.js.map +1 -1
  159. package/lib/db/beacon.js +0 -24
  160. package/lib/db/beacon.js.map +1 -1
  161. package/lib/db/repositories/depositDataRoot.js +0 -1
  162. package/lib/db/repositories/depositDataRoot.js.map +1 -1
  163. package/lib/db/single/preGenesisState.js +0 -6
  164. package/lib/db/single/preGenesisState.js.map +1 -1
  165. package/lib/db/single/preGenesisStateLastProcessedBlock.js +0 -5
  166. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
  167. package/lib/eth1/eth1DataCache.js +0 -2
  168. package/lib/eth1/eth1DataCache.js.map +1 -1
  169. package/lib/eth1/eth1DepositDataTracker.js +5 -18
  170. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  171. package/lib/eth1/eth1DepositsCache.js +0 -3
  172. package/lib/eth1/eth1DepositsCache.js.map +1 -1
  173. package/lib/eth1/eth1MergeBlockTracker.js +4 -10
  174. package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
  175. package/lib/eth1/index.js +0 -2
  176. package/lib/eth1/index.js.map +1 -1
  177. package/lib/eth1/provider/eth1Provider.js +2 -6
  178. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  179. package/lib/eth1/provider/jsonRpcHttpClient.js +2 -16
  180. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  181. package/lib/eth1/provider/utils.d.ts +0 -5
  182. package/lib/eth1/provider/utils.js +1 -9
  183. package/lib/eth1/provider/utils.js.map +1 -1
  184. package/lib/execution/builder/cache.js +0 -6
  185. package/lib/execution/builder/cache.js.map +1 -1
  186. package/lib/execution/builder/http.js +8 -14
  187. package/lib/execution/builder/http.js.map +1 -1
  188. package/lib/execution/engine/disabled.js +4 -2
  189. package/lib/execution/engine/disabled.js.map +1 -1
  190. package/lib/execution/engine/http.d.ts +2 -2
  191. package/lib/execution/engine/http.js +11 -43
  192. package/lib/execution/engine/http.js.map +1 -1
  193. package/lib/execution/engine/interface.d.ts +2 -2
  194. package/lib/execution/engine/mock.d.ts +0 -1
  195. package/lib/execution/engine/mock.js +12 -16
  196. package/lib/execution/engine/mock.js.map +1 -1
  197. package/lib/execution/engine/payloadIdCache.js +3 -1
  198. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  199. package/lib/execution/engine/types.d.ts +1 -5
  200. package/lib/execution/engine/types.js +8 -37
  201. package/lib/execution/engine/types.js.map +1 -1
  202. package/lib/execution/engine/utils.js +1 -2
  203. package/lib/execution/engine/utils.js.map +1 -1
  204. package/lib/metrics/metrics/beacon.d.ts +5 -11
  205. package/lib/metrics/metrics/beacon.js +20 -40
  206. package/lib/metrics/metrics/beacon.js.map +1 -1
  207. package/lib/metrics/metrics/lodestar.d.ts +13 -55
  208. package/lib/metrics/metrics/lodestar.js +7 -84
  209. package/lib/metrics/metrics/lodestar.js.map +1 -1
  210. package/lib/metrics/nodeJsMetrics.js +1 -1
  211. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  212. package/lib/metrics/utils/avgMinMax.js +6 -10
  213. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  214. package/lib/metrics/utils/gauge.js +4 -1
  215. package/lib/metrics/utils/gauge.js.map +1 -1
  216. package/lib/monitoring/properties.js +0 -4
  217. package/lib/monitoring/properties.js.map +1 -1
  218. package/lib/monitoring/service.js +1 -13
  219. package/lib/monitoring/service.js.map +1 -1
  220. package/lib/monitoring/system.js +27 -25
  221. package/lib/monitoring/system.js.map +1 -1
  222. package/lib/network/core/networkCore.d.ts +1 -1
  223. package/lib/network/core/networkCore.js +49 -66
  224. package/lib/network/core/networkCore.js.map +1 -1
  225. package/lib/network/core/networkCoreWorkerHandler.d.ts +1 -1
  226. package/lib/network/core/networkCoreWorkerHandler.js +1 -4
  227. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  228. package/lib/network/discv5/index.js +1 -4
  229. package/lib/network/discv5/index.js.map +1 -1
  230. package/lib/network/discv5/worker.js.map +1 -1
  231. package/lib/network/events.d.ts +18 -2
  232. package/lib/network/events.js +7 -0
  233. package/lib/network/events.js.map +1 -1
  234. package/lib/network/gossip/encoding.js +0 -2
  235. package/lib/network/gossip/encoding.js.map +1 -1
  236. package/lib/network/gossip/errors.js +0 -1
  237. package/lib/network/gossip/errors.js.map +1 -1
  238. package/lib/network/gossip/gossipsub.js +0 -7
  239. package/lib/network/gossip/gossipsub.js.map +1 -1
  240. package/lib/network/gossip/topic.d.ts +49 -49
  241. package/lib/network/gossip/topic.js +1 -2
  242. package/lib/network/gossip/topic.js.map +1 -1
  243. package/lib/network/interface.d.ts +1 -2
  244. package/lib/network/metadata.js +0 -4
  245. package/lib/network/metadata.js.map +1 -1
  246. package/lib/network/network.d.ts +1 -3
  247. package/lib/network/network.js +71 -89
  248. package/lib/network/network.js.map +1 -1
  249. package/lib/network/options.js +1 -1
  250. package/lib/network/options.js.map +1 -1
  251. package/lib/network/peers/datastore.js +2 -8
  252. package/lib/network/peers/datastore.js.map +1 -1
  253. package/lib/network/peers/discover.js +64 -74
  254. package/lib/network/peers/discover.js.map +1 -1
  255. package/lib/network/peers/peerManager.js +130 -154
  256. package/lib/network/peers/peerManager.js.map +1 -1
  257. package/lib/network/peers/peersData.d.ts +1 -1
  258. package/lib/network/peers/peersData.js +3 -1
  259. package/lib/network/peers/peersData.js.map +1 -1
  260. package/lib/network/peers/score/score.js +0 -6
  261. package/lib/network/peers/score/score.js.map +1 -1
  262. package/lib/network/peers/score/store.js +0 -3
  263. package/lib/network/peers/score/store.js.map +1 -1
  264. package/lib/network/peers/utils/subnetMap.js +4 -2
  265. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  266. package/lib/network/processor/aggregatorTracker.js +3 -1
  267. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  268. package/lib/network/processor/gossipHandlers.js +164 -145
  269. package/lib/network/processor/gossipHandlers.js.map +1 -1
  270. package/lib/network/processor/gossipQueues/indexed.js +9 -11
  271. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  272. package/lib/network/processor/gossipQueues/linear.js +8 -9
  273. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  274. package/lib/network/processor/index.d.ts +1 -2
  275. package/lib/network/processor/index.js +6 -21
  276. package/lib/network/processor/index.js.map +1 -1
  277. package/lib/network/reqresp/ReqRespBeaconNode.js +2 -11
  278. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  279. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +28 -0
  280. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +328 -0
  281. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -0
  282. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +49 -0
  283. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +499 -0
  284. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -0
  285. package/lib/network/reqresp/index.d.ts +2 -0
  286. package/lib/network/reqresp/index.js +2 -0
  287. package/lib/network/reqresp/index.js.map +1 -1
  288. package/lib/network/reqresp/rateLimit.js +5 -11
  289. package/lib/network/reqresp/rateLimit.js.map +1 -1
  290. package/lib/network/statusCache.js +0 -1
  291. package/lib/network/statusCache.js.map +1 -1
  292. package/lib/network/subnets/attnetsService.js +65 -73
  293. package/lib/network/subnets/attnetsService.js.map +1 -1
  294. package/lib/network/subnets/syncnetsService.js +22 -29
  295. package/lib/network/subnets/syncnetsService.js.map +1 -1
  296. package/lib/node/nodejs.js +0 -15
  297. package/lib/node/nodejs.js.map +1 -1
  298. package/lib/sync/backfill/backfill.js +15 -57
  299. package/lib/sync/backfill/backfill.js.map +1 -1
  300. package/lib/sync/constants.d.ts +1 -2
  301. package/lib/sync/constants.js +1 -2
  302. package/lib/sync/constants.js.map +1 -1
  303. package/lib/sync/interface.d.ts +59 -1
  304. package/lib/sync/interface.js +20 -0
  305. package/lib/sync/interface.js.map +1 -1
  306. package/lib/sync/options.d.ts +1 -1
  307. package/lib/sync/range/batch.d.ts +32 -48
  308. package/lib/sync/range/batch.js +55 -201
  309. package/lib/sync/range/batch.js.map +1 -1
  310. package/lib/sync/range/chain.d.ts +10 -15
  311. package/lib/sync/range/chain.js +70 -141
  312. package/lib/sync/range/chain.js.map +1 -1
  313. package/lib/sync/range/range.d.ts +2 -2
  314. package/lib/sync/range/range.js +54 -86
  315. package/lib/sync/range/range.js.map +1 -1
  316. package/lib/sync/range/utils/hashBlocks.d.ts +2 -2
  317. package/lib/sync/range/utils/hashBlocks.js +4 -6
  318. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  319. package/lib/sync/range/utils/peerBalancer.js +13 -18
  320. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  321. package/lib/sync/sync.js +87 -95
  322. package/lib/sync/sync.js.map +1 -1
  323. package/lib/sync/unknownBlock.d.ts +28 -42
  324. package/lib/sync/unknownBlock.js +458 -404
  325. package/lib/sync/unknownBlock.js.map +1 -1
  326. package/lib/sync/utils/pendingBlocksTree.d.ts +6 -14
  327. package/lib/sync/utils/pendingBlocksTree.js +18 -24
  328. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  329. package/lib/util/array.js +3 -7
  330. package/lib/util/array.js.map +1 -1
  331. package/lib/util/asyncIterableToEvents.js +3 -6
  332. package/lib/util/asyncIterableToEvents.js.map +1 -1
  333. package/lib/util/binarySearch.js +0 -2
  334. package/lib/util/binarySearch.js.map +1 -1
  335. package/lib/util/blobs.d.ts +2 -2
  336. package/lib/util/blobs.js +4 -4
  337. package/lib/util/blobs.js.map +1 -1
  338. package/lib/util/bufferPool.js +2 -7
  339. package/lib/util/bufferPool.js.map +1 -1
  340. package/lib/util/clock.js +18 -23
  341. package/lib/util/clock.js.map +1 -1
  342. package/lib/util/dataColumns.d.ts +12 -15
  343. package/lib/util/dataColumns.js +132 -90
  344. package/lib/util/dataColumns.js.map +1 -1
  345. package/lib/util/itTrigger.js +4 -4
  346. package/lib/util/itTrigger.js.map +1 -1
  347. package/lib/util/map.js +0 -2
  348. package/lib/util/map.js.map +1 -1
  349. package/lib/util/queue/itemQueue.js +49 -52
  350. package/lib/util/queue/itemQueue.js.map +1 -1
  351. package/lib/util/serializedCache.js +3 -1
  352. package/lib/util/serializedCache.js.map +1 -1
  353. package/lib/util/set.js +0 -2
  354. package/lib/util/set.js.map +1 -1
  355. package/lib/util/sszBytes.d.ts +0 -1
  356. package/lib/util/sszBytes.js +1 -1
  357. package/lib/util/sszBytes.js.map +1 -1
  358. package/lib/util/timeSeries.js +1 -3
  359. package/lib/util/timeSeries.js.map +1 -1
  360. package/lib/util/types.d.ts +1 -1
  361. package/lib/util/types.js +2 -2
  362. package/lib/util/types.js.map +1 -1
  363. package/lib/util/wrapError.d.ts +0 -7
  364. package/package.json +16 -22
  365. package/lib/bun-wrappers/prometheus-gc-stats.d.ts +0 -2
  366. package/lib/bun-wrappers/prometheus-gc-stats.js +0 -8
  367. package/lib/bun-wrappers/prometheus-gc-stats.js.map +0 -1
  368. package/lib/chain/ColumnReconstructionTracker.d.ts +0 -32
  369. package/lib/chain/ColumnReconstructionTracker.js +0 -67
  370. package/lib/chain/ColumnReconstructionTracker.js.map +0 -1
  371. package/lib/chain/GetBlobsTracker.d.ts +0 -31
  372. package/lib/chain/GetBlobsTracker.js +0 -82
  373. package/lib/chain/GetBlobsTracker.js.map +0 -1
  374. package/lib/sync/types.d.ts +0 -44
  375. package/lib/sync/types.js +0 -34
  376. package/lib/sync/types.js.map +0 -1
  377. package/lib/sync/utils/downloadByRange.d.ts +0 -186
  378. package/lib/sync/utils/downloadByRange.js +0 -457
  379. package/lib/sync/utils/downloadByRange.js.map +0 -1
  380. package/lib/sync/utils/downloadByRoot.d.ts +0 -119
  381. package/lib/sync/utils/downloadByRoot.js +0 -319
  382. package/lib/sync/utils/downloadByRoot.js.map +0 -1
  383. package/lib/util/execution.d.ts +0 -20
  384. package/lib/util/execution.js +0 -148
  385. package/lib/util/execution.js.map +0 -1
@@ -25,15 +25,9 @@ function createPromise() {
25
25
  };
26
26
  }
27
27
  class AbstractBlockInput {
28
- daOutOfRange;
29
- timeCreatedSec;
30
- forkName;
31
- slot;
32
- blockRootHex;
33
- parentRootHex;
34
- blockPromise = createPromise();
35
- dataPromise = createPromise();
36
28
  constructor(init) {
29
+ this.blockPromise = createPromise();
30
+ this.dataPromise = createPromise();
37
31
  this.daOutOfRange = init.daOutOfRange;
38
32
  this.timeCreatedSec = init.timeCreated;
39
33
  this.forkName = init.forkName;
@@ -70,8 +64,8 @@ class AbstractBlockInput {
70
64
  }
71
65
  getLogMeta() {
72
66
  return {
73
- slot: this.slot,
74
67
  blockRoot: prettyBytes(this.blockRootHex),
68
+ slot: this.slot,
75
69
  timeCreatedSec: this.timeCreatedSec,
76
70
  };
77
71
  }
@@ -105,18 +99,15 @@ class AbstractBlockInput {
105
99
  * - the block simply exists
106
100
  */
107
101
  export class BlockInputPreData extends AbstractBlockInput {
108
- type = DAType.PreData;
109
- state;
110
102
  constructor(init, state) {
111
103
  super(init);
104
+ this.type = DAType.PreData;
112
105
  this.state = state;
113
- this.dataPromise.resolve(null);
114
- this.blockPromise.resolve(state.block);
115
106
  }
116
107
  static createFromBlock(props) {
117
108
  const init = {
118
109
  daOutOfRange: props.daOutOfRange,
119
- timeCreated: props.seenTimestampSec,
110
+ timeCreated: props.source.seenTimestampSec,
120
111
  forkName: props.forkName,
121
112
  slot: props.block.message.slot,
122
113
  blockRootHex: props.blockRootHex,
@@ -126,22 +117,16 @@ export class BlockInputPreData extends AbstractBlockInput {
126
117
  hasBlock: true,
127
118
  hasAllData: true,
128
119
  block: props.block,
129
- source: {
130
- source: props.source,
131
- seenTimestampSec: props.seenTimestampSec,
132
- peerIdStr: props.peerIdStr,
133
- },
134
- timeCompleteSec: props.seenTimestampSec,
120
+ source: props.source,
121
+ timeCompleteSec: props.source.seenTimestampSec,
135
122
  };
136
123
  return new BlockInputPreData(init, state);
137
124
  }
138
- addBlock(_, opts = { throwOnDuplicateAdd: true }) {
139
- if (opts.throwOnDuplicateAdd) {
140
- throw new BlockInputError({
141
- code: BlockInputErrorCode.INVALID_CONSTRUCTION,
142
- blockRoot: this.blockRootHex,
143
- }, "Cannot addBlock to BlockInputPreData");
144
- }
125
+ addBlock(_) {
126
+ throw new BlockInputError({
127
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
128
+ blockRoot: this.blockRootHex,
129
+ }, "Cannot addBlock to BlockInputPreData");
145
130
  }
146
131
  }
147
132
  /**
@@ -151,11 +136,10 @@ export class BlockInputPreData extends AbstractBlockInput {
151
136
  * - The block is yet not seen and its unknown if all blobs are seen
152
137
  */
153
138
  export class BlockInputBlobs extends AbstractBlockInput {
154
- type = DAType.Blobs;
155
- state;
156
- blobsCache = new Map();
157
139
  constructor(init, state) {
158
140
  super(init);
141
+ this.type = DAType.Blobs;
142
+ this.blobsCache = new Map();
159
143
  this.state = state;
160
144
  }
161
145
  static createFromBlock(props) {
@@ -165,16 +149,12 @@ export class BlockInputBlobs extends AbstractBlockInput {
165
149
  hasAllData,
166
150
  versionedHashes: props.block.message.body.blobKzgCommitments.map(kzgCommitmentToVersionedHash),
167
151
  block: props.block,
168
- source: {
169
- source: props.source,
170
- seenTimestampSec: props.seenTimestampSec,
171
- peerIdStr: props.peerIdStr,
172
- },
173
- timeCompleteSec: hasAllData ? props.seenTimestampSec : undefined,
152
+ source: props.source,
153
+ timeCompleteSec: hasAllData ? props.source.seenTimestampSec : undefined,
174
154
  };
175
155
  const init = {
176
156
  daOutOfRange: props.daOutOfRange,
177
- timeCreated: props.seenTimestampSec,
157
+ timeCreated: props.source.seenTimestampSec,
178
158
  forkName: props.forkName,
179
159
  slot: props.block.message.slot,
180
160
  blockRootHex: props.blockRootHex,
@@ -211,33 +191,30 @@ export class BlockInputBlobs extends AbstractBlockInput {
211
191
  }
212
192
  getLogMeta() {
213
193
  return {
214
- slot: this.slot,
215
194
  blockRoot: prettyBytes(this.blockRootHex),
195
+ slot: this.slot,
216
196
  timeCreatedSec: this.timeCreatedSec,
217
197
  expectedBlobs: this.state.hasBlock ? this.state.block.message.body.blobKzgCommitments.length : "unknown",
218
198
  receivedBlobs: this.blobsCache.size,
219
199
  };
220
200
  }
221
- addBlock({ blockRootHex, block, source, seenTimestampSec, peerIdStr }, opts = { throwOnDuplicateAdd: true }) {
201
+ addBlock({ blockRootHex, block, source }) {
202
+ if (this.state.hasBlock) {
203
+ throw new BlockInputError({
204
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
205
+ blockRoot: this.blockRootHex,
206
+ }, "Cannot addBlock to BlockInputBlobs after it already has a block");
207
+ }
222
208
  // this check suffices for checking slot, parentRoot, and forkName
223
209
  if (blockRootHex !== this.blockRootHex) {
224
210
  throw new BlockInputError({
225
211
  code: BlockInputErrorCode.MISMATCHED_ROOT_HEX,
226
212
  blockInputRoot: this.blockRootHex,
227
213
  mismatchedRoot: blockRootHex,
228
- source,
229
- peerId: `${peerIdStr}`,
214
+ source: source.source,
215
+ peerId: `${source.peerIdStr}`,
230
216
  }, "addBlock blockRootHex does not match BlockInput.blockRootHex");
231
217
  }
232
- if (!opts.throwOnDuplicateAdd) {
233
- return;
234
- }
235
- if (this.state.hasBlock) {
236
- throw new BlockInputError({
237
- code: BlockInputErrorCode.INVALID_CONSTRUCTION,
238
- blockRoot: this.blockRootHex,
239
- }, "Cannot addBlock to BlockInputBlobs after it already has a block");
240
- }
241
218
  for (const { blobSidecar } of this.blobsCache.values()) {
242
219
  if (!blockAndBlobArePaired(block, blobSidecar)) {
243
220
  this.blobsCache.delete(blobSidecar.index);
@@ -252,12 +229,8 @@ export class BlockInputBlobs extends AbstractBlockInput {
252
229
  hasAllData,
253
230
  block,
254
231
  versionedHashes: block.message.body.blobKzgCommitments.map(kzgCommitmentToVersionedHash),
255
- source: {
256
- source,
257
- seenTimestampSec,
258
- peerIdStr,
259
- },
260
- timeCompleteSec: hasAllData ? seenTimestampSec : undefined,
232
+ source,
233
+ timeCompleteSec: hasAllData ? source.seenTimestampSec : undefined,
261
234
  };
262
235
  this.blockPromise.resolve(block);
263
236
  if (hasAllData) {
@@ -267,7 +240,19 @@ export class BlockInputBlobs extends AbstractBlockInput {
267
240
  hasBlob(blobIndex) {
268
241
  return this.blobsCache.has(blobIndex);
269
242
  }
270
- addBlob({ blockRootHex, blobSidecar, source, peerIdStr, seenTimestampSec }, opts = { throwOnDuplicateAdd: true }) {
243
+ addBlob({ blockRootHex, blobSidecar, source, peerIdStr, seenTimestampSec }) {
244
+ if (this.state.hasAllData) {
245
+ throw new BlockInputError({
246
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
247
+ blockRoot: this.blockRootHex,
248
+ }, "Cannot addBlob to BlockInputBlobs after it already is complete");
249
+ }
250
+ if (this.blobsCache.has(blobSidecar.index)) {
251
+ throw new BlockInputError({
252
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
253
+ blockRoot: this.blockRootHex,
254
+ }, "Cannot addBlob to BlockInputBlobs with duplicate blobIndex");
255
+ }
271
256
  // this check suffices for checking slot, parentRoot, and forkName
272
257
  if (blockRootHex !== this.blockRootHex) {
273
258
  throw new BlockInputError({
@@ -278,19 +263,9 @@ export class BlockInputBlobs extends AbstractBlockInput {
278
263
  peerId: `${peerIdStr}`,
279
264
  }, "Blob BeaconBlockHeader blockRootHex does not match BlockInput.blockRootHex");
280
265
  }
281
- const isDuplicate = this.blobsCache.has(blobSidecar.index);
282
- if (isDuplicate && opts.throwOnDuplicateAdd) {
283
- throw new BlockInputError({
284
- code: BlockInputErrorCode.INVALID_CONSTRUCTION,
285
- blockRoot: this.blockRootHex,
286
- }, "Cannot addBlob to BlockInputBlobs with duplicate blobIndex");
287
- }
288
266
  if (this.state.hasBlock) {
289
267
  assertBlockAndBlobArePaired(this.blockRootHex, this.state.block, blobSidecar);
290
268
  }
291
- if (isDuplicate) {
292
- return;
293
- }
294
269
  this.blobsCache.set(blobSidecar.index, { blobSidecar, source, seenTimestampSec, peerIdStr });
295
270
  if (this.state.hasBlock && this.blobsCache.size === this.state.block.message.body.blobKzgCommitments.length) {
296
271
  this.state = {
@@ -327,7 +302,7 @@ export class BlockInputBlobs extends AbstractBlockInput {
327
302
  blobMeta.push({
328
303
  index,
329
304
  blockRoot: fromHex(this.blockRootHex),
330
- versionedHash: versionedHashes[index],
305
+ versionHash: versionedHashes[index],
331
306
  });
332
307
  }
333
308
  }
@@ -374,20 +349,14 @@ function assertBlockAndBlobArePaired(blockRootHex, block, blobSidecar) {
374
349
  * - The block is not yet seen and all required sampled columns are not yet seen
375
350
  */
376
351
  export class BlockInputColumns extends AbstractBlockInput {
377
- type = DAType.Columns;
378
- state;
379
- columnsCache = new Map();
380
- sampledColumns;
381
- custodyColumns;
382
352
  constructor(init, state, sampledColumns, custodyColumns) {
383
353
  super(init);
354
+ this.type = DAType.Columns;
355
+ this.columnsCache = new Map();
384
356
  this.state = state;
385
357
  this.sampledColumns = sampledColumns;
386
358
  this.custodyColumns = custodyColumns;
387
359
  }
388
- get columnCount() {
389
- return this.columnsCache.size;
390
- }
391
360
  static createFromBlock(props) {
392
361
  const hasAllData = props.daOutOfRange ||
393
362
  props.block.message.body.blobKzgCommitments.length === 0 ||
@@ -397,17 +366,13 @@ export class BlockInputColumns extends AbstractBlockInput {
397
366
  hasAllData,
398
367
  versionedHashes: props.block.message.body.blobKzgCommitments.map(kzgCommitmentToVersionedHash),
399
368
  block: props.block,
400
- source: {
401
- source: props.source,
402
- seenTimestampSec: props.seenTimestampSec,
403
- peerIdStr: props.peerIdStr,
404
- },
405
- timeCreated: props.seenTimestampSec,
406
- timeCompleteSec: hasAllData ? props.seenTimestampSec : undefined,
369
+ source: props.source,
370
+ timeCreated: props.source.seenTimestampSec,
371
+ timeCompleteSec: hasAllData ? props.source.seenTimestampSec : undefined,
407
372
  };
408
373
  const init = {
409
374
  daOutOfRange: props.daOutOfRange,
410
- timeCreated: props.seenTimestampSec,
375
+ timeCreated: props.source.seenTimestampSec,
411
376
  forkName: props.forkName,
412
377
  blockRootHex: props.blockRootHex,
413
378
  parentRootHex: toRootHex(props.block.message.parentRoot),
@@ -443,8 +408,8 @@ export class BlockInputColumns extends AbstractBlockInput {
443
408
  }
444
409
  getLogMeta() {
445
410
  return {
446
- slot: this.slot,
447
411
  blockRoot: prettyBytes(this.blockRootHex),
412
+ slot: this.slot,
448
413
  timeCreatedSec: this.timeCreatedSec,
449
414
  expectedColumns: this.state.hasBlock && this.state.block.message.body.blobKzgCommitments.length === 0
450
415
  ? 0
@@ -452,24 +417,27 @@ export class BlockInputColumns extends AbstractBlockInput {
452
417
  receivedColumns: this.getSampledColumns().length,
453
418
  };
454
419
  }
455
- addBlock(props, opts = { throwOnDuplicateAdd: true }) {
420
+ addBlock(props) {
421
+ if (this.state.hasBlock) {
422
+ throw new BlockInputError({
423
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
424
+ blockRoot: this.blockRootHex,
425
+ }, "Cannot addBlock to BlockInputColumns after it already has a block");
426
+ }
456
427
  if (props.blockRootHex !== this.blockRootHex) {
457
428
  throw new BlockInputError({
458
429
  code: BlockInputErrorCode.MISMATCHED_ROOT_HEX,
459
430
  blockInputRoot: this.blockRootHex,
460
431
  mismatchedRoot: props.blockRootHex,
461
- source: props.source,
462
- peerId: `${props.peerIdStr}`,
432
+ source: props.source.source,
433
+ peerId: `${props.source.peerIdStr}`,
463
434
  }, "addBlock blockRootHex does not match BlockInput.blockRootHex");
464
435
  }
465
- if (!opts.throwOnDuplicateAdd) {
466
- return;
467
- }
468
- if (this.state.hasBlock) {
469
- throw new BlockInputError({
470
- code: BlockInputErrorCode.INVALID_CONSTRUCTION,
471
- blockRoot: this.blockRootHex,
472
- }, "Cannot addBlock to BlockInputColumns after it already has a block");
436
+ for (const { columnSidecar } of this.columnsCache.values()) {
437
+ if (!blockAndColumnArePaired(props.block, columnSidecar)) {
438
+ this.columnsCache.delete(columnSidecar.index);
439
+ // this.logger?.error(`Removing columnIndex=${columnSidecar.index} from BlockInput`, {}, err);
440
+ }
473
441
  }
474
442
  const hasAllData = props.block.message.body.blobKzgCommitments.length === 0 || this.state.hasAllData;
475
443
  this.state = {
@@ -477,16 +445,12 @@ export class BlockInputColumns extends AbstractBlockInput {
477
445
  hasBlock: true,
478
446
  hasAllData,
479
447
  block: props.block,
480
- source: {
481
- source: props.source,
482
- seenTimestampSec: props.seenTimestampSec,
483
- peerIdStr: props.peerIdStr,
484
- },
485
- timeCompleteSec: hasAllData ? props.seenTimestampSec : undefined,
448
+ source: props.source,
449
+ timeCompleteSec: hasAllData ? props.source.seenTimestampSec : undefined,
486
450
  };
487
451
  this.blockPromise.resolve(props.block);
488
452
  }
489
- addColumn({ blockRootHex, columnSidecar, source, seenTimestampSec, peerIdStr }, opts = { throwOnDuplicateAdd: true }) {
453
+ addColumn({ blockRootHex, columnSidecar, source, seenTimestampSec, peerIdStr }) {
490
454
  if (blockRootHex !== this.blockRootHex) {
491
455
  throw new BlockInputError({
492
456
  code: BlockInputErrorCode.MISMATCHED_ROOT_HEX,
@@ -496,15 +460,8 @@ export class BlockInputColumns extends AbstractBlockInput {
496
460
  peerId: `${peerIdStr}`,
497
461
  }, "Column BeaconBlockHeader blockRootHex does not match BlockInput.blockRootHex");
498
462
  }
499
- const isDuplicate = this.columnsCache.has(columnSidecar.index);
500
- if (isDuplicate && opts.throwOnDuplicateAdd) {
501
- throw new BlockInputError({
502
- code: BlockInputErrorCode.INVALID_CONSTRUCTION,
503
- blockRoot: this.blockRootHex,
504
- }, "Cannot addColumn to BlockInputColumns with duplicate column index");
505
- }
506
- if (isDuplicate) {
507
- return;
463
+ if (this.state.hasBlock) {
464
+ assertBlockAndColumnArePaired(this.blockRootHex, this.state.block, columnSidecar);
508
465
  }
509
466
  this.columnsCache.set(columnSidecar.index, { columnSidecar, source, seenTimestampSec, peerIdStr });
510
467
  const sampledColumns = this.getSampledColumns();
@@ -534,16 +491,6 @@ export class BlockInputColumns extends AbstractBlockInput {
534
491
  }
535
492
  return columns;
536
493
  }
537
- getSampledColumnsWithSource() {
538
- const columns = [];
539
- for (const index of this.sampledColumns) {
540
- const column = this.columnsCache.get(index);
541
- if (column) {
542
- columns.push(column);
543
- }
544
- }
545
- return columns;
546
- }
547
494
  getSampledColumns() {
548
495
  const columns = [];
549
496
  for (const index of this.sampledColumns) {
@@ -562,21 +509,30 @@ export class BlockInputColumns extends AbstractBlockInput {
562
509
  }
563
510
  getMissingSampledColumnMeta() {
564
511
  if (this.state.hasAllData) {
565
- return {
566
- missing: [],
567
- versionedHashes: this.state.versionedHashes,
568
- };
512
+ return [];
569
513
  }
570
- const missing = [];
514
+ const needed = [];
515
+ const blockRoot = fromHex(this.blockRootHex);
571
516
  for (const index of this.sampledColumns) {
572
517
  if (!this.columnsCache.has(index)) {
573
- missing.push(index);
518
+ needed.push({ index, blockRoot });
574
519
  }
575
520
  }
576
- return {
577
- missing,
578
- versionedHashes: this.state.versionedHashes,
579
- };
521
+ return needed;
522
+ }
523
+ }
524
+ function blockAndColumnArePaired(block, columnSidecar) {
525
+ return (block.message.body.blobKzgCommitments.length === columnSidecar.kzgCommitments.length &&
526
+ block.message.body.blobKzgCommitments.every((commitment, index) => Buffer.compare(commitment, columnSidecar.kzgCommitments[index])));
527
+ }
528
+ function assertBlockAndColumnArePaired(blockRootHex, block, columnSidecar) {
529
+ if (!blockAndColumnArePaired(block, columnSidecar)) {
530
+ throw new BlockInputError({
531
+ code: BlockInputErrorCode.MISMATCHED_KZG_COMMITMENT,
532
+ blockRoot: blockRootHex,
533
+ slot: block.message.slot,
534
+ sidecarIndex: columnSidecar.index,
535
+ }, "DataColumnsSidecar kzgCommitment does not match block kzgCommitment");
580
536
  }
581
537
  }
582
538
  //# sourceMappingURL=blockInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockInput.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/blockInput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockInput.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/blockInput.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { ForkName } from "@lodestar/params";
2
- import { ColumnIndex, RootHex, SignedBeaconBlock, Slot, deneb, fulu } from "@lodestar/types";
3
- import { VersionedHashes } from "../../../execution/index.js";
2
+ import { RootHex, SignedBeaconBlock, Slot, deneb, fulu } from "@lodestar/types";
4
3
  export declare enum DAType {
5
4
  PreData = "pre-data",
6
5
  Blobs = "blobs",
@@ -16,8 +15,7 @@ export declare enum BlockInputSource {
16
15
  api = "api",
17
16
  engine = "engine",
18
17
  byRange = "req_resp_by_range",
19
- byRoot = "req_resp_by_root",
20
- recovery = "recovery"
18
+ byRoot = "req_resp_by_root"
21
19
  }
22
20
  export type PromiseParts<T> = {
23
21
  promise: Promise<T>;
@@ -42,10 +40,6 @@ export type SourceMeta = {
42
40
  seenTimestampSec: number;
43
41
  peerIdStr?: string;
44
42
  };
45
- export type BlockWithSource = SourceMeta & {
46
- block: SignedBeaconBlock;
47
- blockRootHex: RootHex;
48
- };
49
43
  export type BlobWithSource = SourceMeta & {
50
44
  blobSidecar: deneb.BlobSidecar;
51
45
  };
@@ -67,9 +61,10 @@ export type BlockInputInit = BlockHeaderMeta & {
67
61
  daOutOfRange: boolean;
68
62
  timeCreated: number;
69
63
  };
70
- export type AddBlock<F extends ForkName = ForkName> = SourceMeta & {
64
+ export type AddBlock<F extends ForkName = ForkName> = {
71
65
  block: SignedBeaconBlock<F>;
72
66
  blockRootHex: string;
67
+ source: SourceMeta;
73
68
  };
74
69
  export type AddBlob = BlobWithSource & {
75
70
  blockRootHex: RootHex;
@@ -77,14 +72,12 @@ export type AddBlob = BlobWithSource & {
77
72
  export type AddColumn = ColumnWithSource & {
78
73
  blockRootHex: RootHex;
79
74
  };
80
- export type BlobMeta = {
81
- index: number;
82
- blockRoot: Uint8Array;
83
- versionedHash: Uint8Array;
75
+ export type BlobMeta = ColumnMeta & {
76
+ versionHash: Uint8Array;
84
77
  };
85
- export type MissingColumnMeta = {
86
- missing: ColumnIndex[];
87
- versionedHashes: VersionedHashes;
78
+ export type ColumnMeta = {
79
+ blockRoot: Uint8Array;
80
+ index: number;
88
81
  };
89
82
  /**
90
83
  * This is used to validate that BlockInput implementations follow some minimal subset of operations
@@ -101,9 +94,7 @@ export interface IBlockInput<F extends ForkName = ForkName, TData extends DAData
101
94
  slot: Slot;
102
95
  blockRootHex: string;
103
96
  parentRootHex: string;
104
- addBlock(props: AddBlock<F>, opts?: {
105
- throwOnDuplicateAdd: boolean;
106
- }): void;
97
+ addBlock(props: AddBlock<F>): void;
107
98
  /** Whether the block has been seen and validated. If true, `getBlock` is guaranteed to not throw */
108
99
  hasBlock(): boolean;
109
100
  getBlock(): SignedBeaconBlock<F>;
@@ -15,6 +15,5 @@ export var BlockInputSource;
15
15
  BlockInputSource["engine"] = "engine";
16
16
  BlockInputSource["byRange"] = "req_resp_by_range";
17
17
  BlockInputSource["byRoot"] = "req_resp_by_root";
18
- BlockInputSource["recovery"] = "recovery";
19
18
  })(BlockInputSource || (BlockInputSource = {}));
20
19
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,8BAAoB,CAAA;IACpB,yBAAe,CAAA;IACf,6BAAmB,CAAA;AACrB,CAAC,EAJW,MAAM,KAAN,MAAM,QAIjB;AAID;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,iDAA6B,CAAA;IAC7B,+CAA2B,CAAA;IAC3B,yCAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,8BAAoB,CAAA;IACpB,yBAAe,CAAA;IACf,6BAAmB,CAAA;AACrB,CAAC,EAJW,MAAM,KAAN,MAAM,QAIjB;AAID;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,iDAA6B,CAAA;IAC7B,+CAA2B,CAAA;AAC7B,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B"}
@@ -1,5 +1,9 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
2
  import { ForkName } from "@lodestar/params";
3
3
  import { Epoch, Slot } from "@lodestar/types";
4
+ import { BlobsSource, BlockSource as BlockSourceOld } from "../types.js";
5
+ import { BlockInputSource as BlockSource } from "./types.js";
4
6
  export declare function isDaOutOfRange(config: ChainForkConfig, forkName: ForkName, blockSlot: Slot, currentEpoch: Epoch): boolean;
7
+ export declare function convertNewToOldBlockSource(source: BlockSource): BlockSourceOld;
8
+ export declare function convertNewToOldBlobSource(source: BlockSource): BlobsSource;
5
9
  //# sourceMappingURL=utils.d.ts.map
@@ -1,12 +1,35 @@
1
- import { isForkPostDeneb, isForkPostFulu } from "@lodestar/params";
1
+ import { isForkPostDeneb } from "@lodestar/params";
2
2
  import { computeEpochAtSlot } from "@lodestar/state-transition";
3
+ import { BlobsSource, BlockSource as BlockSourceOld } from "../types.js";
4
+ import { BlockInputSource as BlockSource } from "./types.js";
3
5
  export function isDaOutOfRange(config, forkName, blockSlot, currentEpoch) {
4
- if (isForkPostFulu(forkName)) {
5
- return computeEpochAtSlot(blockSlot) < currentEpoch - config.MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS;
6
+ if (!isForkPostDeneb(forkName)) {
7
+ return true;
6
8
  }
7
- if (isForkPostDeneb(forkName)) {
8
- return computeEpochAtSlot(blockSlot) < currentEpoch - config.MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS;
9
+ return computeEpochAtSlot(blockSlot) < currentEpoch - config.MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS;
10
+ }
11
+ export function convertNewToOldBlockSource(source) {
12
+ switch (source) {
13
+ case BlockSource.api:
14
+ return BlockSourceOld.api;
15
+ case BlockSource.byRoot:
16
+ return BlockSourceOld.byRoot;
17
+ case BlockSource.byRange:
18
+ return BlockSourceOld.byRange;
19
+ default:
20
+ return BlockSourceOld.gossip;
21
+ }
22
+ }
23
+ export function convertNewToOldBlobSource(source) {
24
+ switch (source) {
25
+ case BlockSource.api:
26
+ return BlobsSource.api;
27
+ case BlockSource.byRoot:
28
+ return BlobsSource.byRoot;
29
+ case BlockSource.byRange:
30
+ return BlobsSource.byRange;
31
+ default:
32
+ return BlobsSource.gossip;
9
33
  }
10
- return true;
11
34
  }
12
35
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,eAAe,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAG9D,MAAM,UAAU,cAAc,CAC5B,MAAuB,EACvB,QAAkB,EAClB,SAAe,EACf,YAAmB;IAEnB,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,kBAAkB,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,MAAM,CAAC,4CAA4C,CAAC;IAC5G,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,kBAAkB,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,MAAM,CAAC,qCAAqC,CAAC;IACrG,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,WAAW,EAAE,WAAW,IAAI,cAAc,EAAC,MAAM,aAAa,CAAC;AACvE,OAAO,EAAC,gBAAgB,IAAI,WAAW,EAAC,MAAM,YAAY,CAAC;AAE3D,MAAM,UAAU,cAAc,CAC5B,MAAuB,EACvB,QAAkB,EAClB,SAAe,EACf,YAAmB;IAEnB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,kBAAkB,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,MAAM,CAAC,qCAAqC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAmB;IAC5D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW,CAAC,GAAG;YAClB,OAAO,cAAc,CAAC,GAAG,CAAC;QAC5B,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,cAAc,CAAC,OAAO,CAAC;QAChC;YACE,OAAO,cAAc,CAAC,MAAM,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAmB;IAC3D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW,CAAC,GAAG;YAClB,OAAO,WAAW,CAAC,GAAG,CAAC;QACzB,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,WAAW,CAAC,MAAM,CAAC;QAC5B,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B;YACE,OAAO,WAAW,CAAC,MAAM,CAAC;IAC9B,CAAC;AACH,CAAC"}