@lodestar/beacon-node 1.38.0 → 1.39.0-dev.39dac0f03d

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 (388) hide show
  1. package/lib/api/impl/beacon/blocks/utils.js +1 -1
  2. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  3. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  4. package/lib/api/impl/beacon/state/index.js +4 -5
  5. package/lib/api/impl/beacon/state/index.js.map +1 -1
  6. package/lib/api/impl/validator/index.js +1 -1
  7. package/lib/api/impl/validator/index.js.map +1 -1
  8. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  9. package/lib/chain/blocks/verifyBlock.js +1 -21
  10. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  11. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -6
  12. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  13. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +9 -128
  14. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  15. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +3 -2
  16. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  17. package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
  18. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  19. package/lib/chain/chain.d.ts +1 -4
  20. package/lib/chain/chain.d.ts.map +1 -1
  21. package/lib/chain/chain.js +10 -28
  22. package/lib/chain/chain.js.map +1 -1
  23. package/lib/chain/initState.d.ts +1 -14
  24. package/lib/chain/initState.d.ts.map +1 -1
  25. package/lib/chain/initState.js +1 -62
  26. package/lib/chain/initState.js.map +1 -1
  27. package/lib/chain/interface.d.ts +0 -2
  28. package/lib/chain/interface.d.ts.map +1 -1
  29. package/lib/chain/interface.js.map +1 -1
  30. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -4
  31. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  32. package/lib/chain/opPools/aggregatedAttestationPool.js +4 -4
  33. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  34. package/lib/chain/opPools/opPool.d.ts +3 -0
  35. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  36. package/lib/chain/opPools/opPool.js +9 -8
  37. package/lib/chain/opPools/opPool.js.map +1 -1
  38. package/lib/chain/options.d.ts +0 -4
  39. package/lib/chain/options.d.ts.map +1 -1
  40. package/lib/chain/options.js +0 -2
  41. package/lib/chain/options.js.map +1 -1
  42. package/lib/chain/prepareNextSlot.d.ts +0 -4
  43. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  44. package/lib/chain/prepareNextSlot.js +2 -22
  45. package/lib/chain/prepareNextSlot.js.map +1 -1
  46. package/lib/chain/produceBlock/produceBlockBody.d.ts +2 -22
  47. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  48. package/lib/chain/produceBlock/produceBlockBody.js +32 -98
  49. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  50. package/lib/chain/rewards/attestationsRewards.d.ts +3 -2
  51. package/lib/chain/rewards/attestationsRewards.d.ts.map +1 -1
  52. package/lib/chain/rewards/attestationsRewards.js +9 -9
  53. package/lib/chain/rewards/attestationsRewards.js.map +1 -1
  54. package/lib/chain/rewards/blockRewards.d.ts +2 -1
  55. package/lib/chain/rewards/blockRewards.d.ts.map +1 -1
  56. package/lib/chain/rewards/blockRewards.js +5 -5
  57. package/lib/chain/rewards/blockRewards.js.map +1 -1
  58. package/lib/chain/rewards/syncCommitteeRewards.d.ts +3 -2
  59. package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +1 -1
  60. package/lib/chain/rewards/syncCommitteeRewards.js +2 -3
  61. package/lib/chain/rewards/syncCommitteeRewards.js.map +1 -1
  62. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +4 -1
  63. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  64. package/lib/chain/stateCache/persistentCheckpointsCache.js +4 -2
  65. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  66. package/lib/chain/validation/attesterSlashing.js +2 -2
  67. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  68. package/lib/chain/validation/blobSidecar.d.ts.map +1 -1
  69. package/lib/chain/validation/blobSidecar.js +2 -2
  70. package/lib/chain/validation/blobSidecar.js.map +1 -1
  71. package/lib/chain/validation/block.js +1 -1
  72. package/lib/chain/validation/block.js.map +1 -1
  73. package/lib/chain/validation/blsToExecutionChange.js +1 -1
  74. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  75. package/lib/chain/validation/dataColumnSidecar.js +2 -2
  76. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  77. package/lib/chain/validation/proposerSlashing.js +1 -1
  78. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  79. package/lib/chain/validation/signatureSets/aggregateAndProof.js +1 -1
  80. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  81. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +3 -2
  82. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  83. package/lib/chain/validation/signatureSets/contributionAndProof.js +3 -4
  84. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  85. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +3 -2
  86. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  87. package/lib/chain/validation/signatureSets/syncCommittee.js +3 -3
  88. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  89. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +2 -1
  90. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  91. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
  92. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  93. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +3 -2
  94. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  95. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +2 -3
  96. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  97. package/lib/chain/validation/syncCommittee.js +1 -1
  98. package/lib/chain/validation/syncCommittee.js.map +1 -1
  99. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  100. package/lib/chain/validation/syncCommitteeContributionAndProof.js +5 -4
  101. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  102. package/lib/chain/validation/voluntaryExit.js +1 -1
  103. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  104. package/lib/db/beacon.d.ts +3 -7
  105. package/lib/db/beacon.d.ts.map +1 -1
  106. package/lib/db/beacon.js +33 -12
  107. package/lib/db/beacon.js.map +1 -1
  108. package/lib/db/buckets.d.ts +12 -6
  109. package/lib/db/buckets.d.ts.map +1 -1
  110. package/lib/db/buckets.js +6 -1
  111. package/lib/db/buckets.js.map +1 -1
  112. package/lib/db/interface.d.ts +2 -7
  113. package/lib/db/interface.d.ts.map +1 -1
  114. package/lib/db/repositories/index.d.ts +0 -3
  115. package/lib/db/repositories/index.d.ts.map +1 -1
  116. package/lib/db/repositories/index.js +0 -3
  117. package/lib/db/repositories/index.js.map +1 -1
  118. package/lib/execution/engine/http.d.ts +5 -13
  119. package/lib/execution/engine/http.d.ts.map +1 -1
  120. package/lib/execution/engine/http.js +6 -15
  121. package/lib/execution/engine/http.js.map +1 -1
  122. package/lib/execution/engine/index.d.ts.map +1 -1
  123. package/lib/execution/engine/index.js +1 -1
  124. package/lib/execution/engine/index.js.map +1 -1
  125. package/lib/execution/engine/interface.d.ts +1 -1
  126. package/lib/execution/engine/interface.d.ts.map +1 -1
  127. package/lib/execution/engine/interface.js.map +1 -1
  128. package/lib/{eth1/provider → execution/engine}/jsonRpcHttpClient.d.ts +1 -1
  129. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -0
  130. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -0
  131. package/lib/execution/engine/jwt.d.ts.map +1 -0
  132. package/lib/execution/engine/jwt.js.map +1 -0
  133. package/lib/execution/engine/mock.d.ts +2 -6
  134. package/lib/execution/engine/mock.d.ts.map +1 -1
  135. package/lib/execution/engine/mock.js +4 -15
  136. package/lib/execution/engine/mock.js.map +1 -1
  137. package/lib/execution/engine/payloadIdCache.d.ts +1 -1
  138. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  139. package/lib/execution/engine/types.d.ts +1 -1
  140. package/lib/execution/engine/types.d.ts.map +1 -1
  141. package/lib/execution/engine/types.js +1 -1
  142. package/lib/execution/engine/types.js.map +1 -1
  143. package/lib/execution/engine/utils.d.ts +64 -2
  144. package/lib/execution/engine/utils.d.ts.map +1 -1
  145. package/lib/execution/engine/utils.js +91 -2
  146. package/lib/execution/engine/utils.js.map +1 -1
  147. package/lib/index.d.ts +1 -2
  148. package/lib/index.d.ts.map +1 -1
  149. package/lib/index.js +1 -2
  150. package/lib/index.js.map +1 -1
  151. package/lib/metrics/metrics/lodestar.d.ts +0 -49
  152. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  153. package/lib/metrics/metrics/lodestar.js +0 -134
  154. package/lib/metrics/metrics/lodestar.js.map +1 -1
  155. package/lib/network/core/events.d.ts +1 -1
  156. package/lib/network/core/events.d.ts.map +1 -1
  157. package/lib/network/core/events.js +1 -1
  158. package/lib/network/core/events.js.map +1 -1
  159. package/lib/network/events.d.ts +6 -1
  160. package/lib/network/events.d.ts.map +1 -1
  161. package/lib/network/events.js +7 -1
  162. package/lib/network/events.js.map +1 -1
  163. package/lib/node/nodejs.d.ts.map +1 -1
  164. package/lib/node/nodejs.js +10 -9
  165. package/lib/node/nodejs.js.map +1 -1
  166. package/lib/node/notifier.d.ts.map +1 -1
  167. package/lib/node/notifier.js +0 -13
  168. package/lib/node/notifier.js.map +1 -1
  169. package/lib/node/options.d.ts +0 -2
  170. package/lib/node/options.d.ts.map +1 -1
  171. package/lib/node/options.js +0 -2
  172. package/lib/node/options.js.map +1 -1
  173. package/lib/node/utils/interop/deposits.d.ts +2 -1
  174. package/lib/node/utils/interop/deposits.d.ts.map +1 -1
  175. package/lib/node/utils/interop/deposits.js.map +1 -1
  176. package/lib/node/utils/interop/state.d.ts +1 -1
  177. package/lib/node/utils/interop/state.d.ts.map +1 -1
  178. package/lib/node/utils/state.d.ts +1 -7
  179. package/lib/node/utils/state.d.ts.map +1 -1
  180. package/lib/node/utils/state.js +1 -14
  181. package/lib/node/utils/state.js.map +1 -1
  182. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  183. package/lib/sync/backfill/backfill.js +2 -2
  184. package/lib/sync/backfill/backfill.js.map +1 -1
  185. package/lib/sync/backfill/verify.d.ts +2 -2
  186. package/lib/sync/backfill/verify.d.ts.map +1 -1
  187. package/lib/sync/backfill/verify.js +3 -3
  188. package/lib/sync/backfill/verify.js.map +1 -1
  189. package/lib/util/workerEvents.d.ts +1 -6
  190. package/lib/util/workerEvents.d.ts.map +1 -1
  191. package/lib/util/workerEvents.js +8 -8
  192. package/lib/util/workerEvents.js.map +1 -1
  193. package/package.json +14 -21
  194. package/src/api/impl/beacon/blocks/utils.ts +1 -1
  195. package/src/api/impl/beacon/state/index.ts +4 -5
  196. package/src/api/impl/validator/index.ts +1 -1
  197. package/src/chain/blocks/verifyBlock.ts +3 -24
  198. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -161
  199. package/src/chain/blocks/verifyBlocksSignatures.ts +5 -2
  200. package/src/chain/chain.ts +9 -32
  201. package/src/chain/initState.ts +1 -97
  202. package/src/chain/interface.ts +0 -2
  203. package/src/chain/opPools/aggregatedAttestationPool.ts +7 -7
  204. package/src/chain/opPools/opPool.ts +8 -8
  205. package/src/chain/options.ts +0 -6
  206. package/src/chain/prepareNextSlot.ts +2 -29
  207. package/src/chain/produceBlock/produceBlockBody.ts +33 -132
  208. package/src/chain/rewards/attestationsRewards.ts +18 -8
  209. package/src/chain/rewards/blockRewards.ts +6 -3
  210. package/src/chain/rewards/syncCommitteeRewards.ts +5 -3
  211. package/src/chain/stateCache/persistentCheckpointsCache.ts +15 -2
  212. package/src/chain/validation/attesterSlashing.ts +2 -2
  213. package/src/chain/validation/blobSidecar.ts +10 -2
  214. package/src/chain/validation/block.ts +1 -1
  215. package/src/chain/validation/blsToExecutionChange.ts +1 -1
  216. package/src/chain/validation/dataColumnSidecar.ts +6 -1
  217. package/src/chain/validation/proposerSlashing.ts +1 -1
  218. package/src/chain/validation/signatureSets/aggregateAndProof.ts +1 -1
  219. package/src/chain/validation/signatureSets/contributionAndProof.ts +6 -3
  220. package/src/chain/validation/signatureSets/syncCommittee.ts +6 -2
  221. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +3 -1
  222. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +5 -2
  223. package/src/chain/validation/syncCommittee.ts +1 -1
  224. package/src/chain/validation/syncCommitteeContributionAndProof.ts +10 -6
  225. package/src/chain/validation/voluntaryExit.ts +1 -1
  226. package/src/db/beacon.ts +38 -16
  227. package/src/db/buckets.ts +12 -7
  228. package/src/db/interface.ts +2 -13
  229. package/src/db/repositories/index.ts +0 -3
  230. package/src/execution/engine/http.ts +12 -21
  231. package/src/execution/engine/index.ts +1 -1
  232. package/src/execution/engine/interface.ts +1 -1
  233. package/src/{eth1/provider → execution/engine}/jsonRpcHttpClient.ts +1 -1
  234. package/src/execution/engine/mock.ts +4 -17
  235. package/src/execution/engine/payloadIdCache.ts +1 -1
  236. package/src/execution/engine/types.ts +9 -9
  237. package/src/execution/engine/utils.ts +111 -5
  238. package/src/index.ts +1 -2
  239. package/src/metrics/metrics/lodestar.ts +0 -144
  240. package/src/network/core/events.ts +1 -1
  241. package/src/network/events.ts +7 -1
  242. package/src/node/nodejs.ts +11 -9
  243. package/src/node/notifier.ts +0 -16
  244. package/src/node/options.ts +0 -3
  245. package/src/node/utils/interop/deposits.ts +3 -1
  246. package/src/node/utils/interop/state.ts +1 -1
  247. package/src/node/utils/state.ts +3 -18
  248. package/src/sync/backfill/backfill.ts +14 -2
  249. package/src/sync/backfill/verify.ts +10 -2
  250. package/src/util/workerEvents.ts +9 -8
  251. package/lib/chain/genesis/genesis.d.ts +0 -51
  252. package/lib/chain/genesis/genesis.d.ts.map +0 -1
  253. package/lib/chain/genesis/genesis.js +0 -123
  254. package/lib/chain/genesis/genesis.js.map +0 -1
  255. package/lib/chain/genesis/interface.d.ts +0 -13
  256. package/lib/chain/genesis/interface.d.ts.map +0 -1
  257. package/lib/chain/genesis/interface.js +0 -2
  258. package/lib/chain/genesis/interface.js.map +0 -1
  259. package/lib/db/repositories/depositDataRoot.d.ts +0 -22
  260. package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
  261. package/lib/db/repositories/depositDataRoot.js +0 -62
  262. package/lib/db/repositories/depositDataRoot.js.map +0 -1
  263. package/lib/db/repositories/depositEvent.d.ts +0 -13
  264. package/lib/db/repositories/depositEvent.d.ts.map +0 -1
  265. package/lib/db/repositories/depositEvent.js +0 -27
  266. package/lib/db/repositories/depositEvent.js.map +0 -1
  267. package/lib/db/repositories/eth1Data.d.ts +0 -13
  268. package/lib/db/repositories/eth1Data.d.ts.map +0 -1
  269. package/lib/db/repositories/eth1Data.js +0 -26
  270. package/lib/db/repositories/eth1Data.js.map +0 -1
  271. package/lib/db/single/index.d.ts +0 -3
  272. package/lib/db/single/index.d.ts.map +0 -1
  273. package/lib/db/single/index.js +0 -3
  274. package/lib/db/single/index.js.map +0 -1
  275. package/lib/db/single/preGenesisState.d.ts +0 -16
  276. package/lib/db/single/preGenesisState.d.ts.map +0 -1
  277. package/lib/db/single/preGenesisState.js +0 -29
  278. package/lib/db/single/preGenesisState.js.map +0 -1
  279. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +0 -14
  280. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
  281. package/lib/db/single/preGenesisStateLastProcessedBlock.js +0 -27
  282. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +0 -1
  283. package/lib/eth1/errors.d.ts +0 -66
  284. package/lib/eth1/errors.d.ts.map +0 -1
  285. package/lib/eth1/errors.js +0 -27
  286. package/lib/eth1/errors.js.map +0 -1
  287. package/lib/eth1/eth1DataCache.d.ts +0 -19
  288. package/lib/eth1/eth1DataCache.d.ts.map +0 -1
  289. package/lib/eth1/eth1DataCache.js +0 -19
  290. package/lib/eth1/eth1DataCache.js.map +0 -1
  291. package/lib/eth1/eth1DepositDataTracker.d.ts +0 -80
  292. package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
  293. package/lib/eth1/eth1DepositDataTracker.js +0 -317
  294. package/lib/eth1/eth1DepositDataTracker.js.map +0 -1
  295. package/lib/eth1/eth1DepositsCache.d.ts +0 -42
  296. package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
  297. package/lib/eth1/eth1DepositsCache.js +0 -119
  298. package/lib/eth1/eth1DepositsCache.js.map +0 -1
  299. package/lib/eth1/eth1MergeBlockTracker.d.ts +0 -65
  300. package/lib/eth1/eth1MergeBlockTracker.d.ts.map +0 -1
  301. package/lib/eth1/eth1MergeBlockTracker.js +0 -262
  302. package/lib/eth1/eth1MergeBlockTracker.js.map +0 -1
  303. package/lib/eth1/index.d.ts +0 -46
  304. package/lib/eth1/index.d.ts.map +0 -1
  305. package/lib/eth1/index.js +0 -121
  306. package/lib/eth1/index.js.map +0 -1
  307. package/lib/eth1/interface.d.ts +0 -112
  308. package/lib/eth1/interface.d.ts.map +0 -1
  309. package/lib/eth1/interface.js +0 -8
  310. package/lib/eth1/interface.js.map +0 -1
  311. package/lib/eth1/options.d.ts +0 -22
  312. package/lib/eth1/options.d.ts.map +0 -1
  313. package/lib/eth1/options.js +0 -8
  314. package/lib/eth1/options.js.map +0 -1
  315. package/lib/eth1/provider/eth1Provider.d.ts +0 -39
  316. package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
  317. package/lib/eth1/provider/eth1Provider.js +0 -147
  318. package/lib/eth1/provider/eth1Provider.js.map +0 -1
  319. package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
  320. package/lib/eth1/provider/jsonRpcHttpClient.js.map +0 -1
  321. package/lib/eth1/provider/jwt.d.ts.map +0 -1
  322. package/lib/eth1/provider/jwt.js.map +0 -1
  323. package/lib/eth1/provider/utils.d.ts +0 -65
  324. package/lib/eth1/provider/utils.d.ts.map +0 -1
  325. package/lib/eth1/provider/utils.js +0 -120
  326. package/lib/eth1/provider/utils.js.map +0 -1
  327. package/lib/eth1/stream.d.ts +0 -15
  328. package/lib/eth1/stream.d.ts.map +0 -1
  329. package/lib/eth1/stream.js +0 -54
  330. package/lib/eth1/stream.js.map +0 -1
  331. package/lib/eth1/utils/depositContract.d.ts +0 -14
  332. package/lib/eth1/utils/depositContract.d.ts.map +0 -1
  333. package/lib/eth1/utils/depositContract.js +0 -33
  334. package/lib/eth1/utils/depositContract.js.map +0 -1
  335. package/lib/eth1/utils/deposits.d.ts +0 -8
  336. package/lib/eth1/utils/deposits.d.ts.map +0 -1
  337. package/lib/eth1/utils/deposits.js +0 -47
  338. package/lib/eth1/utils/deposits.js.map +0 -1
  339. package/lib/eth1/utils/eth1Data.d.ts +0 -22
  340. package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
  341. package/lib/eth1/utils/eth1Data.js +0 -77
  342. package/lib/eth1/utils/eth1Data.js.map +0 -1
  343. package/lib/eth1/utils/eth1DepositEvent.d.ts +0 -7
  344. package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
  345. package/lib/eth1/utils/eth1DepositEvent.js +0 -13
  346. package/lib/eth1/utils/eth1DepositEvent.js.map +0 -1
  347. package/lib/eth1/utils/eth1Vote.d.ts +0 -17
  348. package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
  349. package/lib/eth1/utils/eth1Vote.js +0 -111
  350. package/lib/eth1/utils/eth1Vote.js.map +0 -1
  351. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts +0 -9
  352. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
  353. package/lib/eth1/utils/groupDepositEventsByBlock.js +0 -17
  354. package/lib/eth1/utils/groupDepositEventsByBlock.js.map +0 -1
  355. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts +0 -10
  356. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
  357. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js +0 -14
  358. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js.map +0 -1
  359. package/src/chain/genesis/genesis.ts +0 -190
  360. package/src/chain/genesis/interface.ts +0 -14
  361. package/src/db/repositories/depositDataRoot.ts +0 -80
  362. package/src/db/repositories/depositEvent.ts +0 -32
  363. package/src/db/repositories/eth1Data.ts +0 -33
  364. package/src/db/single/index.ts +0 -2
  365. package/src/db/single/preGenesisState.ts +0 -37
  366. package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
  367. package/src/eth1/errors.ts +0 -40
  368. package/src/eth1/eth1DataCache.ts +0 -26
  369. package/src/eth1/eth1DepositDataTracker.ts +0 -410
  370. package/src/eth1/eth1DepositsCache.ts +0 -141
  371. package/src/eth1/eth1MergeBlockTracker.ts +0 -328
  372. package/src/eth1/index.ts +0 -157
  373. package/src/eth1/interface.ts +0 -131
  374. package/src/eth1/options.ts +0 -28
  375. package/src/eth1/provider/eth1Provider.ts +0 -229
  376. package/src/eth1/provider/utils.ts +0 -136
  377. package/src/eth1/stream.ts +0 -75
  378. package/src/eth1/utils/depositContract.ts +0 -37
  379. package/src/eth1/utils/deposits.ts +0 -70
  380. package/src/eth1/utils/eth1Data.ts +0 -100
  381. package/src/eth1/utils/eth1DepositEvent.ts +0 -12
  382. package/src/eth1/utils/eth1Vote.ts +0 -142
  383. package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
  384. package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
  385. /package/lib/{eth1/provider → execution/engine}/jsonRpcHttpClient.js +0 -0
  386. /package/lib/{eth1/provider → execution/engine}/jwt.d.ts +0 -0
  387. /package/lib/{eth1/provider → execution/engine}/jwt.js +0 -0
  388. /package/src/{eth1/provider → execution/engine}/jwt.ts +0 -0
