@lodestar/beacon-node 1.41.0-dev.c8abf8f187 → 1.41.0-dev.cfc5790a15

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 (882) hide show
  1. package/lib/api/impl/api.js.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.d.ts +1 -1
  3. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  4. package/lib/api/impl/beacon/blocks/index.js +123 -4
  5. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  6. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  7. package/lib/api/impl/beacon/index.js.map +1 -1
  8. package/lib/api/impl/beacon/pool/index.d.ts +1 -1
  9. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  10. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  11. package/lib/api/impl/beacon/rewards/index.d.ts +1 -1
  12. package/lib/api/impl/beacon/rewards/index.d.ts.map +1 -1
  13. package/lib/api/impl/beacon/rewards/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  15. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  16. package/lib/api/impl/beacon/state/index.js +8 -8
  17. package/lib/api/impl/beacon/state/index.js.map +1 -1
  18. package/lib/api/impl/beacon/state/utils.d.ts +3 -4
  19. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  20. package/lib/api/impl/beacon/state/utils.js +5 -24
  21. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  22. package/lib/api/impl/config/constants.js.map +1 -1
  23. package/lib/api/impl/config/index.js.map +1 -1
  24. package/lib/api/impl/debug/index.d.ts +1 -1
  25. package/lib/api/impl/debug/index.d.ts.map +1 -1
  26. package/lib/api/impl/debug/index.js +6 -2
  27. package/lib/api/impl/debug/index.js.map +1 -1
  28. package/lib/api/impl/errors.d.ts.map +1 -1
  29. package/lib/api/impl/errors.js.map +1 -1
  30. package/lib/api/impl/events/index.d.ts +1 -1
  31. package/lib/api/impl/events/index.d.ts.map +1 -1
  32. package/lib/api/impl/events/index.js.map +1 -1
  33. package/lib/api/impl/lightclient/index.d.ts +1 -1
  34. package/lib/api/impl/lightclient/index.d.ts.map +1 -1
  35. package/lib/api/impl/lightclient/index.js.map +1 -1
  36. package/lib/api/impl/lodestar/index.d.ts +1 -1
  37. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  38. package/lib/api/impl/lodestar/index.js.map +1 -1
  39. package/lib/api/impl/node/index.js.map +1 -1
  40. package/lib/api/impl/node/utils.d.ts +1 -1
  41. package/lib/api/impl/node/utils.d.ts.map +1 -1
  42. package/lib/api/impl/node/utils.js.map +1 -1
  43. package/lib/api/impl/proof/index.js.map +1 -1
  44. package/lib/api/impl/utils.js.map +1 -1
  45. package/lib/api/impl/validator/index.d.ts.map +1 -1
  46. package/lib/api/impl/validator/index.js +134 -18
  47. package/lib/api/impl/validator/index.js.map +1 -1
  48. package/lib/api/impl/validator/utils.d.ts +1 -1
  49. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  50. package/lib/api/impl/validator/utils.js.map +1 -1
  51. package/lib/api/rest/activeSockets.d.ts.map +1 -1
  52. package/lib/api/rest/activeSockets.js.map +1 -1
  53. package/lib/api/rest/base.d.ts.map +1 -1
  54. package/lib/api/rest/base.js.map +1 -1
  55. package/lib/api/rest/index.d.ts.map +1 -1
  56. package/lib/api/rest/index.js.map +1 -1
  57. package/lib/api/rest/swaggerUI.js.map +1 -1
  58. package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -1
  59. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  60. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  61. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  62. package/lib/chain/GetBlobsTracker.js.map +1 -1
  63. package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
  64. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  65. package/lib/chain/archiveStore/archiveStore.js +11 -1
  66. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  67. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +5 -6
  68. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  69. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +9 -10
  70. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  71. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  72. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  73. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  74. package/lib/chain/archiveStore/historicalState/types.js +2 -1
  75. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  76. package/lib/chain/archiveStore/historicalState/worker.js +3 -3
  77. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  78. package/lib/chain/archiveStore/interface.js +2 -1
  79. package/lib/chain/archiveStore/interface.js.map +1 -1
  80. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +1 -1
  81. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  82. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -1
  83. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  84. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  85. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  86. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -1
  87. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  88. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +7 -0
  89. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +1 -0
  90. package/lib/chain/archiveStore/utils/archivePayloads.js +10 -0
  91. package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -0
  92. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  93. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  94. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  95. package/lib/chain/balancesCache.d.ts.map +1 -1
  96. package/lib/chain/balancesCache.js.map +1 -1
  97. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  98. package/lib/chain/beaconProposerCache.js.map +1 -1
  99. package/lib/chain/blocks/blockInput/blockInput.d.ts +25 -2
  100. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  101. package/lib/chain/blocks/blockInput/blockInput.js +71 -0
  102. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  103. package/lib/chain/blocks/blockInput/errors.js +2 -1
  104. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  105. package/lib/chain/blocks/blockInput/types.d.ts +18 -1
  106. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  107. package/lib/chain/blocks/blockInput/types.js +5 -2
  108. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  109. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  110. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  111. package/lib/chain/blocks/importBlock.js +27 -4
  112. package/lib/chain/blocks/importBlock.js.map +1 -1
  113. package/lib/chain/blocks/index.d.ts.map +1 -1
  114. package/lib/chain/blocks/index.js +2 -1
  115. package/lib/chain/blocks/index.js.map +1 -1
  116. package/lib/chain/blocks/types.js +6 -3
  117. package/lib/chain/blocks/types.js.map +1 -1
  118. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  119. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  120. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  121. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  122. package/lib/chain/blocks/verifyBlocksDataAvailability.js +3 -0
  123. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  124. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -0
  125. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  126. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -1
  127. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  128. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  129. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  130. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  131. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  132. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  133. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  134. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  135. package/lib/chain/blocks/writeBlockInputToDb.js +92 -98
  136. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  137. package/lib/chain/bls/maybeBatch.js.map +1 -1
  138. package/lib/chain/bls/multithread/index.d.ts +3 -3
  139. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  140. package/lib/chain/bls/multithread/index.js +5 -5
  141. package/lib/chain/bls/multithread/index.js.map +1 -1
  142. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  143. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  144. package/lib/chain/bls/multithread/jobItem.js +4 -3
  145. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  146. package/lib/chain/bls/multithread/types.js +2 -1
  147. package/lib/chain/bls/multithread/types.js.map +1 -1
  148. package/lib/chain/bls/multithread/utils.js.map +1 -1
  149. package/lib/chain/bls/multithread/worker.js.map +1 -1
  150. package/lib/chain/bls/singleThread.d.ts +4 -4
  151. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  152. package/lib/chain/bls/singleThread.js +4 -4
  153. package/lib/chain/bls/singleThread.js.map +1 -1
  154. package/lib/chain/bls/utils.d.ts +2 -2
  155. package/lib/chain/bls/utils.d.ts.map +1 -1
  156. package/lib/chain/bls/utils.js +7 -4
  157. package/lib/chain/bls/utils.js.map +1 -1
  158. package/lib/chain/chain.d.ts +9 -12
  159. package/lib/chain/chain.d.ts.map +1 -1
  160. package/lib/chain/chain.js +45 -28
  161. package/lib/chain/chain.js.map +1 -1
  162. package/lib/chain/emitter.d.ts +6 -8
  163. package/lib/chain/emitter.d.ts.map +1 -1
  164. package/lib/chain/emitter.js +2 -1
  165. package/lib/chain/emitter.js.map +1 -1
  166. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  167. package/lib/chain/errors/attestationError.js +2 -1
  168. package/lib/chain/errors/attestationError.js.map +1 -1
  169. package/lib/chain/errors/attesterSlashingError.js +2 -1
  170. package/lib/chain/errors/attesterSlashingError.js.map +1 -1
  171. package/lib/chain/errors/blobSidecarError.js +2 -1
  172. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  173. package/lib/chain/errors/blockError.d.ts.map +1 -1
  174. package/lib/chain/errors/blockError.js +2 -1
  175. package/lib/chain/errors/blockError.js.map +1 -1
  176. package/lib/chain/errors/blsToExecutionChangeError.js +2 -1
  177. package/lib/chain/errors/blsToExecutionChangeError.js.map +1 -1
  178. package/lib/chain/errors/dataColumnSidecarError.js +2 -1
  179. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  180. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  181. package/lib/chain/errors/executionPayloadBid.js +2 -1
  182. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  183. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  184. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  185. package/lib/chain/errors/executionPayloadEnvelope.js +2 -1
  186. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  187. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  188. package/lib/chain/errors/gossipValidation.js +4 -2
  189. package/lib/chain/errors/gossipValidation.js.map +1 -1
  190. package/lib/chain/errors/lightClientError.js +4 -2
  191. package/lib/chain/errors/lightClientError.js.map +1 -1
  192. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  193. package/lib/chain/errors/payloadAttestation.js +2 -1
  194. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  195. package/lib/chain/errors/proposerSlashingError.js +2 -1
  196. package/lib/chain/errors/proposerSlashingError.js.map +1 -1
  197. package/lib/chain/errors/syncCommitteeError.js +2 -1
  198. package/lib/chain/errors/syncCommitteeError.js.map +1 -1
  199. package/lib/chain/errors/voluntaryExitError.js +2 -1
  200. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  201. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  202. package/lib/chain/forkChoice/index.js +32 -25
  203. package/lib/chain/forkChoice/index.js.map +1 -1
  204. package/lib/chain/initState.d.ts +1 -1
  205. package/lib/chain/initState.d.ts.map +1 -1
  206. package/lib/chain/initState.js.map +1 -1
  207. package/lib/chain/interface.d.ts +4 -6
  208. package/lib/chain/interface.d.ts.map +1 -1
  209. package/lib/chain/interface.js +2 -1
  210. package/lib/chain/interface.js.map +1 -1
  211. package/lib/chain/lightClient/index.d.ts +0 -29
  212. package/lib/chain/lightClient/index.d.ts.map +1 -1
  213. package/lib/chain/lightClient/index.js.map +1 -1
  214. package/lib/chain/lightClient/proofs.js.map +1 -1
  215. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  216. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -3
  217. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  218. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  219. package/lib/chain/opPools/attestationPool.js.map +1 -1
  220. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  221. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  222. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  223. package/lib/chain/opPools/opPool.js.map +1 -1
  224. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  225. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  226. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  227. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  228. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  229. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  230. package/lib/chain/opPools/types.js +4 -2
  231. package/lib/chain/opPools/types.js.map +1 -1
  232. package/lib/chain/opPools/utils.js.map +1 -1
  233. package/lib/chain/options.d.ts.map +1 -1
  234. package/lib/chain/options.js.map +1 -1
  235. package/lib/chain/prepareNextSlot.d.ts +1 -2
  236. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  237. package/lib/chain/prepareNextSlot.js +3 -3
  238. package/lib/chain/prepareNextSlot.js.map +1 -1
  239. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +9 -2
  240. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  241. package/lib/chain/produceBlock/computeNewStateRoot.js +25 -2
  242. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  243. package/lib/chain/produceBlock/produceBlockBody.d.ts +23 -8
  244. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  245. package/lib/chain/produceBlock/produceBlockBody.js +115 -13
  246. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  247. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  248. package/lib/chain/regen/errors.d.ts.map +1 -1
  249. package/lib/chain/regen/errors.js +2 -1
  250. package/lib/chain/regen/errors.js.map +1 -1
  251. package/lib/chain/regen/interface.js +4 -2
  252. package/lib/chain/regen/interface.js.map +1 -1
  253. package/lib/chain/regen/queued.d.ts.map +1 -1
  254. package/lib/chain/regen/queued.js +4 -1
  255. package/lib/chain/regen/queued.js.map +1 -1
  256. package/lib/chain/regen/regen.d.ts.map +1 -1
  257. package/lib/chain/regen/regen.js +6 -2
  258. package/lib/chain/regen/regen.js.map +1 -1
  259. package/lib/chain/reprocess.d.ts.map +1 -1
  260. package/lib/chain/reprocess.js +2 -1
  261. package/lib/chain/reprocess.js.map +1 -1
  262. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +1 -1
  263. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  264. package/lib/chain/seenCache/seenAttestationData.d.ts.map +1 -1
  265. package/lib/chain/seenCache/seenAttestationData.js +2 -1
  266. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  267. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  268. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  269. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +1 -1
  270. package/lib/chain/seenCache/seenBlockAttesters.js.map +1 -1
  271. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +1 -1
  272. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  273. package/lib/chain/seenCache/seenCommittee.d.ts.map +1 -1
  274. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  275. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +1 -1
  276. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  277. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -1
  278. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -1
  279. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -1
  280. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -1
  281. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -3
  282. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  283. package/lib/chain/seenCache/seenGossipBlockInput.js +36 -15
  284. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  285. package/lib/chain/serializeState.js +1 -0
  286. package/lib/chain/serializeState.js.map +1 -1
  287. package/lib/chain/shufflingCache.d.ts.map +1 -1
  288. package/lib/chain/shufflingCache.js +2 -1
  289. package/lib/chain/shufflingCache.js.map +1 -1
  290. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  291. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  292. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  293. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  294. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  295. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  296. package/lib/chain/stateCache/mapMetrics.d.ts.map +1 -1
  297. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  298. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -41
  299. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  300. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  301. package/lib/chain/stateCache/types.js +2 -1
  302. package/lib/chain/stateCache/types.js.map +1 -1
  303. package/lib/chain/validation/aggregateAndProof.js +1 -1
  304. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  305. package/lib/chain/validation/attestation.d.ts.map +1 -1
  306. package/lib/chain/validation/attestation.js +7 -4
  307. package/lib/chain/validation/attestation.js.map +1 -1
  308. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  309. package/lib/chain/validation/attesterSlashing.js +9 -2
  310. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  311. package/lib/chain/validation/blobSidecar.js +2 -2
  312. package/lib/chain/validation/blobSidecar.js.map +1 -1
  313. package/lib/chain/validation/block.d.ts.map +1 -1
  314. package/lib/chain/validation/block.js +6 -3
  315. package/lib/chain/validation/block.js.map +1 -1
  316. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  317. package/lib/chain/validation/dataColumnSidecar.d.ts +2 -2
  318. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  319. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  320. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  321. package/lib/chain/validation/executionPayloadBid.js +1 -2
  322. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  323. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  324. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  325. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  326. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  327. package/lib/chain/validation/payloadAttestationMessage.js +9 -3
  328. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  329. package/lib/chain/validation/proposerSlashing.js +1 -1
  330. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  331. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  332. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  333. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  334. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  335. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  336. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  337. package/lib/chain/validation/syncCommittee.js.map +1 -1
  338. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  339. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  340. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  341. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  342. package/lib/chain/validatorMonitor.js +2 -1
  343. package/lib/chain/validatorMonitor.js.map +1 -1
  344. package/lib/constants/network.js +4 -2
  345. package/lib/constants/network.js.map +1 -1
  346. package/lib/db/beacon.d.ts +3 -1
  347. package/lib/db/beacon.d.ts.map +1 -1
  348. package/lib/db/beacon.js +5 -1
  349. package/lib/db/beacon.js.map +1 -1
  350. package/lib/db/buckets.d.ts +24 -22
  351. package/lib/db/buckets.d.ts.map +1 -1
  352. package/lib/db/buckets.js +4 -1
  353. package/lib/db/buckets.js.map +1 -1
  354. package/lib/db/index.d.ts +1 -0
  355. package/lib/db/index.d.ts.map +1 -1
  356. package/lib/db/index.js +1 -0
  357. package/lib/db/index.js.map +1 -1
  358. package/lib/db/interface.d.ts +3 -1
  359. package/lib/db/interface.d.ts.map +1 -1
  360. package/lib/db/repositories/attesterSlashing.d.ts.map +1 -1
  361. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  362. package/lib/db/repositories/backfilledRanges.d.ts.map +1 -1
  363. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  364. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  365. package/lib/db/repositories/blobSidecars.js.map +1 -1
  366. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +1 -1
  367. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  368. package/lib/db/repositories/block.d.ts.map +1 -1
  369. package/lib/db/repositories/block.js.map +1 -1
  370. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  371. package/lib/db/repositories/blockArchive.js +1 -2
  372. package/lib/db/repositories/blockArchive.js.map +1 -1
  373. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  374. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  375. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  376. package/lib/db/repositories/blsToExecutionChange.d.ts.map +1 -1
  377. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  378. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  379. package/lib/db/repositories/checkpointState.js.map +1 -1
  380. package/lib/db/repositories/dataColumnSidecar.d.ts +5 -3
  381. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  382. package/lib/db/repositories/dataColumnSidecar.js +14 -1
  383. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  384. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +5 -3
  385. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  386. package/lib/db/repositories/dataColumnSidecarArchive.js +14 -1
  387. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  388. package/lib/db/repositories/executionPayloadEnvelope.d.ts +19 -0
  389. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -0
  390. package/lib/db/repositories/executionPayloadEnvelope.js +22 -0
  391. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -0
  392. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +18 -0
  393. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -0
  394. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +28 -0
  395. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -0
  396. package/lib/db/repositories/index.d.ts +2 -0
  397. package/lib/db/repositories/index.d.ts.map +1 -1
  398. package/lib/db/repositories/index.js +2 -0
  399. package/lib/db/repositories/index.js.map +1 -1
  400. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +1 -1
  401. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  402. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +1 -1
  403. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  404. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +1 -1
  405. package/lib/db/repositories/lightclientSyncCommittee.js.map +1 -1
  406. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  407. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  408. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  409. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  410. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  411. package/lib/db/repositories/stateArchive.js.map +1 -1
  412. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  413. package/lib/db/repositories/voluntaryExit.d.ts.map +1 -1
  414. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  415. package/lib/execution/builder/cache.d.ts.map +1 -1
  416. package/lib/execution/builder/cache.js.map +1 -1
  417. package/lib/execution/builder/http.d.ts.map +1 -1
  418. package/lib/execution/builder/http.js +2 -1
  419. package/lib/execution/builder/http.js.map +1 -1
  420. package/lib/execution/builder/index.js.map +1 -1
  421. package/lib/execution/builder/utils.js.map +1 -1
  422. package/lib/execution/engine/disabled.d.ts.map +1 -1
  423. package/lib/execution/engine/disabled.js.map +1 -1
  424. package/lib/execution/engine/http.d.ts +1 -0
  425. package/lib/execution/engine/http.d.ts.map +1 -1
  426. package/lib/execution/engine/http.js +3 -0
  427. package/lib/execution/engine/http.js.map +1 -1
  428. package/lib/execution/engine/index.js.map +1 -1
  429. package/lib/execution/engine/interface.js +4 -2
  430. package/lib/execution/engine/interface.js.map +1 -1
  431. package/lib/execution/engine/jsonRpcHttpClient.d.ts +10 -15
  432. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  433. package/lib/execution/engine/jsonRpcHttpClient.js +2 -1
  434. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  435. package/lib/execution/engine/jwt.js.map +1 -1
  436. package/lib/execution/engine/mock.d.ts.map +1 -1
  437. package/lib/execution/engine/mock.js.map +1 -1
  438. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  439. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  440. package/lib/execution/engine/types.js.map +1 -1
  441. package/lib/execution/engine/utils.d.ts +1 -1
  442. package/lib/execution/engine/utils.d.ts.map +1 -1
  443. package/lib/execution/engine/utils.js.map +1 -1
  444. package/lib/metrics/metrics/beacon.d.ts +1 -0
  445. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  446. package/lib/metrics/metrics/beacon.js +5 -0
  447. package/lib/metrics/metrics/beacon.js.map +1 -1
  448. package/lib/metrics/metrics/lodestar.d.ts +10 -1
  449. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  450. package/lib/metrics/metrics/lodestar.js +18 -0
  451. package/lib/metrics/metrics/lodestar.js.map +1 -1
  452. package/lib/metrics/metrics.js.map +1 -1
  453. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  454. package/lib/metrics/server/http.d.ts +1 -1
  455. package/lib/metrics/server/http.d.ts.map +1 -1
  456. package/lib/metrics/server/http.js.map +1 -1
  457. package/lib/metrics/utils/avgMinMax.d.ts.map +1 -1
  458. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  459. package/lib/metrics/utils/gauge.d.ts.map +1 -1
  460. package/lib/metrics/utils/gauge.js.map +1 -1
  461. package/lib/metrics/utils/registryMetricCreator.d.ts.map +1 -1
  462. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  463. package/lib/monitoring/clientStats.js.map +1 -1
  464. package/lib/monitoring/properties.d.ts.map +1 -1
  465. package/lib/monitoring/properties.js.map +1 -1
  466. package/lib/monitoring/service.d.ts +2 -2
  467. package/lib/monitoring/service.d.ts.map +1 -1
  468. package/lib/monitoring/service.js +3 -2
  469. package/lib/monitoring/service.js.map +1 -1
  470. package/lib/monitoring/system.d.ts.map +1 -1
  471. package/lib/monitoring/system.js.map +1 -1
  472. package/lib/monitoring/types.js +4 -2
  473. package/lib/monitoring/types.js.map +1 -1
  474. package/lib/network/core/events.d.ts +1 -3
  475. package/lib/network/core/events.d.ts.map +1 -1
  476. package/lib/network/core/events.js +4 -2
  477. package/lib/network/core/events.js.map +1 -1
  478. package/lib/network/core/metrics.d.ts +6 -7
  479. package/lib/network/core/metrics.d.ts.map +1 -1
  480. package/lib/network/core/metrics.js.map +1 -1
  481. package/lib/network/core/networkCore.d.ts +4 -4
  482. package/lib/network/core/networkCore.d.ts.map +1 -1
  483. package/lib/network/core/networkCore.js.map +1 -1
  484. package/lib/network/core/networkCoreWorker.js.map +1 -1
  485. package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -3
  486. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  487. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  488. package/lib/network/core/types.d.ts +2 -2
  489. package/lib/network/core/types.d.ts.map +1 -1
  490. package/lib/network/discv5/index.d.ts +1 -3
  491. package/lib/network/discv5/index.d.ts.map +1 -1
  492. package/lib/network/discv5/index.js.map +1 -1
  493. package/lib/network/discv5/utils.js +2 -1
  494. package/lib/network/discv5/utils.js.map +1 -1
  495. package/lib/network/discv5/worker.js.map +1 -1
  496. package/lib/network/events.d.ts +3 -4
  497. package/lib/network/events.d.ts.map +1 -1
  498. package/lib/network/events.js +4 -2
  499. package/lib/network/events.js.map +1 -1
  500. package/lib/network/forks.js.map +1 -1
  501. package/lib/network/gossip/encoding.d.ts +3 -3
  502. package/lib/network/gossip/encoding.d.ts.map +1 -1
  503. package/lib/network/gossip/encoding.js.map +1 -1
  504. package/lib/network/gossip/errors.d.ts.map +1 -1
  505. package/lib/network/gossip/errors.js.map +1 -1
  506. package/lib/network/gossip/gossipsub.d.ts +13 -4
  507. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  508. package/lib/network/gossip/gossipsub.js +47 -20
  509. package/lib/network/gossip/gossipsub.js.map +1 -1
  510. package/lib/network/gossip/interface.d.ts +6 -6
  511. package/lib/network/gossip/interface.d.ts.map +1 -1
  512. package/lib/network/gossip/interface.js +4 -2
  513. package/lib/network/gossip/interface.js.map +1 -1
  514. package/lib/network/gossip/metrics.d.ts +12 -14
  515. package/lib/network/gossip/metrics.d.ts.map +1 -1
  516. package/lib/network/gossip/metrics.js.map +1 -1
  517. package/lib/network/gossip/scoringParameters.d.ts +2 -2
  518. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  519. package/lib/network/gossip/scoringParameters.js +1 -1
  520. package/lib/network/gossip/scoringParameters.js.map +1 -1
  521. package/lib/network/gossip/topic.d.ts +3166 -3169
  522. package/lib/network/gossip/topic.d.ts.map +1 -1
  523. package/lib/network/gossip/topic.js +2 -2
  524. package/lib/network/gossip/topic.js.map +1 -1
  525. package/lib/network/interface.d.ts +6 -5
  526. package/lib/network/interface.d.ts.map +1 -1
  527. package/lib/network/libp2p/error.js +2 -1
  528. package/lib/network/libp2p/error.js.map +1 -1
  529. package/lib/network/libp2p/index.d.ts +1 -1
  530. package/lib/network/libp2p/index.d.ts.map +1 -1
  531. package/lib/network/libp2p/index.js +7 -2
  532. package/lib/network/libp2p/index.js.map +1 -1
  533. package/lib/network/metadata.d.ts.map +1 -1
  534. package/lib/network/metadata.js +4 -2
  535. package/lib/network/metadata.js.map +1 -1
  536. package/lib/network/network.d.ts +6 -5
  537. package/lib/network/network.d.ts.map +1 -1
  538. package/lib/network/network.js +11 -2
  539. package/lib/network/network.js.map +1 -1
  540. package/lib/network/options.d.ts.map +1 -1
  541. package/lib/network/options.js +3 -0
  542. package/lib/network/options.js.map +1 -1
  543. package/lib/network/peers/client.js +2 -1
  544. package/lib/network/peers/client.js.map +1 -1
  545. package/lib/network/peers/datastore.d.ts +7 -8
  546. package/lib/network/peers/datastore.d.ts.map +1 -1
  547. package/lib/network/peers/datastore.js +10 -10
  548. package/lib/network/peers/datastore.js.map +1 -1
  549. package/lib/network/peers/discover.d.ts +0 -7
  550. package/lib/network/peers/discover.d.ts.map +1 -1
  551. package/lib/network/peers/discover.js +4 -2
  552. package/lib/network/peers/discover.js.map +1 -1
  553. package/lib/network/peers/peerManager.d.ts +3 -1
  554. package/lib/network/peers/peerManager.d.ts.map +1 -1
  555. package/lib/network/peers/peerManager.js +103 -53
  556. package/lib/network/peers/peerManager.js.map +1 -1
  557. package/lib/network/peers/peersData.d.ts.map +1 -1
  558. package/lib/network/peers/peersData.js +2 -1
  559. package/lib/network/peers/peersData.js.map +1 -1
  560. package/lib/network/peers/score/interface.js +4 -2
  561. package/lib/network/peers/score/interface.js.map +1 -1
  562. package/lib/network/peers/score/score.d.ts.map +1 -1
  563. package/lib/network/peers/score/score.js.map +1 -1
  564. package/lib/network/peers/score/store.d.ts.map +1 -1
  565. package/lib/network/peers/score/store.js.map +1 -1
  566. package/lib/network/peers/score/utils.js.map +1 -1
  567. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  568. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  569. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  570. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  571. package/lib/network/peers/utils/prioritizePeers.d.ts +3 -3
  572. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  573. package/lib/network/peers/utils/prioritizePeers.js +2 -1
  574. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  575. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  576. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  577. package/lib/network/processor/aggregatorTracker.d.ts.map +1 -1
  578. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  579. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  580. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  581. package/lib/network/processor/gossipHandlers.js +9 -2
  582. package/lib/network/processor/gossipHandlers.js.map +1 -1
  583. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  584. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  585. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  586. package/lib/network/processor/gossipQueues/linear.d.ts.map +1 -1
  587. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  588. package/lib/network/processor/gossipQueues/types.js +4 -2
  589. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  590. package/lib/network/processor/gossipValidatorFn.js +1 -1
  591. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  592. package/lib/network/processor/index.d.ts.map +1 -1
  593. package/lib/network/processor/index.js +4 -2
  594. package/lib/network/processor/index.js.map +1 -1
  595. package/lib/network/processor/types.d.ts +1 -1
  596. package/lib/network/processor/types.d.ts.map +1 -1
  597. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  598. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  599. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  600. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  601. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  602. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  603. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  604. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  605. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  606. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  607. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  608. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  609. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  610. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  611. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  612. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  613. package/lib/network/reqresp/handlers/index.js.map +1 -1
  614. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  615. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  616. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  617. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  618. package/lib/network/reqresp/interface.js +2 -1
  619. package/lib/network/reqresp/interface.js.map +1 -1
  620. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  621. package/lib/network/reqresp/protocols.js.map +1 -1
  622. package/lib/network/reqresp/rateLimit.js.map +1 -1
  623. package/lib/network/reqresp/score.d.ts.map +1 -1
  624. package/lib/network/reqresp/score.js +0 -1
  625. package/lib/network/reqresp/score.js.map +1 -1
  626. package/lib/network/reqresp/types.js +4 -2
  627. package/lib/network/reqresp/types.js.map +1 -1
  628. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  629. package/lib/network/reqresp/utils/collect.js.map +1 -1
  630. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  631. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js +2 -1
  632. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  633. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +1 -1
  634. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  635. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  636. package/lib/network/statusCache.d.ts.map +1 -1
  637. package/lib/network/statusCache.js.map +1 -1
  638. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  639. package/lib/network/subnets/attnetsService.js +2 -1
  640. package/lib/network/subnets/attnetsService.js.map +1 -1
  641. package/lib/network/subnets/interface.js.map +1 -1
  642. package/lib/network/subnets/syncnetsService.d.ts.map +1 -1
  643. package/lib/network/subnets/syncnetsService.js.map +1 -1
  644. package/lib/network/subnets/util.js.map +1 -1
  645. package/lib/network/util.js +2 -2
  646. package/lib/network/util.js.map +1 -1
  647. package/lib/node/nodejs.d.ts +4 -6
  648. package/lib/node/nodejs.d.ts.map +1 -1
  649. package/lib/node/nodejs.js +8 -5
  650. package/lib/node/nodejs.js.map +1 -1
  651. package/lib/node/notifier.js.map +1 -1
  652. package/lib/node/utils/interop/deposits.js.map +1 -1
  653. package/lib/node/utils/interop/state.d.ts +1 -1
  654. package/lib/node/utils/interop/state.d.ts.map +1 -1
  655. package/lib/node/utils/interop/state.js.map +1 -1
  656. package/lib/node/utils/lightclient.js.map +1 -1
  657. package/lib/node/utils/state.js.map +1 -1
  658. package/lib/sync/backfill/backfill.d.ts +1 -10
  659. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  660. package/lib/sync/backfill/backfill.js +6 -3
  661. package/lib/sync/backfill/backfill.js.map +1 -1
  662. package/lib/sync/backfill/errors.js +2 -1
  663. package/lib/sync/backfill/errors.js.map +1 -1
  664. package/lib/sync/backfill/verify.js.map +1 -1
  665. package/lib/sync/interface.js +2 -1
  666. package/lib/sync/interface.js.map +1 -1
  667. package/lib/sync/range/batch.d.ts.map +1 -1
  668. package/lib/sync/range/batch.js +4 -2
  669. package/lib/sync/range/batch.js.map +1 -1
  670. package/lib/sync/range/chain.d.ts +0 -10
  671. package/lib/sync/range/chain.d.ts.map +1 -1
  672. package/lib/sync/range/chain.js +2 -1
  673. package/lib/sync/range/chain.js.map +1 -1
  674. package/lib/sync/range/range.d.ts +1 -3
  675. package/lib/sync/range/range.d.ts.map +1 -1
  676. package/lib/sync/range/range.js +4 -2
  677. package/lib/sync/range/range.js.map +1 -1
  678. package/lib/sync/range/utils/batches.js.map +1 -1
  679. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  680. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  681. package/lib/sync/range/utils/peerBalancer.d.ts.map +1 -1
  682. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  683. package/lib/sync/range/utils/updateChains.js.map +1 -1
  684. package/lib/sync/sync.d.ts.map +1 -1
  685. package/lib/sync/sync.js.map +1 -1
  686. package/lib/sync/types.js +4 -2
  687. package/lib/sync/types.js.map +1 -1
  688. package/lib/sync/unknownBlock.d.ts +0 -14
  689. package/lib/sync/unknownBlock.d.ts.map +1 -1
  690. package/lib/sync/unknownBlock.js.map +1 -1
  691. package/lib/sync/utils/downloadByRange.d.ts +4 -4
  692. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  693. package/lib/sync/utils/downloadByRange.js +2 -1
  694. package/lib/sync/utils/downloadByRange.js.map +1 -1
  695. package/lib/sync/utils/downloadByRoot.d.ts +8 -8
  696. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  697. package/lib/sync/utils/downloadByRoot.js +2 -1
  698. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  699. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  700. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  701. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  702. package/lib/sync/utils/remoteSyncType.js +4 -2
  703. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  704. package/lib/util/address.js.map +1 -1
  705. package/lib/util/array.d.ts.map +1 -1
  706. package/lib/util/array.js.map +1 -1
  707. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  708. package/lib/util/asyncIterableToEvents.js +2 -1
  709. package/lib/util/asyncIterableToEvents.js.map +1 -1
  710. package/lib/util/binarySearch.d.ts.map +1 -1
  711. package/lib/util/binarySearch.js.map +1 -1
  712. package/lib/util/bitArray.js +2 -1
  713. package/lib/util/bitArray.js.map +1 -1
  714. package/lib/util/blobs.d.ts +2 -2
  715. package/lib/util/blobs.d.ts.map +1 -1
  716. package/lib/util/blobs.js.map +1 -1
  717. package/lib/util/bufferPool.d.ts.map +1 -1
  718. package/lib/util/bufferPool.js +2 -1
  719. package/lib/util/bufferPool.js.map +1 -1
  720. package/lib/util/chunkify.js.map +1 -1
  721. package/lib/util/clock.d.ts +6 -0
  722. package/lib/util/clock.d.ts.map +1 -1
  723. package/lib/util/clock.js +11 -4
  724. package/lib/util/clock.js.map +1 -1
  725. package/lib/util/dataColumns.d.ts +11 -3
  726. package/lib/util/dataColumns.d.ts.map +1 -1
  727. package/lib/util/dataColumns.js +31 -2
  728. package/lib/util/dataColumns.js.map +1 -1
  729. package/lib/util/dependentRoot.js.map +1 -1
  730. package/lib/util/enum.js.map +1 -1
  731. package/lib/util/error.js.map +1 -1
  732. package/lib/util/eventLoop.js.map +1 -1
  733. package/lib/util/execution.js +2 -1
  734. package/lib/util/execution.js.map +1 -1
  735. package/lib/util/file.js.map +1 -1
  736. package/lib/util/forkChoice.js.map +1 -1
  737. package/lib/util/forkName.js.map +1 -1
  738. package/lib/util/graffiti.js.map +1 -1
  739. package/lib/util/hex.js.map +1 -1
  740. package/lib/util/ip.js.map +1 -1
  741. package/lib/util/itTrigger.d.ts.map +1 -1
  742. package/lib/util/itTrigger.js.map +1 -1
  743. package/lib/util/map.d.ts.map +1 -1
  744. package/lib/util/map.js.map +1 -1
  745. package/lib/util/metadata.js.map +1 -1
  746. package/lib/util/multifork.d.ts +8 -0
  747. package/lib/util/multifork.d.ts.map +1 -1
  748. package/lib/util/multifork.js +37 -0
  749. package/lib/util/multifork.js.map +1 -1
  750. package/lib/util/numpy.js.map +1 -1
  751. package/lib/util/peerId.js.map +1 -1
  752. package/lib/util/profile.js +2 -1
  753. package/lib/util/profile.js.map +1 -1
  754. package/lib/util/promises.js.map +1 -1
  755. package/lib/util/queue/errors.js +2 -1
  756. package/lib/util/queue/errors.js.map +1 -1
  757. package/lib/util/queue/fnQueue.d.ts.map +1 -1
  758. package/lib/util/queue/fnQueue.js.map +1 -1
  759. package/lib/util/queue/itemQueue.d.ts.map +1 -1
  760. package/lib/util/queue/itemQueue.js.map +1 -1
  761. package/lib/util/queue/options.js +2 -1
  762. package/lib/util/queue/options.js.map +1 -1
  763. package/lib/util/serializedCache.d.ts +4 -4
  764. package/lib/util/serializedCache.d.ts.map +1 -1
  765. package/lib/util/serializedCache.js +6 -4
  766. package/lib/util/serializedCache.js.map +1 -1
  767. package/lib/util/set.d.ts.map +1 -1
  768. package/lib/util/set.js.map +1 -1
  769. package/lib/util/shuffle.js.map +1 -1
  770. package/lib/util/sortBy.js.map +1 -1
  771. package/lib/util/sszBytes.js.map +1 -1
  772. package/lib/util/time.js.map +1 -1
  773. package/lib/util/timeSeries.d.ts.map +1 -1
  774. package/lib/util/timeSeries.js.map +1 -1
  775. package/lib/util/types.d.ts.map +1 -1
  776. package/lib/util/workerEvents.d.ts +1 -1
  777. package/lib/util/workerEvents.d.ts.map +1 -1
  778. package/lib/util/workerEvents.js.map +1 -1
  779. package/lib/util/wrapError.js.map +1 -1
  780. package/package.json +41 -44
  781. package/src/api/impl/beacon/blocks/index.ts +147 -3
  782. package/src/api/impl/beacon/state/index.ts +8 -8
  783. package/src/api/impl/beacon/state/utils.ts +15 -29
  784. package/src/api/impl/debug/index.ts +9 -5
  785. package/src/api/impl/node/utils.ts +3 -3
  786. package/src/api/impl/validator/index.ts +153 -17
  787. package/src/chain/archiveStore/archiveStore.ts +15 -5
  788. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
  789. package/src/chain/archiveStore/historicalState/worker.ts +3 -3
  790. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -5
  791. package/src/chain/archiveStore/utils/archivePayloads.ts +15 -0
  792. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  793. package/src/chain/blocks/blockInput/blockInput.ts +103 -3
  794. package/src/chain/blocks/blockInput/types.ts +18 -0
  795. package/src/chain/blocks/importBlock.ts +35 -4
  796. package/src/chain/blocks/index.ts +2 -1
  797. package/src/chain/blocks/verifyBlocksDataAvailability.ts +3 -0
  798. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -2
  799. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  800. package/src/chain/blocks/writeBlockInputToDb.ts +105 -104
  801. package/src/chain/bls/multithread/index.ts +7 -7
  802. package/src/chain/bls/multithread/jobItem.ts +3 -3
  803. package/src/chain/bls/singleThread.ts +5 -5
  804. package/src/chain/bls/utils.ts +8 -5
  805. package/src/chain/chain.ts +82 -45
  806. package/src/chain/emitter.ts +5 -5
  807. package/src/chain/errors/executionPayloadBid.ts +1 -1
  808. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  809. package/src/chain/errors/payloadAttestation.ts +1 -1
  810. package/src/chain/forkChoice/index.ts +39 -21
  811. package/src/chain/interface.ts +4 -11
  812. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  813. package/src/chain/options.ts +1 -0
  814. package/src/chain/prepareNextSlot.ts +5 -5
  815. package/src/chain/produceBlock/computeNewStateRoot.ts +36 -3
  816. package/src/chain/produceBlock/produceBlockBody.ts +162 -13
  817. package/src/chain/regen/queued.ts +7 -2
  818. package/src/chain/regen/regen.ts +9 -3
  819. package/src/chain/seenCache/seenGossipBlockInput.ts +54 -17
  820. package/src/chain/validation/aggregateAndProof.ts +1 -1
  821. package/src/chain/validation/attestation.ts +7 -4
  822. package/src/chain/validation/attesterSlashing.ts +10 -1
  823. package/src/chain/validation/blobSidecar.ts +2 -2
  824. package/src/chain/validation/block.ts +9 -4
  825. package/src/chain/validation/dataColumnSidecar.ts +3 -6
  826. package/src/chain/validation/executionPayloadBid.ts +1 -2
  827. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  828. package/src/chain/validation/payloadAttestationMessage.ts +10 -3
  829. package/src/chain/validation/proposerSlashing.ts +1 -1
  830. package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
  831. package/src/db/beacon.ts +8 -0
  832. package/src/db/buckets.ts +3 -0
  833. package/src/db/index.ts +1 -0
  834. package/src/db/interface.ts +5 -0
  835. package/src/db/repositories/blockArchive.ts +1 -2
  836. package/src/db/repositories/dataColumnSidecar.ts +18 -3
  837. package/src/db/repositories/dataColumnSidecarArchive.ts +18 -3
  838. package/src/db/repositories/executionPayloadEnvelope.ts +26 -0
  839. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +32 -0
  840. package/src/db/repositories/index.ts +2 -0
  841. package/src/execution/engine/http.ts +3 -0
  842. package/src/metrics/metrics/beacon.ts +5 -0
  843. package/src/metrics/metrics/lodestar.ts +18 -0
  844. package/src/monitoring/service.ts +3 -2
  845. package/src/network/core/networkCore.ts +3 -3
  846. package/src/network/core/networkCoreWorkerHandler.ts +3 -3
  847. package/src/network/core/types.ts +2 -2
  848. package/src/network/events.ts +2 -1
  849. package/src/network/gossip/encoding.ts +3 -3
  850. package/src/network/gossip/gossipsub.ts +86 -25
  851. package/src/network/gossip/interface.ts +6 -6
  852. package/src/network/gossip/scoringParameters.ts +4 -4
  853. package/src/network/gossip/topic.ts +2 -1
  854. package/src/network/interface.ts +7 -4
  855. package/src/network/libp2p/index.ts +8 -3
  856. package/src/network/network.ts +26 -7
  857. package/src/network/options.ts +3 -0
  858. package/src/network/peers/datastore.ts +13 -10
  859. package/src/network/peers/peerManager.ts +118 -54
  860. package/src/network/peers/utils/prioritizePeers.ts +3 -3
  861. package/src/network/processor/gossipHandlers.ts +19 -4
  862. package/src/network/processor/gossipValidatorFn.ts +2 -2
  863. package/src/network/processor/types.ts +1 -1
  864. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  865. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  866. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  867. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  868. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  869. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  870. package/src/network/reqresp/score.ts +0 -1
  871. package/src/network/reqresp/utils/collect.ts +1 -1
  872. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  873. package/src/network/util.ts +2 -2
  874. package/src/node/nodejs.ts +8 -9
  875. package/src/sync/utils/downloadByRoot.ts +1 -1
  876. package/src/sync/utils/remoteSyncType.ts +1 -1
  877. package/src/util/blobs.ts +3 -3
  878. package/src/util/clock.ts +9 -4
  879. package/src/util/dataColumns.ts +37 -1
  880. package/src/util/multifork.ts +45 -0
  881. package/src/util/serializedCache.ts +7 -5
  882. package/src/util/workerEvents.ts +1 -1