@@ -1,142 +0,0 @@
1
- import {ChainForkConfig} from "@lodestar/config";
2
- import {EPOCHS_PER_ETH1_VOTING_PERIOD, SLOTS_PER_EPOCH, isForkPostElectra} from "@lodestar/params";
3
- import {BeaconStateAllForks, BeaconStateElectra, computeTimeAtSlot} from "@lodestar/state-transition";
4
- import {RootHex, phase0} from "@lodestar/types";
5
- import {toRootHex} from "@lodestar/utils";
6
-
7
- export type Eth1DataGetter = ({
8
- timestampRange,
9
- }: {
10
- timestampRange: {gte: number; lte: number};
11
- }) => Promise<phase0.Eth1Data[]>;
12
-
13
- export async function getEth1VotesToConsider(
14
- config: ChainForkConfig,
15
- state: BeaconStateAllForks,
16
- eth1DataGetter: Eth1DataGetter
17
- ): Promise<phase0.Eth1Data[]> {
18
- const fork = config.getForkName(state.slot);
19
- if (isForkPostElectra(fork)) {
20
- const {eth1DepositIndex, depositRequestsStartIndex} = state as BeaconStateElectra;
21
- if (eth1DepositIndex === Number(depositRequestsStartIndex)) {
22
- return state.eth1DataVotes.getAllReadonly();
23
- }
24
- }
25
-
26
- const periodStart = votingPeriodStartTime(config, state);
27
- const {SECONDS_PER_ETH1_BLOCK, ETH1_FOLLOW_DISTANCE} = config;
28
-
29
- // Modified version of the spec function to fetch the required range directly from the DB
30
- return (
31
- await eth1DataGetter({
32
- timestampRange: {
33
- // Spec v0.12.2
34
- // is_candidate_block =
35
- // block.timestamp + SECONDS_PER_ETH1_BLOCK * ETH1_FOLLOW_DISTANCE <= period_start &&
36
- // block.timestamp + SECONDS_PER_ETH1_BLOCK * ETH1_FOLLOW_DISTANCE * 2 >= period_start
37
- lte: periodStart - SECONDS_PER_ETH1_BLOCK * ETH1_FOLLOW_DISTANCE,
38
- gte: periodStart - SECONDS_PER_ETH1_BLOCK * ETH1_FOLLOW_DISTANCE * 2,
39
- },
40
- })
41
- ).filter((eth1Data) => eth1Data.depositCount >= state.eth1Data.depositCount);
42
- }
43
-
44
- export function pickEth1Vote(state: BeaconStateAllForks, votesToConsider: phase0.Eth1Data[]): phase0.Eth1Data {
45
- const votesToConsiderKeys = new Set<string>();
46
- for (const eth1Data of votesToConsider) {
47
- votesToConsiderKeys.add(getEth1DataKey(eth1Data));
48
- }
49
-
50
- const eth1DataHashToEth1Data = new Map<RootHex, phase0.Eth1Data>();
51
- const eth1DataVoteCountByRoot = new Map<RootHex, number>();
52
- const eth1DataVotesOrder: RootHex[] = [];
53
-
54
- // BeaconStateAllForks is always represented as a tree with a hashing cache.
55
- // To check equality its cheaper to use hashTreeRoot as keys.
56
- // However `votesToConsider` is an array of values since those are read from DB.
57
- // TODO: Optimize cache of known votes, to prevent re-hashing stored values.
58
- // Note: for low validator counts it's not very important, since this runs once per proposal
59
- const eth1DataVotes = state.eth1DataVotes.getAllReadonly();
60
- for (const eth1DataVote of eth1DataVotes) {
61
- const rootHex = getEth1DataKey(eth1DataVote);
62
-
63
- if (votesToConsiderKeys.has(rootHex)) {
64
- const prevVoteCount = eth1DataVoteCountByRoot.get(rootHex);
65
- eth1DataVoteCountByRoot.set(rootHex, 1 + (prevVoteCount ?? 0));
66
-
67
- // Cache eth1DataVote to root Map only once per root
68
- if (prevVoteCount === undefined) {
69
- eth1DataHashToEth1Data.set(rootHex, eth1DataVote);
70
- eth1DataVotesOrder.push(rootHex);
71
- }
72
- }
73
- }
74
-
75
- const eth1DataRootsMaxVotes = getKeysWithMaxValue(eth1DataVoteCountByRoot);
76
-
77
- // No votes, vote for the last valid vote
78
- if (eth1DataRootsMaxVotes.length === 0) {
79
- return votesToConsider.at(-1) ?? state.eth1Data;
80
- }
81
-
82
- // If there's a single winning vote with a majority vote that one
83
- if (eth1DataRootsMaxVotes.length === 1) {
84
- return eth1DataHashToEth1Data.get(eth1DataRootsMaxVotes[0]) ?? state.eth1Data;
85
- }
86
-
87
- // If there are multiple winning votes, vote for the latest one
88
- const latestMostVotedRoot =
89
- eth1DataVotesOrder[Math.max(...eth1DataRootsMaxVotes.map((root) => eth1DataVotesOrder.indexOf(root)))];
90
- return eth1DataHashToEth1Data.get(latestMostVotedRoot) ?? state.eth1Data;
91
- }
92
-
93
- /**
94
- * Returns the array of keys with max value. May return 0, 1 or more keys
95
- */
96
- function getKeysWithMaxValue<T>(map: Map<T, number>): T[] {
97
- const entries = Array.from(map.entries());
98
- let keysMax: T[] = [];
99
- let valueMax = -Infinity;
100
-
101
- for (const [key, value] of entries) {
102
- if (value > valueMax) {
103
- keysMax = [key];
104
- valueMax = value;
105
- } else if (value === valueMax) {
106
- keysMax.push(key);
107
- }
108
- }
109
-
110
- return keysMax;
111
- }
112
-
113
- /**
114
- * Key-ed by fastSerializeEth1Data(). votesToConsider is read from DB as struct and always has a length of 2048.
115
- * `state.eth1DataVotes` has a length between 0 and ETH1_FOLLOW_DISTANCE with an equal probability of each value.
116
- * So to get the average faster time to key both votesToConsider and state.eth1DataVotes it's better to use
117
- * fastSerializeEth1Data(). However, a long term solution is to cache valid votes in memory and prevent having
118
- * to recompute their key on every proposal.
119
- *
120
- * With `fastSerializeEth1Data()`: avg time 20 ms/op
121
- * ✓ pickEth1Vote - no votes 233.0587 ops/s 4.290764 ms/op - 121 runs 1.02 s
122
- * ✓ pickEth1Vote - max votes 29.21546 ops/s 34.22845 ms/op - 25 runs 1.38 s
123
- *
124
- * With `toHexString(ssz.phase0.Eth1Data.hashTreeRoot(eth1Data))`: avg time 23 ms/op
125
- * ✓ pickEth1Vote - no votes 46.12341 ops/s 21.68096 ms/op - 133 runs 3.40 s
126
- * ✓ pickEth1Vote - max votes 37.89912 ops/s 26.38583 ms/op - 29 runs 1.27 s
127
- */
128
- function getEth1DataKey(eth1Data: phase0.Eth1Data): string {
129
- return fastSerializeEth1Data(eth1Data);
130
- }
131
-
132
- /**
133
- * Serialize eth1Data types to a unique string ID. It is only used for comparison.
134
- */
135
- export function fastSerializeEth1Data(eth1Data: phase0.Eth1Data): string {
136
- return toRootHex(eth1Data.blockHash) + eth1Data.depositCount.toString(16) + toRootHex(eth1Data.depositRoot);
137
- }
138
-
139
- export function votingPeriodStartTime(config: ChainForkConfig, state: BeaconStateAllForks): number {
140
- const eth1VotingPeriodStartSlot = state.slot - (state.slot % (EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH));
141
- return computeTimeAtSlot(config, eth1VotingPeriodStartSlot, state.genesisTime);
142
- }
@@ -1,19 +0,0 @@
1
- import {phase0} from "@lodestar/types";
2
- import {BatchDepositEvents} from "../interface.js";
3
-
4
- /**
5
- * Return deposit events of blocks grouped/sorted by block number and deposit index
6
- * Blocks without events are omitted
7
- * @param depositEvents range deposit events
8
- */
9
- export function groupDepositEventsByBlock(depositEvents: phase0.DepositEvent[]): BatchDepositEvents[] {
10
- depositEvents.sort((event1, event2) => event1.index - event2.index);
11
- const depositsByBlockMap = new Map<number, phase0.DepositEvent[]>();
12
- for (const deposit of depositEvents) {
13
- depositsByBlockMap.set(deposit.blockNumber, [...(depositsByBlockMap.get(deposit.blockNumber) || []), deposit]);
14
- }
15
- return Array.from(depositsByBlockMap.entries()).map(([blockNumber, depositEvents]) => ({
16
- blockNumber,
17
- depositEvents,
18
- }));
19
- }
@@ -1,18 +0,0 @@
1
- import {ChainConfig} from "@lodestar/config";
2
-
3
- /**
4
- * Utility for fetching genesis min genesis time block
5
- * Returns an approximation of the next block diff to fetch to progressively
6
- * get closer to the block that satisfies min genesis time condition
7
- */
8
- export function optimizeNextBlockDiffForGenesis(
9
- lastFetchedBlock: {timestamp: number},
10
- params: Pick<ChainConfig, "MIN_GENESIS_TIME" | "GENESIS_DELAY" | "SECONDS_PER_ETH1_BLOCK">
11
- ): number {
12
- const timeToGenesis = params.MIN_GENESIS_TIME - params.GENESIS_DELAY - lastFetchedBlock.timestamp;
13
- const numBlocksToGenesis = Math.floor(timeToGenesis / params.SECONDS_PER_ETH1_BLOCK);
14
- if (numBlocksToGenesis <= 2) {
15
- return 1;
16
- }
17
- return Math.max(1, Math.floor(numBlocksToGenesis / 2));
18
- }
File without changes
File without changes