@@ -3,6 +3,7 @@ import {CheckpointWithHex} from "@lodestar/fork-choice";
3
3
  import {
4
4
  ForkName,
5
5
  ForkPostFulu,
6
+ ForkPostGloas,
6
7
  ForkPreGloas,
7
8
  SLOTS_PER_EPOCH,
8
9
  isForkPostDeneb,
@@ -16,10 +17,12 @@ import {Metrics} from "../../metrics/metrics.js";
16
17
  import {MAX_LOOK_AHEAD_EPOCHS} from "../../sync/constants.js";
17
18
  import {IClock} from "../../util/clock.js";
18
19
  import {CustodyConfig} from "../../util/dataColumns.js";
20
+ import {SerializedCache} from "../../util/serializedCache.js";
19
21
  import {
20
22
  BlockInput,
21
23
  BlockInputBlobs,
22
24
  BlockInputColumns,
25
+ BlockInputNoData,
23
26
  BlockInputPreData,
24
27
  BlockWithSource,
25
28
  DAType,
@@ -53,6 +56,7 @@ export type SeenBlockInputCacheModules = {
53
56
  chainEvents: ChainEventEmitter;
54
57
  signal: AbortSignal;
55
58
  custodyConfig: CustodyConfig;
59
+ serializedCache: SerializedCache;
56
60
  metrics: Metrics | null;
57
61
  logger?: Logger;
58
62
  };
@@ -99,6 +103,7 @@ export class SeenBlockInput {
99
103
  private readonly clock: IClock;
100
104
  private readonly chainEvents: ChainEventEmitter;
101
105
  private readonly signal: AbortSignal;
106
+ private readonly serializedCache: SerializedCache;
102
107
  private readonly metrics: Metrics | null;
103
108
  private readonly logger?: Logger;
104
109
  private blockInputs = new Map<RootHex, IBlockInput>();
@@ -107,19 +112,35 @@ export class SeenBlockInput {
107
112
  // and the signature to ensure we only skip verification if both match
108
113
  private verifiedProposerSignatures = new Map<Slot, Map<RootHex, BLSSignature>>();
109
114
 
110
- constructor({config, custodyConfig, clock, chainEvents, signal, metrics, logger}: SeenBlockInputCacheModules) {
115
+ constructor({
116
+ config,
117
+ custodyConfig,
118
+ clock,
119
+ chainEvents,
120
+ signal,
121
+ serializedCache,
122
+ metrics,
123
+ logger,
124
+ }: SeenBlockInputCacheModules) {
111
125
  this.config = config;
112
126
  this.custodyConfig = custodyConfig;
113
127
  this.clock = clock;
114
128
  this.chainEvents = chainEvents;
115
129
  this.signal = signal;
130
+ this.serializedCache = serializedCache;
116
131
  this.metrics = metrics;
117
132
  this.logger = logger;
118
133
 
119
134
  if (metrics) {
120
- metrics.seenCache.blockInput.blockInputCount.addCollect(() =>
121
- metrics.seenCache.blockInput.blockInputCount.set(this.blockInputs.size)
122
- );
135
+ metrics.seenCache.blockInput.blockInputCount.addCollect(() => {
136
+ metrics.seenCache.blockInput.blockInputCount.set(this.blockInputs.size);
137
+ metrics.seenCache.blockInput.serializedObjectCount.set(
138
+ Array.from(this.blockInputs.values()).reduce(
139
+ (count, blockInput) => count + blockInput.getSerializedCacheKeys().length,
140
+ 0
141
+ )
142
+ );
143
+ });
123
144
  }
124
145
 
125
146
  this.chainEvents.on(ChainEvent.forkChoiceFinalized, this.onFinalized);
@@ -140,7 +161,10 @@ export class SeenBlockInput {
140
161
  * Removes the single BlockInput from the cache
141
162
  */
142
163
  remove(rootHex: RootHex): void {
143
- this.blockInputs.delete(rootHex);
164
+ const blockInput = this.blockInputs.get(rootHex);
165
+ if (blockInput) {
166
+ this.evictBlockInput(blockInput);
167
+ }
144
168
  }
145
169
 
146
170
  /**
@@ -152,7 +176,7 @@ export class SeenBlockInput {
152
176
  let deletedCount = 0;
153
177
  while (blockInput) {
154
178
  deletedCount++;
155
- this.blockInputs.delete(blockInput.blockRootHex);
179
+ this.evictBlockInput(blockInput);
156
180
  blockInput = this.blockInputs.get(parentRootHex ?? "");
157
181
  parentRootHex = blockInput?.parentRootHex;
158
182
  }
@@ -163,10 +187,10 @@ export class SeenBlockInput {
163
187
  onFinalized = (checkpoint: CheckpointWithHex) => {
164
188
  let deletedCount = 0;
165
189
  const cutoffSlot = computeStartSlotAtEpoch(checkpoint.epoch);
166
- for (const [rootHex, blockInput] of this.blockInputs) {
190
+ for (const [, blockInput] of this.blockInputs) {
167
191
  if (blockInput.slot < cutoffSlot) {
168
192
  deletedCount++;
169
- this.blockInputs.delete(rootHex);
193
+ this.evictBlockInput(blockInput);
170
194
  }
171
195
  }
172
196
  this.logger?.debug(`BlockInputCache.onFinalized deleted ${deletedCount} cached BlockInputs`);
@@ -179,12 +203,19 @@ export class SeenBlockInput {
179
203
  if (!blockInput) {
180
204
  const {forkName, daOutOfRange} = this.buildCommonProps(block.message.slot);
181
205
 
182
- // TODO GLOAS: Implement
183
206
  if (isForkPostGloas(forkName)) {
184
- throw Error("Not implemented");
185
- }
186
- // Pre-deneb
187
- if (!isForkPostDeneb(forkName)) {
207
+ // Post-gloas
208
+ blockInput = BlockInputNoData.createFromBlock({
209
+ block: block as SignedBeaconBlock<ForkPostGloas>,
210
+ blockRootHex,
211
+ daOutOfRange,
212
+ forkName,
213
+ source,
214
+ seenTimestampSec,
215
+ peerIdStr,
216
+ });
217
+ } else if (!isForkPostDeneb(forkName)) {
218
+ // Pre-deneb
188
219
  blockInput = BlockInputPreData.createFromBlock({
189
220
  block,
190
221
  blockRootHex,
@@ -194,8 +225,8 @@ export class SeenBlockInput {
194
225
  seenTimestampSec,
195
226
  peerIdStr,
196
227
  });
197
- // Fulu Only
198
228
  } else if (isForkPostFulu(forkName)) {
229
+ // Fulu Only
199
230
  blockInput = BlockInputColumns.createFromBlock({
200
231
  block: block as SignedBeaconBlock<ForkPostFulu & ForkPreGloas>,
201
232
  blockRootHex,
@@ -207,8 +238,8 @@ export class SeenBlockInput {
207
238
  seenTimestampSec,
208
239
  peerIdStr,
209
240
  });
210
- // Deneb and Electra
211
241
  } else {
242
+ // Deneb and Electra
212
243
  blockInput = BlockInputBlobs.createFromBlock({
213
244
  block: block as SignedBeaconBlock<ForkBlobsDA>,
214
245
  blockRootHex,
@@ -399,14 +430,20 @@ export class SeenBlockInput {
399
430
 
400
431
  if (itemsToDelete > 0) {
401
432
  const sorted = [...this.blockInputs.entries()].sort((a, b) => a[1].slot - b[1].slot);
402
- for (const [rootHex] of sorted) {
403
- this.blockInputs.delete(rootHex);
433
+ for (const [, blockInput] of sorted) {
434
+ this.evictBlockInput(blockInput);
404
435
  itemsToDelete--;
405
436
  if (itemsToDelete <= 0) return;
406
437
  }
407
438
  }
408
439
  pruneSetToMax(this.verifiedProposerSignatures, MAX_BLOCK_INPUT_CACHE_SIZE);
409
440
  }
441
+
442
+ private evictBlockInput(blockInput: IBlockInput): void {
443
+ // Without forcefully clearing this cache, we would rely on WeakMap to evict memory which is not reliable
444
+ this.serializedCache.delete(blockInput.getSerializedCacheKeys());
445
+ this.blockInputs.delete(blockInput.blockRootHex);
446
+ }
410
447
  }
411
448
 
412
449
  enum SeenBlockInputCacheErrorCode {
@@ -81,7 +81,7 @@ async function validateAggregateAndProof(
81
81
  });
82
82
  }
83
83
  // [REJECT] `aggregate.data.index == 0` if `block.slot == aggregate.data.slot`.
84
- const block = chain.forkChoice.getBlock(attData.beaconBlockRoot);
84
+ const block = chain.forkChoice.getBlockDefaultStatus(attData.beaconBlockRoot);
85
85
 
86
86
  // If block is unknown, we don't handle it here. It will throw error later on at `verifyHeadBlockAndTargetRoot()`
87
87
  if (block !== null && block.slot === attData.slot && attData.index !== 0) {
@@ -143,7 +143,10 @@ export async function validateGossipAttestationsSameAttData(
143
143
  if (batchableBls) {
144
144
  // all signature sets should have same signing root since we filtered in network processor
145
145
  signatureValids = await chain.bls.verifySignatureSetsSameMessage(
146
- signatureSets.map((set) => ({publicKey: chain.index2pubkey[set.index], signature: set.signature})),
146
+ signatureSets.map((set) => {
147
+ const publicKey = chain.pubkeyCache.getOrThrow(set.index);
148
+ return {publicKey, signature: set.signature};
149
+ }),
147
150
  signatureSets[0].signingRoot
148
151
  );
149
152
  } else {
@@ -183,7 +186,7 @@ export async function validateGossipAttestationsSameAttData(
183
186
  chain.seenAttesters.add(targetEpoch, validatorIndex);
184
187
  } else {
185
188
  step0ResultOrErrors[oldIndex] = {
186
- err: new AttestationError(GossipAction.IGNORE, {
189
+ err: new AttestationError(GossipAction.REJECT, {
187
190
  code: AttestationErrorCode.INVALID_SIGNATURE,
188
191
  }),
189
192
  };
@@ -304,7 +307,7 @@ async function validateAttestationNoSignatureCheck(
304
307
  }
305
308
 
306
309
  // [REJECT] `attestation.data.index == 0` if `block.slot == attestation.data.slot`.
307
- const block = chain.forkChoice.getBlock(attData.beaconBlockRoot);
310
+ const block = chain.forkChoice.getBlockDefaultStatus(attData.beaconBlockRoot);
308
311
 
309
312
  // block being null will be handled by `verifyHeadBlockAndTargetRoot`
310
313
  if (block !== null && block.slot === attSlot && attData.index !== 0) {
@@ -753,7 +756,7 @@ export function getAttestationDataSigningRoot(config: BeaconConfig, data: phase0
753
756
  function verifyHeadBlockIsKnown(chain: IBeaconChain, beaconBlockRoot: Root): ProtoBlock {
754
757
  // TODO (LH): Enforce a maximum skip distance for unaggregated attestations.
755
758
 
756
- const headBlock = chain.forkChoice.getBlock(beaconBlockRoot);
759
+ const headBlock = chain.forkChoice.getBlockDefaultStatus(beaconBlockRoot);
757
760
  if (headBlock === null) {
758
761
  throw new AttestationError(GossipAction.IGNORE, {
759
762
  code: AttestationErrorCode.UNKNOWN_OR_PREFINALIZED_BEACON_BLOCK_ROOT,
@@ -2,6 +2,7 @@ import {
2
2
  assertValidAttesterSlashing,
3
3
  getAttesterSlashableIndices,
4
4
  getAttesterSlashingSignatureSets,
5
+ isSlashableValidator,
5
6
  } from "@lodestar/state-transition";
6
7
  import {AttesterSlashing} from "@lodestar/types";
7
8
  import {AttesterSlashingError, AttesterSlashingErrorCode, GossipAction} from "../errors/index.js";
@@ -45,7 +46,7 @@ export async function validateAttesterSlashing(
45
46
  // verifySignature = false, verified in batch below
46
47
  assertValidAttesterSlashing(
47
48
  chain.config,
48
- chain.index2pubkey,
49
+ chain.pubkeyCache,
49
50
  state.slot,
50
51
  state.validators.length,
51
52
  attesterSlashing,
@@ -58,6 +59,14 @@ export async function validateAttesterSlashing(
58
59
  });
59
60
  }
60
61
 
62
+ const currentEpoch = state.epochCtx.epoch;
63
+ if (!intersectingIndices.some((index) => isSlashableValidator(state.validators.getReadonly(index), currentEpoch))) {
64
+ throw new AttesterSlashingError(GossipAction.REJECT, {
65
+ code: AttesterSlashingErrorCode.INVALID,
66
+ error: Error("AttesterSlashing has no slashable validators"),
67
+ });
68
+ }
69
+
61
70
  const signatureSets = getAttesterSlashingSignatureSets(chain.config, state.slot, attesterSlashing);
62
71
  if (!(await chain.bls.verifySignatureSets(signatureSets, {batchable: true, priority: prioritizeBls}))) {
63
72
  throw new AttesterSlashingError(GossipAction.REJECT, {
@@ -78,7 +78,7 @@ export async function validateGossipBlobSidecar(
78
78
  // already know this block.
79
79
  const blockRoot = ssz.phase0.BeaconBlockHeader.hashTreeRoot(blobSidecar.signedBlockHeader.message);
80
80
  const blockHex = toRootHex(blockRoot);
81
- if (chain.forkChoice.getBlockHex(blockHex) !== null) {
81
+ if (chain.forkChoice.getBlockHexDefaultStatus(blockHex) !== null) {
82
82
  throw new BlobSidecarGossipError(GossipAction.IGNORE, {code: BlobSidecarErrorCode.ALREADY_KNOWN, root: blockHex});
83
83
  }
84
84
 
@@ -89,7 +89,7 @@ export async function validateGossipBlobSidecar(
89
89
  // gossip and non-gossip sources) (a client MAY queue blocks for processing once the parent block is
90
90
  // retrieved).
91
91
  const parentRoot = toRootHex(blobSidecar.signedBlockHeader.message.parentRoot);
92
- const parentBlock = chain.forkChoice.getBlockHex(parentRoot);
92
+ const parentBlock = chain.forkChoice.getBlockHexDefaultStatus(parentRoot);
93
93
  if (parentBlock === null) {
94
94
  // If fork choice does *not* consider the parent to be a descendant of the finalized block,
95
95
  // then there are two more cases:
@@ -9,7 +9,7 @@ import {
9
9
  isExecutionEnabled,
10
10
  isExecutionStateType,
11
11
  } from "@lodestar/state-transition";
12
- import {SignedBeaconBlock, deneb, gloas} from "@lodestar/types";
12
+ import {SignedBeaconBlock, deneb, gloas, isGloasBeaconBlock} from "@lodestar/types";
13
13
  import {byteArrayEquals, sleep, toRootHex} from "@lodestar/utils";
14
14
  import {BlockErrorCode, BlockGossipError, GossipAction} from "../errors/index.js";
15
15
  import {IBeaconChain} from "../interface.js";
@@ -56,7 +56,7 @@ export async function validateGossipBlock(
56
56
  // check, we will load the parent and state from disk only to find out later that we
57
57
  // already know this block.
58
58
  const blockRoot = toRootHex(config.getForkTypes(blockSlot).BeaconBlock.hashTreeRoot(block));
59
- if (chain.forkChoice.getBlockHex(blockRoot) !== null) {
59
+ if (chain.forkChoice.getBlockHexDefaultStatus(blockRoot) !== null) {
60
60
  throw new BlockGossipError(GossipAction.IGNORE, {code: BlockErrorCode.ALREADY_KNOWN, root: blockRoot});
61
61
  }
62
62
 
@@ -72,7 +72,12 @@ export async function validateGossipBlock(
72
72
  // [REJECT] The current finalized_checkpoint is an ancestor of block -- i.e.
73
73
  // get_ancestor(store, block.parent_root, compute_start_slot_at_epoch(store.finalized_checkpoint.epoch)) == store.finalized_checkpoint.root
74
74
  const parentRoot = toRootHex(block.parentRoot);
75
- const parentBlock = chain.forkChoice.getBlockHex(parentRoot);
75
+ const parentBlock = isGloasBeaconBlock(block)
76
+ ? chain.forkChoice.getBlockHexAndBlockHash(
77
+ parentRoot,
78
+ toRootHex(block.body.signedExecutionPayloadBid.message.parentBlockHash)
79
+ )
80
+ : chain.forkChoice.getBlockHexDefaultStatus(parentRoot);
76
81
  if (parentBlock === null) {
77
82
  // If fork choice does *not* consider the parent to be a descendant of the finalized block,
78
83
  // then there are two more cases:
@@ -104,7 +109,7 @@ export async function validateGossipBlock(
104
109
 
105
110
  // [REJECT] The block is from a higher slot than its parent.
106
111
  if (parentBlock.slot >= blockSlot) {
107
- throw new BlockGossipError(GossipAction.IGNORE, {
112
+ throw new BlockGossipError(GossipAction.REJECT, {
108
113
  code: BlockErrorCode.NOT_LATER_THAN_PARENT,
109
114
  parentSlot: parentBlock.slot,
110
115
  slot: blockSlot,
@@ -10,7 +10,7 @@ import {
10
10
  getBlockHeaderProposerSignatureSetByHeaderSlot,
11
11
  getBlockHeaderProposerSignatureSetByParentStateSlot,
12
12
  } from "@lodestar/state-transition";
13
- import {Root, Slot, SubnetID, fulu, ssz} from "@lodestar/types";
13
+ import {DataColumnSidecar, Root, Slot, SubnetID, fulu, ssz} from "@lodestar/types";
14
14
  import {byteArrayEquals, toRootHex, verifyMerkleBranch} from "@lodestar/utils";
15
15
  import {Metrics} from "../../metrics/metrics.js";
16
16
  import {kzg} from "../../util/kzg.js";
@@ -73,7 +73,7 @@ export async function validateGossipDataColumnSidecar(
73
73
  // 6) [IGNORE] The sidecar's block's parent (defined by block_header.parent_root) has been seen (via gossip
74
74
  // or non-gossip sources)
75
75
  const parentRoot = toRootHex(blockHeader.parentRoot);
76
- const parentBlock = chain.forkChoice.getBlockHex(parentRoot);
76
+ const parentBlock = chain.forkChoice.getBlockHexDefaultStatus(parentRoot);
77
77
  if (parentBlock === null) {
78
78
  // If fork choice does *not* consider the parent to be a descendant of the finalized block,
79
79
  // then there are two more cases:
@@ -457,9 +457,6 @@ export async function validateBlockDataColumnSidecars(
457
457
  * SPEC FUNCTION
458
458
  * https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/p2p-interface.md#compute_subnet_for_data_column_sidecar
459
459
  */
460
- export function computeSubnetForDataColumnSidecar(
461
- config: ChainConfig,
462
- columnSidecar: fulu.DataColumnSidecar
463
- ): SubnetID {
460
+ export function computeSubnetForDataColumnSidecar(config: ChainConfig, columnSidecar: DataColumnSidecar): SubnetID {
464
461
  return columnSidecar.index % config.DATA_COLUMN_SIDECAR_SUBNET_COUNT;
465
462
  }
@@ -113,8 +113,7 @@ async function validateExecutionPayloadBid(
113
113
 
114
114
  // [IGNORE] `bid.parent_block_root` is the hash tree root of a known beacon
115
115
  // block in fork choice.
116
- const block = chain.forkChoice.getBlock(bid.parentBlockRoot);
117
- if (block === null) {
116
+ if (!chain.forkChoice.hasBlock(bid.parentBlockRoot)) {
118
117
  throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
119
118
  code: ExecutionPayloadBidErrorCode.UNKNOWN_BLOCK_ROOT,
120
119
  parentBlockRoot: parentBlockRootHex,
@@ -37,7 +37,7 @@ async function validateExecutionPayloadEnvelope(
37
37
  // the block is retrieved).
38
38
  // TODO GLOAS: Need to review this, we should queue the envelope for later
39
39
  // processing if the block is not yet known, otherwise we would ignore it here
40
- const block = chain.forkChoice.getBlock(envelope.beaconBlockRoot);
40
+ const block = chain.forkChoice.getBlockDefaultStatus(envelope.beaconBlockRoot);
41
41
  if (block === null) {
42
42
  throw new ExecutionPayloadEnvelopeError(GossipAction.IGNORE, {
43
43
  code: ExecutionPayloadEnvelopeErrorCode.BLOCK_ROOT_UNKNOWN,
@@ -79,7 +79,7 @@ async function validateExecutionPayloadEnvelope(
79
79
  });
80
80
  }
81
81
 
82
- if (block.builderIndex === undefined || block.blockHashHex === undefined) {
82
+ if (block.builderIndex == null || block.blockHashFromBid == null) {
83
83
  // This indicates this block is a pre-gloas block which is wrong
84
84
  throw new ExecutionPayloadEnvelopeError(GossipAction.IGNORE, {
85
85
  code: ExecutionPayloadEnvelopeErrorCode.CACHE_FAIL,
@@ -97,11 +97,11 @@ async function validateExecutionPayloadEnvelope(
97
97
  }
98
98
 
99
99
  // [REJECT] `payload.block_hash == bid.block_hash`
100
- if (toRootHex(payload.blockHash) !== block.blockHashHex) {
100
+ if (toRootHex(payload.blockHash) !== block.blockHashFromBid) {
101
101
  throw new ExecutionPayloadEnvelopeError(GossipAction.REJECT, {
102
102
  code: ExecutionPayloadEnvelopeErrorCode.BLOCK_HASH_MISMATCH,
103
103
  envelopeBlockHash: toRootHex(payload.blockHash),
104
- bidBlockHash: block.blockHashHex,
104
+ bidBlockHash: block.blockHashFromBid,
105
105
  });
106
106
  }
107
107
 
@@ -59,8 +59,7 @@ async function validatePayloadAttestationMessage(
59
59
  // [IGNORE] The message's block `data.beacon_block_root` has been seen (via
60
60
  // gossip or non-gossip sources) (a client MAY queue attestation for processing
61
61
  // once the block is retrieved. Note a client might want to request payload after).
62
- const block = chain.forkChoice.getBlock(data.beaconBlockRoot);
63
- if (block === null) {
62
+ if (!chain.forkChoice.hasBlock(data.beaconBlockRoot)) {
64
63
  throw new PayloadAttestationError(GossipAction.IGNORE, {
65
64
  code: PayloadAttestationErrorCode.UNKNOWN_BLOCK_ROOT,
66
65
  blockRoot: toRootHex(data.beaconBlockRoot),
@@ -87,8 +86,16 @@ async function validatePayloadAttestationMessage(
87
86
  }
88
87
 
89
88
  // [REJECT] `payload_attestation_message.signature` is valid with respect to the validator's public key.
89
+ const validatorPubkey = chain.pubkeyCache.get(validatorIndex);
90
+ if (!validatorPubkey) {
91
+ throw new PayloadAttestationError(GossipAction.REJECT, {
92
+ code: PayloadAttestationErrorCode.INVALID_ATTESTER,
93
+ attesterIndex: validatorIndex,
94
+ });
95
+ }
96
+
90
97
  const signatureSet = createSingleSignatureSetFromComponents(
91
- chain.index2pubkey[validatorIndex],
98
+ validatorPubkey,
92
99
  getPayloadAttestationDataSigningRoot(chain.config, data),
93
100
  payloadAttestationMessage.signature
94
101
  );
@@ -37,7 +37,7 @@ async function validateProposerSlashing(
37
37
  try {
38
38
  const proposer = state.validators.getReadonly(proposerSlashing.signedHeader1.message.proposerIndex);
39
39
  // verifySignature = false, verified in batch below
40
- assertValidProposerSlashing(chain.config, chain.index2pubkey, state.slot, proposerSlashing, proposer, false);
40
+ assertValidProposerSlashing(chain.config, chain.pubkeyCache, state.slot, proposerSlashing, proposer, false);
41
41
  } catch (e) {
42
42
  throw new ProposerSlashingError(GossipAction.REJECT, {
43
43
  code: ProposerSlashingErrorCode.INVALID,
@@ -106,7 +106,7 @@ export async function validateSyncCommitteeGossipContributionAndProof(
106
106
  /**
107
107
  * Retrieve pubkeys in contribution aggregate using epochCtx:
108
108
  * - currSyncCommitteeIndexes cache
109
- * - index2pubkey cache
109
+ * - pubkeyCache
110
110
  */
111
111
  function getContributionIndices(
112
112
  state: CachedBeaconStateAltair,
package/src/db/beacon.ts CHANGED
@@ -15,6 +15,8 @@ import {
15
15
  CheckpointHeaderRepository,
16
16
  DataColumnSidecarArchiveRepository,
17
17
  DataColumnSidecarRepository,
18
+ ExecutionPayloadEnvelopeArchiveRepository,
19
+ ExecutionPayloadEnvelopeRepository,
18
20
  ProposerSlashingRepository,
19
21
  StateArchiveRepository,
20
22
  SyncCommitteeRepository,
@@ -36,6 +38,9 @@ export class BeaconDb implements IBeaconDb {
36
38
  dataColumnSidecar: DataColumnSidecarRepository;
37
39
  dataColumnSidecarArchive: DataColumnSidecarArchiveRepository;
38
40
 
41
+ executionPayloadEnvelope: ExecutionPayloadEnvelopeRepository;
42
+ executionPayloadEnvelopeArchive: ExecutionPayloadEnvelopeArchiveRepository;
43
+
39
44
  stateArchive: StateArchiveRepository;
40
45
  checkpointState: CheckpointStateRepository;
41
46
 
@@ -65,6 +70,9 @@ export class BeaconDb implements IBeaconDb {
65
70
  this.dataColumnSidecar = new DataColumnSidecarRepository(config, db);
66
71
  this.dataColumnSidecarArchive = new DataColumnSidecarArchiveRepository(config, db);
67
72
 
73
+ this.executionPayloadEnvelope = new ExecutionPayloadEnvelopeRepository(config, db);
74
+ this.executionPayloadEnvelopeArchive = new ExecutionPayloadEnvelopeArchiveRepository(config, db);
75
+
68
76
  this.stateArchive = new StateArchiveRepository(config, db);
69
77
  this.checkpointState = new CheckpointStateRepository(config, db);
70
78
  this.voluntaryExit = new VoluntaryExitRepository(config, db);
package/src/db/buckets.ts CHANGED
@@ -69,6 +69,9 @@ export enum Bucket {
69
69
 
70
70
  fulu_dataColumnSidecars = 57, // FULU BeaconBlockRoot -> DataColumnSidecars
71
71
  fulu_dataColumnSidecarsArchive = 58, // FULU BeaconBlockSlot -> DataColumnSidecars
72
+
73
+ gloas_executionPayloadEnvelope = 59, // GLOAS BeaconBlockRoot -> SignedExecutionPayloadEnvelope
74
+ gloas_executionPayloadEnvelopeArchive = 60, // GLOAS Slot -> SignedExecutionPayloadEnvelope
72
75
  }
73
76
 
74
77
  export function getBucketNameByValue<T extends Bucket>(enumValue: T): keyof typeof Bucket {
package/src/db/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export {BeaconDb} from "./beacon.js";
2
+ export {Bucket} from "./buckets.js";
2
3
  export type {IBeaconDb} from "./interface.js";
@@ -12,6 +12,8 @@ import {
12
12
  CheckpointHeaderRepository,
13
13
  DataColumnSidecarArchiveRepository,
14
14
  DataColumnSidecarRepository,
15
+ ExecutionPayloadEnvelopeArchiveRepository,
16
+ ExecutionPayloadEnvelopeRepository,
15
17
  ProposerSlashingRepository,
16
18
  StateArchiveRepository,
17
19
  SyncCommitteeRepository,
@@ -35,6 +37,9 @@ export interface IBeaconDb {
35
37
  dataColumnSidecar: DataColumnSidecarRepository;
36
38
  dataColumnSidecarArchive: DataColumnSidecarArchiveRepository;
37
39
 
40
+ executionPayloadEnvelope: ExecutionPayloadEnvelopeRepository;
41
+ executionPayloadEnvelopeArchive: ExecutionPayloadEnvelopeArchiveRepository;
42
+
38
43
  // finalized states
39
44
  stateArchive: StateArchiveRepository;
40
45
  // checkpoint states
@@ -1,4 +1,3 @@
1
- import all from "it-all";
2
1
  import {ChainForkConfig} from "@lodestar/config";
3
2
  import {Db, FilterOptions, KeyValue, Repository} from "@lodestar/db";
4
3
  import {Root, SignedBeaconBlock, Slot, ssz} from "@lodestar/types";
@@ -121,7 +120,7 @@ export class BlockArchiveRepository extends Repository<Slot, SignedBeaconBlock>
121
120
  }
122
121
 
123
122
  async values(opts?: BlockFilterOptions): Promise<SignedBeaconBlock[]> {
124
- return all(this.valuesStream(opts));
123
+ return await Array.fromAsync(this.valuesStream(opts));
125
124
  }
126
125
 
127
126
  // INDEX
@@ -1,7 +1,8 @@
1
1
  import {ChainForkConfig} from "@lodestar/config";
2
2
  import {Db, PrefixedRepository, decodeNumberForDbKey, encodeNumberForDbKey} from "@lodestar/db";
3
3
  import {NUMBER_OF_COLUMNS} from "@lodestar/params";
4
- import {ColumnIndex, Root, fulu, ssz} from "@lodestar/types";
4
+ import {ColumnIndex, DataColumnSidecar, Root, isGloasDataColumnSidecar, ssz} from "@lodestar/types";
5
+ import {isGloasDataColumnSidecarBytes} from "../../util/multifork.js";
5
6
  import {Bucket, getBucketNameByValue} from "../buckets.js";
6
7
 
7
8
  const COLUMN_INDEX_BYTE_SIZE = 2;
@@ -15,7 +16,7 @@ type BlockRoot = Root;
15
16
  *
16
17
  * Indexed data by `blockRoot` + `columnIndex`
17
18
  */
18
- export class DataColumnSidecarRepository extends PrefixedRepository<BlockRoot, ColumnIndex, fulu.DataColumnSidecar> {
19
+ export class DataColumnSidecarRepository extends PrefixedRepository<BlockRoot, ColumnIndex, DataColumnSidecar> {
19
20
  constructor(config: ChainForkConfig, db: Db) {
20
21
  const bucket = Bucket.fulu_dataColumnSidecars;
21
22
  super(config, db, bucket, ssz.fulu.DataColumnSidecar, getBucketNameByValue(bucket));
@@ -24,10 +25,24 @@ export class DataColumnSidecarRepository extends PrefixedRepository<BlockRoot, C
24
25
  /**
25
26
  * Id is hashTreeRoot of unsigned BeaconBlock
26
27
  */
27
- getId(value: fulu.DataColumnSidecar): ColumnIndex {
28
+ getId(value: DataColumnSidecar): ColumnIndex {
28
29
  return value.index;
29
30
  }
30
31
 
32
+ encodeValue(value: DataColumnSidecar): Uint8Array {
33
+ if (isGloasDataColumnSidecar(value)) {
34
+ return ssz.gloas.DataColumnSidecar.serialize(value);
35
+ }
36
+ return ssz.fulu.DataColumnSidecar.serialize(value);
37
+ }
38
+
39
+ decodeValue(data: Uint8Array): DataColumnSidecar {
40
+ if (isGloasDataColumnSidecarBytes(data)) {
41
+ return ssz.gloas.DataColumnSidecar.deserialize(data);
42
+ }
43
+ return ssz.fulu.DataColumnSidecar.deserialize(data);
44
+ }
45
+
31
46
  encodeKeyRaw(prefix: BlockRoot, id: ColumnIndex): Uint8Array {
32
47
  return Buffer.concat([prefix, encodeNumberForDbKey(id, COLUMN_INDEX_BYTE_SIZE)]);
33
48
  }
@@ -1,7 +1,8 @@
1
1
  import {ChainForkConfig} from "@lodestar/config";
2
2
  import {Db, PrefixedRepository, decodeNumberForDbKey, encodeNumberForDbKey} from "@lodestar/db";
3
3
  import {NUMBER_OF_COLUMNS} from "@lodestar/params";
4
- import {ColumnIndex, Slot, fulu, ssz} from "@lodestar/types";
4
+ import {ColumnIndex, DataColumnSidecar, Slot, isGloasDataColumnSidecar, ssz} from "@lodestar/types";
5
+ import {isGloasDataColumnSidecarBytes} from "../../util/multifork.js";
5
6
  import {Bucket, getBucketNameByValue} from "../buckets.js";
6
7
 
7
8
  const COLUMN_INDEX_BYTE_SIZE = 2;
@@ -13,7 +14,7 @@ const SLOT_BYTE_SIZE = 8;
13
14
  *
14
15
  * Indexed data by `slot` + `columnIndex`
15
16
  */
16
- export class DataColumnSidecarArchiveRepository extends PrefixedRepository<Slot, ColumnIndex, fulu.DataColumnSidecar> {
17
+ export class DataColumnSidecarArchiveRepository extends PrefixedRepository<Slot, ColumnIndex, DataColumnSidecar> {
17
18
  constructor(config: ChainForkConfig, db: Db) {
18
19
  const bucket = Bucket.fulu_dataColumnSidecarsArchive;
19
20
  super(config, db, bucket, ssz.fulu.DataColumnSidecar, getBucketNameByValue(bucket));
@@ -22,10 +23,24 @@ export class DataColumnSidecarArchiveRepository extends PrefixedRepository<Slot,
22
23
  /**
23
24
  * Id is hashTreeRoot of unsigned BeaconBlock
24
25
  */
25
- getId(value: fulu.DataColumnSidecar): ColumnIndex {
26
+ getId(value: DataColumnSidecar): ColumnIndex {
26
27
  return value.index;
27
28
  }
28
29
 
30
+ encodeValue(value: DataColumnSidecar): Uint8Array {
31
+ if (isGloasDataColumnSidecar(value)) {
32
+ return ssz.gloas.DataColumnSidecar.serialize(value);
33
+ }
34
+ return ssz.fulu.DataColumnSidecar.serialize(value);
35
+ }
36
+
37
+ decodeValue(data: Uint8Array): DataColumnSidecar {
38
+ if (isGloasDataColumnSidecarBytes(data)) {
39
+ return ssz.gloas.DataColumnSidecar.deserialize(data);
40
+ }
41
+ return ssz.fulu.DataColumnSidecar.deserialize(data);
42
+ }
43
+
29
44
  encodeKeyRaw(prefix: Slot, id: ColumnIndex): Uint8Array {
30
45
  return Buffer.concat([
31
46
  encodeNumberForDbKey(prefix, SLOT_BYTE_SIZE),
@@ -0,0 +1,26 @@
1
+ import {ChainForkConfig} from "@lodestar/config";
2
+ import {Db, Repository} from "@lodestar/db";
3
+ import {Root, gloas, ssz} from "@lodestar/types";
4
+ import {Bucket, getBucketNameByValue} from "../buckets.js";
5
+
6
+ type BlockRoot = Root;
7
+
8
+ /**
9
+ * Used to store unfinalized `SignedExecutionPayloadEnvelope`
10
+ *
11
+ * Indexed by beacon block root (root of the beacon block that contains the bid)
12
+ */
13
+ export class ExecutionPayloadEnvelopeRepository extends Repository<BlockRoot, gloas.SignedExecutionPayloadEnvelope> {
14
+ constructor(config: ChainForkConfig, db: Db) {
15
+ const bucket = Bucket.gloas_executionPayloadEnvelope;
16
+ super(config, db, bucket, ssz.gloas.SignedExecutionPayloadEnvelope, getBucketNameByValue(bucket));
17
+ }
18
+
19
+ /**
20
+ * Id is the beacon block root (not execution payload hash)
21
+ * This allows correlation with the block that contains the bid
22
+ */
23
+ getId(value: gloas.SignedExecutionPayloadEnvelope): BlockRoot {
24
+ return value.message.beaconBlockRoot;
25
+ }
26
+ }