@lodestar/beacon-node 1.39.0-dev.b37f2bd1bd → 1.39.0-dev.c151a164f2

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 (338) 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/chain/blocks/verifyBlock.d.ts.map +1 -1
  4. package/lib/chain/blocks/verifyBlock.js +1 -1
  5. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  6. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -1
  7. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  8. package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
  9. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  10. package/lib/chain/chain.d.ts +1 -4
  11. package/lib/chain/chain.d.ts.map +1 -1
  12. package/lib/chain/chain.js +8 -16
  13. package/lib/chain/chain.js.map +1 -1
  14. package/lib/chain/initState.d.ts +1 -14
  15. package/lib/chain/initState.d.ts.map +1 -1
  16. package/lib/chain/initState.js +1 -62
  17. package/lib/chain/initState.js.map +1 -1
  18. package/lib/chain/interface.d.ts +0 -2
  19. package/lib/chain/interface.d.ts.map +1 -1
  20. package/lib/chain/interface.js.map +1 -1
  21. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -4
  22. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  23. package/lib/chain/opPools/aggregatedAttestationPool.js +4 -4
  24. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  25. package/lib/chain/opPools/opPool.d.ts +3 -0
  26. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  27. package/lib/chain/opPools/opPool.js +9 -8
  28. package/lib/chain/opPools/opPool.js.map +1 -1
  29. package/lib/chain/prepareNextSlot.d.ts +0 -4
  30. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  31. package/lib/chain/prepareNextSlot.js +1 -21
  32. package/lib/chain/prepareNextSlot.js.map +1 -1
  33. package/lib/chain/produceBlock/produceBlockBody.d.ts +0 -1
  34. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  35. package/lib/chain/produceBlock/produceBlockBody.js +8 -11
  36. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  37. package/lib/chain/rewards/attestationsRewards.d.ts +2 -1
  38. package/lib/chain/rewards/attestationsRewards.d.ts.map +1 -1
  39. package/lib/chain/rewards/attestationsRewards.js +8 -8
  40. package/lib/chain/rewards/attestationsRewards.js.map +1 -1
  41. package/lib/chain/rewards/blockRewards.d.ts +2 -1
  42. package/lib/chain/rewards/blockRewards.d.ts.map +1 -1
  43. package/lib/chain/rewards/blockRewards.js +5 -5
  44. package/lib/chain/rewards/blockRewards.js.map +1 -1
  45. package/lib/chain/rewards/syncCommitteeRewards.d.ts +2 -1
  46. package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +1 -1
  47. package/lib/chain/rewards/syncCommitteeRewards.js +2 -2
  48. package/lib/chain/rewards/syncCommitteeRewards.js.map +1 -1
  49. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +4 -1
  50. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  51. package/lib/chain/stateCache/persistentCheckpointsCache.js +4 -2
  52. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  53. package/lib/chain/validation/attesterSlashing.js +1 -1
  54. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  55. package/lib/chain/validation/block.js +1 -1
  56. package/lib/chain/validation/block.js.map +1 -1
  57. package/lib/chain/validation/blsToExecutionChange.js +1 -1
  58. package/lib/chain/validation/proposerSlashing.js +1 -1
  59. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  60. package/lib/chain/validation/signatureSets/aggregateAndProof.js +1 -1
  61. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  62. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -1
  63. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  64. package/lib/chain/validation/signatureSets/contributionAndProof.js +2 -2
  65. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  66. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -1
  67. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  68. package/lib/chain/validation/signatureSets/syncCommittee.js +2 -2
  69. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  70. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +2 -1
  71. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  72. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
  73. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  74. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -1
  75. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  76. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +1 -2
  77. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  78. package/lib/chain/validation/syncCommittee.js +1 -1
  79. package/lib/chain/validation/syncCommittee.js.map +1 -1
  80. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  81. package/lib/chain/validation/syncCommitteeContributionAndProof.js +3 -3
  82. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  83. package/lib/chain/validation/voluntaryExit.js +1 -1
  84. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  85. package/lib/db/beacon.d.ts +3 -7
  86. package/lib/db/beacon.d.ts.map +1 -1
  87. package/lib/db/beacon.js +33 -12
  88. package/lib/db/beacon.js.map +1 -1
  89. package/lib/db/buckets.d.ts +12 -6
  90. package/lib/db/buckets.d.ts.map +1 -1
  91. package/lib/db/buckets.js +6 -1
  92. package/lib/db/buckets.js.map +1 -1
  93. package/lib/db/interface.d.ts +2 -7
  94. package/lib/db/interface.d.ts.map +1 -1
  95. package/lib/db/repositories/index.d.ts +0 -3
  96. package/lib/db/repositories/index.d.ts.map +1 -1
  97. package/lib/db/repositories/index.js +0 -3
  98. package/lib/db/repositories/index.js.map +1 -1
  99. package/lib/execution/engine/http.d.ts +1 -1
  100. package/lib/execution/engine/http.d.ts.map +1 -1
  101. package/lib/execution/engine/http.js +2 -3
  102. package/lib/execution/engine/http.js.map +1 -1
  103. package/lib/execution/engine/index.d.ts.map +1 -1
  104. package/lib/execution/engine/index.js +1 -1
  105. package/lib/execution/engine/index.js.map +1 -1
  106. package/lib/execution/engine/interface.d.ts +1 -1
  107. package/lib/execution/engine/interface.d.ts.map +1 -1
  108. package/lib/execution/engine/interface.js.map +1 -1
  109. package/lib/{eth1/provider → execution/engine}/jsonRpcHttpClient.d.ts +1 -1
  110. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -0
  111. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -0
  112. package/lib/execution/engine/jwt.d.ts.map +1 -0
  113. package/lib/execution/engine/jwt.js.map +1 -0
  114. package/lib/execution/engine/mock.d.ts.map +1 -1
  115. package/lib/execution/engine/mock.js +1 -1
  116. package/lib/execution/engine/mock.js.map +1 -1
  117. package/lib/execution/engine/payloadIdCache.d.ts +1 -1
  118. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  119. package/lib/execution/engine/types.d.ts +1 -1
  120. package/lib/execution/engine/types.d.ts.map +1 -1
  121. package/lib/execution/engine/types.js +1 -1
  122. package/lib/execution/engine/types.js.map +1 -1
  123. package/lib/execution/engine/utils.d.ts +64 -2
  124. package/lib/execution/engine/utils.d.ts.map +1 -1
  125. package/lib/execution/engine/utils.js +91 -2
  126. package/lib/execution/engine/utils.js.map +1 -1
  127. package/lib/index.d.ts +1 -2
  128. package/lib/index.d.ts.map +1 -1
  129. package/lib/index.js +1 -2
  130. package/lib/index.js.map +1 -1
  131. package/lib/metrics/metrics/lodestar.d.ts +0 -35
  132. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  133. package/lib/metrics/metrics/lodestar.js +0 -90
  134. package/lib/metrics/metrics/lodestar.js.map +1 -1
  135. package/lib/node/nodejs.d.ts.map +1 -1
  136. package/lib/node/nodejs.js +10 -9
  137. package/lib/node/nodejs.js.map +1 -1
  138. package/lib/node/options.d.ts +0 -2
  139. package/lib/node/options.d.ts.map +1 -1
  140. package/lib/node/options.js +0 -2
  141. package/lib/node/options.js.map +1 -1
  142. package/lib/node/utils/interop/deposits.d.ts +2 -1
  143. package/lib/node/utils/interop/deposits.d.ts.map +1 -1
  144. package/lib/node/utils/interop/deposits.js.map +1 -1
  145. package/lib/node/utils/interop/state.d.ts +1 -1
  146. package/lib/node/utils/interop/state.d.ts.map +1 -1
  147. package/lib/node/utils/state.d.ts +1 -7
  148. package/lib/node/utils/state.d.ts.map +1 -1
  149. package/lib/node/utils/state.js +1 -14
  150. package/lib/node/utils/state.js.map +1 -1
  151. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  152. package/lib/sync/backfill/backfill.js +2 -4
  153. package/lib/sync/backfill/backfill.js.map +1 -1
  154. package/lib/sync/backfill/verify.d.ts +1 -1
  155. package/lib/sync/backfill/verify.d.ts.map +1 -1
  156. package/lib/sync/backfill/verify.js +2 -2
  157. package/lib/sync/backfill/verify.js.map +1 -1
  158. package/package.json +14 -20
  159. package/src/api/impl/beacon/blocks/utils.ts +1 -1
  160. package/src/chain/blocks/verifyBlock.ts +1 -0
  161. package/src/chain/blocks/verifyBlocksSignatures.ts +3 -1
  162. package/src/chain/chain.ts +7 -19
  163. package/src/chain/initState.ts +1 -97
  164. package/src/chain/interface.ts +0 -2
  165. package/src/chain/opPools/aggregatedAttestationPool.ts +7 -7
  166. package/src/chain/opPools/opPool.ts +8 -8
  167. package/src/chain/prepareNextSlot.ts +1 -28
  168. package/src/chain/produceBlock/produceBlockBody.ts +8 -12
  169. package/src/chain/rewards/attestationsRewards.ts +13 -4
  170. package/src/chain/rewards/blockRewards.ts +6 -3
  171. package/src/chain/rewards/syncCommitteeRewards.ts +3 -1
  172. package/src/chain/stateCache/persistentCheckpointsCache.ts +15 -2
  173. package/src/chain/validation/attesterSlashing.ts +1 -1
  174. package/src/chain/validation/block.ts +1 -1
  175. package/src/chain/validation/blsToExecutionChange.ts +1 -1
  176. package/src/chain/validation/proposerSlashing.ts +1 -1
  177. package/src/chain/validation/signatureSets/aggregateAndProof.ts +1 -1
  178. package/src/chain/validation/signatureSets/contributionAndProof.ts +3 -1
  179. package/src/chain/validation/signatureSets/syncCommittee.ts +3 -1
  180. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +3 -1
  181. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -1
  182. package/src/chain/validation/syncCommittee.ts +1 -1
  183. package/src/chain/validation/syncCommitteeContributionAndProof.ts +8 -3
  184. package/src/chain/validation/voluntaryExit.ts +1 -1
  185. package/src/db/beacon.ts +38 -16
  186. package/src/db/buckets.ts +12 -7
  187. package/src/db/interface.ts +2 -13
  188. package/src/db/repositories/index.ts +0 -3
  189. package/src/execution/engine/http.ts +8 -9
  190. package/src/execution/engine/index.ts +1 -1
  191. package/src/execution/engine/interface.ts +1 -1
  192. package/src/{eth1/provider → execution/engine}/jsonRpcHttpClient.ts +1 -1
  193. package/src/execution/engine/mock.ts +1 -2
  194. package/src/execution/engine/payloadIdCache.ts +1 -1
  195. package/src/execution/engine/types.ts +9 -9
  196. package/src/execution/engine/utils.ts +111 -5
  197. package/src/index.ts +1 -2
  198. package/src/metrics/metrics/lodestar.ts +0 -92
  199. package/src/node/nodejs.ts +11 -9
  200. package/src/node/options.ts +0 -3
  201. package/src/node/utils/interop/deposits.ts +3 -1
  202. package/src/node/utils/interop/state.ts +1 -1
  203. package/src/node/utils/state.ts +3 -18
  204. package/src/sync/backfill/backfill.ts +8 -3
  205. package/src/sync/backfill/verify.ts +3 -1
  206. package/lib/chain/genesis/genesis.d.ts +0 -51
  207. package/lib/chain/genesis/genesis.d.ts.map +0 -1
  208. package/lib/chain/genesis/genesis.js +0 -123
  209. package/lib/chain/genesis/genesis.js.map +0 -1
  210. package/lib/chain/genesis/interface.d.ts +0 -13
  211. package/lib/chain/genesis/interface.d.ts.map +0 -1
  212. package/lib/chain/genesis/interface.js +0 -2
  213. package/lib/chain/genesis/interface.js.map +0 -1
  214. package/lib/db/repositories/depositDataRoot.d.ts +0 -22
  215. package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
  216. package/lib/db/repositories/depositDataRoot.js +0 -62
  217. package/lib/db/repositories/depositDataRoot.js.map +0 -1
  218. package/lib/db/repositories/depositEvent.d.ts +0 -13
  219. package/lib/db/repositories/depositEvent.d.ts.map +0 -1
  220. package/lib/db/repositories/depositEvent.js +0 -27
  221. package/lib/db/repositories/depositEvent.js.map +0 -1
  222. package/lib/db/repositories/eth1Data.d.ts +0 -13
  223. package/lib/db/repositories/eth1Data.d.ts.map +0 -1
  224. package/lib/db/repositories/eth1Data.js +0 -26
  225. package/lib/db/repositories/eth1Data.js.map +0 -1
  226. package/lib/db/single/index.d.ts +0 -3
  227. package/lib/db/single/index.d.ts.map +0 -1
  228. package/lib/db/single/index.js +0 -3
  229. package/lib/db/single/index.js.map +0 -1
  230. package/lib/db/single/preGenesisState.d.ts +0 -16
  231. package/lib/db/single/preGenesisState.d.ts.map +0 -1
  232. package/lib/db/single/preGenesisState.js +0 -29
  233. package/lib/db/single/preGenesisState.js.map +0 -1
  234. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +0 -14
  235. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
  236. package/lib/db/single/preGenesisStateLastProcessedBlock.js +0 -27
  237. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +0 -1
  238. package/lib/eth1/errors.d.ts +0 -66
  239. package/lib/eth1/errors.d.ts.map +0 -1
  240. package/lib/eth1/errors.js +0 -27
  241. package/lib/eth1/errors.js.map +0 -1
  242. package/lib/eth1/eth1DataCache.d.ts +0 -19
  243. package/lib/eth1/eth1DataCache.d.ts.map +0 -1
  244. package/lib/eth1/eth1DataCache.js +0 -19
  245. package/lib/eth1/eth1DataCache.js.map +0 -1
  246. package/lib/eth1/eth1DepositDataTracker.d.ts +0 -80
  247. package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
  248. package/lib/eth1/eth1DepositDataTracker.js +0 -317
  249. package/lib/eth1/eth1DepositDataTracker.js.map +0 -1
  250. package/lib/eth1/eth1DepositsCache.d.ts +0 -42
  251. package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
  252. package/lib/eth1/eth1DepositsCache.js +0 -119
  253. package/lib/eth1/eth1DepositsCache.js.map +0 -1
  254. package/lib/eth1/index.d.ts +0 -31
  255. package/lib/eth1/index.d.ts.map +0 -1
  256. package/lib/eth1/index.js +0 -71
  257. package/lib/eth1/index.js.map +0 -1
  258. package/lib/eth1/interface.d.ts +0 -74
  259. package/lib/eth1/interface.d.ts.map +0 -1
  260. package/lib/eth1/interface.js +0 -8
  261. package/lib/eth1/interface.js.map +0 -1
  262. package/lib/eth1/options.d.ts +0 -22
  263. package/lib/eth1/options.d.ts.map +0 -1
  264. package/lib/eth1/options.js +0 -8
  265. package/lib/eth1/options.js.map +0 -1
  266. package/lib/eth1/provider/eth1Provider.d.ts +0 -39
  267. package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
  268. package/lib/eth1/provider/eth1Provider.js +0 -147
  269. package/lib/eth1/provider/eth1Provider.js.map +0 -1
  270. package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
  271. package/lib/eth1/provider/jsonRpcHttpClient.js.map +0 -1
  272. package/lib/eth1/provider/jwt.d.ts.map +0 -1
  273. package/lib/eth1/provider/jwt.js.map +0 -1
  274. package/lib/eth1/provider/utils.d.ts +0 -65
  275. package/lib/eth1/provider/utils.d.ts.map +0 -1
  276. package/lib/eth1/provider/utils.js +0 -120
  277. package/lib/eth1/provider/utils.js.map +0 -1
  278. package/lib/eth1/stream.d.ts +0 -15
  279. package/lib/eth1/stream.d.ts.map +0 -1
  280. package/lib/eth1/stream.js +0 -54
  281. package/lib/eth1/stream.js.map +0 -1
  282. package/lib/eth1/utils/depositContract.d.ts +0 -14
  283. package/lib/eth1/utils/depositContract.d.ts.map +0 -1
  284. package/lib/eth1/utils/depositContract.js +0 -33
  285. package/lib/eth1/utils/depositContract.js.map +0 -1
  286. package/lib/eth1/utils/deposits.d.ts +0 -8
  287. package/lib/eth1/utils/deposits.d.ts.map +0 -1
  288. package/lib/eth1/utils/deposits.js +0 -47
  289. package/lib/eth1/utils/deposits.js.map +0 -1
  290. package/lib/eth1/utils/eth1Data.d.ts +0 -22
  291. package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
  292. package/lib/eth1/utils/eth1Data.js +0 -77
  293. package/lib/eth1/utils/eth1Data.js.map +0 -1
  294. package/lib/eth1/utils/eth1DepositEvent.d.ts +0 -7
  295. package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
  296. package/lib/eth1/utils/eth1DepositEvent.js +0 -13
  297. package/lib/eth1/utils/eth1DepositEvent.js.map +0 -1
  298. package/lib/eth1/utils/eth1Vote.d.ts +0 -17
  299. package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
  300. package/lib/eth1/utils/eth1Vote.js +0 -111
  301. package/lib/eth1/utils/eth1Vote.js.map +0 -1
  302. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts +0 -9
  303. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
  304. package/lib/eth1/utils/groupDepositEventsByBlock.js +0 -17
  305. package/lib/eth1/utils/groupDepositEventsByBlock.js.map +0 -1
  306. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts +0 -10
  307. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
  308. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js +0 -14
  309. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js.map +0 -1
  310. package/src/chain/genesis/genesis.ts +0 -190
  311. package/src/chain/genesis/interface.ts +0 -14
  312. package/src/db/repositories/depositDataRoot.ts +0 -80
  313. package/src/db/repositories/depositEvent.ts +0 -32
  314. package/src/db/repositories/eth1Data.ts +0 -33
  315. package/src/db/single/index.ts +0 -2
  316. package/src/db/single/preGenesisState.ts +0 -37
  317. package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
  318. package/src/eth1/errors.ts +0 -40
  319. package/src/eth1/eth1DataCache.ts +0 -26
  320. package/src/eth1/eth1DepositDataTracker.ts +0 -410
  321. package/src/eth1/eth1DepositsCache.ts +0 -141
  322. package/src/eth1/index.ts +0 -94
  323. package/src/eth1/interface.ts +0 -87
  324. package/src/eth1/options.ts +0 -28
  325. package/src/eth1/provider/eth1Provider.ts +0 -229
  326. package/src/eth1/provider/utils.ts +0 -136
  327. package/src/eth1/stream.ts +0 -75
  328. package/src/eth1/utils/depositContract.ts +0 -37
  329. package/src/eth1/utils/deposits.ts +0 -70
  330. package/src/eth1/utils/eth1Data.ts +0 -100
  331. package/src/eth1/utils/eth1DepositEvent.ts +0 -12
  332. package/src/eth1/utils/eth1Vote.ts +0 -142
  333. package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
  334. package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
  335. /package/lib/{eth1/provider → execution/engine}/jsonRpcHttpClient.js +0 -0
  336. /package/lib/{eth1/provider → execution/engine}/jwt.d.ts +0 -0
  337. /package/lib/{eth1/provider → execution/engine}/jwt.js +0 -0
  338. /package/src/{eth1/provider → execution/engine}/jwt.ts +0 -0
@@ -2,7 +2,6 @@ import {ApiOptions, defaultApiOptions} from "../api/options.js";
2
2
  import {ArchiveMode, DEFAULT_ARCHIVE_MODE, IChainOptions, defaultChainOptions} from "../chain/options.js";
3
3
  import {ValidatorMonitorOpts, defaultValidatorMonitorOpts} from "../chain/validatorMonitor.js";
4
4
  import {DatabaseOptions, defaultDbOptions} from "../db/options.js";
5
- import {Eth1Options, defaultEth1Options} from "../eth1/options.js";
6
5
  import {
7
6
  ExecutionBuilderOpts,
8
7
  ExecutionEngineOpts,
@@ -26,7 +25,6 @@ export interface IBeaconNodeOptions {
26
25
  api: ApiOptions;
27
26
  chain: IChainOptions;
28
27
  db: DatabaseOptions;
29
- eth1: Eth1Options;
30
28
  executionEngine: ExecutionEngineOpts;
31
29
  executionBuilder: ExecutionBuilderOpts;
32
30
  metrics: MetricsOptions;
@@ -40,7 +38,6 @@ export const defaultOptions: IBeaconNodeOptions = {
40
38
  api: defaultApiOptions,
41
39
  chain: defaultChainOptions,
42
40
  db: defaultDbOptions,
43
- eth1: defaultEth1Options,
44
41
  executionEngine: defaultExecutionEngineOpts,
45
42
  executionBuilder: defaultExecutionBuilderOpts,
46
43
  metrics: defaultMetricsOptions,
@@ -1,5 +1,6 @@
1
1
  import {digest} from "@chainsafe/as-sha256";
2
2
  import {Tree, toGindex} from "@chainsafe/persistent-merkle-tree";
3
+ import {ByteVectorType, CompositeViewDU, ListCompositeType} from "@chainsafe/ssz";
3
4
  import {ChainConfig} from "@lodestar/config";
4
5
  import {
5
6
  BLS_WITHDRAWAL_PREFIX,
@@ -9,7 +10,8 @@ import {
9
10
  } from "@lodestar/params";
10
11
  import {ZERO_HASH, computeDomain, computeSigningRoot, interopSecretKeys} from "@lodestar/state-transition";
11
12
  import {phase0, ssz} from "@lodestar/types";
12
- import {DepositTree} from "../../../db/repositories/depositDataRoot.js";
13
+
14
+ export type DepositTree = CompositeViewDU<ListCompositeType<ByteVectorType>>;
13
15
 
14
16
  /**
15
17
  * Compute and return deposit data from other validators.
@@ -6,7 +6,7 @@ import {
6
6
  initializeBeaconStateFromEth1,
7
7
  } from "@lodestar/state-transition";
8
8
  import {Bytes32, TimeSeconds, phase0, ssz, sszTypesFor} from "@lodestar/types";
9
- import {DepositTree} from "../../../db/repositories/depositDataRoot.js";
9
+ import {DepositTree} from "./deposits.js";
10
10
 
11
11
  export const INTEROP_BLOCK_HASH = Buffer.alloc(32, "B");
12
12
  export const INTEROP_TIMESTAMP = Math.pow(2, 40);
@@ -1,7 +1,6 @@
1
1
  import {ChainForkConfig} from "@lodestar/config";
2
2
  import {BeaconStateAllForks} from "@lodestar/state-transition";
3
- import {phase0, ssz} from "@lodestar/types";
4
- import {IBeaconDb} from "../../db/index.js";
3
+ import {ssz} from "@lodestar/types";
5
4
  import {interopDeposits} from "./interop/deposits.js";
6
5
  import {InteropStateOpts, getInteropState} from "./interop/state.js";
7
6
 
@@ -12,26 +11,12 @@ export function initDevState(
12
11
  config: ChainForkConfig,
13
12
  validatorCount: number,
14
13
  interopStateOpts: InteropStateOpts
15
- ): {deposits: phase0.Deposit[]; state: BeaconStateAllForks} {
14
+ ): BeaconStateAllForks {
16
15
  const deposits = interopDeposits(
17
16
  config,
18
17
  ssz.phase0.DepositDataRootList.defaultViewDU(),
19
18
  validatorCount,
20
19
  interopStateOpts
21
20
  );
22
- const state = getInteropState(config, interopStateOpts, deposits);
23
- return {deposits, state};
24
- }
25
-
26
- export async function writeDeposits(db: IBeaconDb, deposits: phase0.Deposit[]): Promise<void> {
27
- for (let i = 0; i < deposits.length; i++) {
28
- await Promise.all([
29
- db.depositEvent.put(i, {
30
- blockNumber: i,
31
- index: i,
32
- depositData: deposits[i].data,
33
- }),
34
- db.depositDataRoot.put(i, ssz.phase0.DepositData.hashTreeRoot(deposits[i].data)),
35
- ]);
36
- }
21
+ return getInteropState(config, interopStateOpts, deposits);
37
22
  }
@@ -750,9 +750,13 @@ export class BackfillSync extends (EventEmitter as {new (): BackfillSyncEmitter}
750
750
 
751
751
  // GENESIS_SLOT doesn't has valid signature
752
752
  if (anchorBlock.message.slot === GENESIS_SLOT) return;
753
- await verifyBlockProposerSignature(this.chain.index2pubkey, this.chain.bls, this.chain.getHeadState(), [
754
- anchorBlock,
755
- ]);
753
+ await verifyBlockProposerSignature(
754
+ this.chain.config,
755
+ this.chain.index2pubkey,
756
+ this.chain.bls,
757
+ this.chain.getHeadState(),
758
+ [anchorBlock]
759
+ );
756
760
 
757
761
  // We can write to the disk if this is ahead of prevFinalizedCheckpointBlock otherwise
758
762
  // we will need to go make checks on the top of sync loop before writing as it might
@@ -818,6 +822,7 @@ export class BackfillSync extends (EventEmitter as {new (): BackfillSyncEmitter}
818
822
  // If any of the block's proposer signature fail, we can't trust this peer at all
819
823
  if (verifiedBlocks.length > 0) {
820
824
  await verifyBlockProposerSignature(
825
+ this.chain.config,
821
826
  this.chain.index2pubkey,
822
827
  this.chain.bls,
823
828
  this.chain.getHeadState(),
@@ -46,6 +46,7 @@ export function verifyBlockSequence(
46
46
  }
47
47
 
48
48
  export async function verifyBlockProposerSignature(
49
+ config: BeaconConfig,
49
50
  index2pubkey: Index2PubkeyCache,
50
51
  bls: IBlsVerifier,
51
52
  state: CachedBeaconStateAllForks,
@@ -54,7 +55,8 @@ export async function verifyBlockProposerSignature(
54
55
  if (blocks.length === 1 && blocks[0].message.slot === GENESIS_SLOT) return;
55
56
  const signatures = blocks.reduce((sigs: ISignatureSet[], block) => {
56
57
  // genesis block doesn't have valid signature
57
- if (block.message.slot !== GENESIS_SLOT) sigs.push(getBlockProposerSignatureSet(index2pubkey, state, block));
58
+ if (block.message.slot !== GENESIS_SLOT)
59
+ sigs.push(getBlockProposerSignatureSet(config, index2pubkey, state, block));
58
60
  return sigs;
59
61
  }, []);
60
62
 
@@ -1,51 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { BeaconStateAllForks, CachedBeaconStateAllForks } from "@lodestar/state-transition";
3
- import { Logger } from "@lodestar/utils";
4
- import { DepositTree } from "../../db/repositories/depositDataRoot.js";
5
- import { IEth1Provider } from "../../eth1/index.js";
6
- import { GenesisResult, IGenesisBuilder } from "./interface.js";
7
- export type GenesisBuilderKwargs = {
8
- config: ChainForkConfig;
9
- eth1Provider: IEth1Provider;
10
- logger: Logger;
11
- /** Use to restore pending progress */
12
- pendingStatus?: {
13
- state: BeaconStateAllForks;
14
- depositTree: DepositTree;
15
- lastProcessedBlockNumber: number;
16
- };
17
- signal?: AbortSignal;
18
- maxBlocksPerPoll?: number;
19
- };
20
- export declare class GenesisBuilder implements IGenesisBuilder {
21
- readonly state: CachedBeaconStateAllForks;
22
- readonly depositTree: DepositTree;
23
- /** Is null if no block has been processed yet */
24
- lastProcessedBlockNumber: number | null;
25
- private readonly config;
26
- private readonly eth1Provider;
27
- private readonly logger;
28
- private readonly signal?;
29
- private readonly eth1Params;
30
- private readonly depositCache;
31
- private readonly fromBlock;
32
- private readonly logEvery;
33
- private lastLog;
34
- /** Current count of active validators in the state */
35
- private activatedValidatorCount;
36
- constructor({ config, eth1Provider, logger, signal, pendingStatus, maxBlocksPerPoll }: GenesisBuilderKwargs);
37
- /**
38
- * Get eth1 deposit events and blocks and apply to this.state until we found genesis.
39
- */
40
- waitForGenesis(): Promise<GenesisResult>;
41
- /**
42
- * First phase of waiting for genesis.
43
- * Stream deposits events in batches as big as possible without querying block data
44
- * @returns Block number at which there are enough active validators is state for genesis
45
- */
46
- private waitForGenesisValidators;
47
- private applyDeposits;
48
- /** Throttle genesis generation status log to prevent spamming */
49
- private throttledLog;
50
- }
51
- //# sourceMappingURL=genesis.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"genesis.d.ts","sourceRoot":"","sources":["../../../src/chain/genesis/genesis.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EAS1B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,sCAAsC;IACtC,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,WAAW,CAAC;QACzB,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;IAEF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAe,YAAW,eAAe;IAEpD,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,iDAAiD;IACjD,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,OAAO,CAAK;IACpB,sDAAsD;IACtD,OAAO,CAAC,uBAAuB,CAAS;gBAE5B,EAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAC,EAAE,oBAAoB;IAmCzG;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAsC9C;;;;OAIG;YACW,wBAAwB;IAoBtC,OAAO,CAAC,aAAa;IAuBrB,iEAAiE;IACjE,OAAO,CAAC,YAAY;CAMrB"}
@@ -1,123 +0,0 @@
1
- import { Tree, toGindex } from "@chainsafe/persistent-merkle-tree";
2
- import { GENESIS_EPOCH, GENESIS_SLOT } from "@lodestar/params";
3
- import { applyDeposits, applyEth1BlockHash, applyTimestamp, createCachedBeaconState, createEmptyEpochCacheImmutableData, getActiveValidatorIndices, getGenesisBeaconState, getTemporaryBlockHeader, } from "@lodestar/state-transition";
4
- import { ssz } from "@lodestar/types";
5
- import { getDepositsAndBlockStreamForGenesis, getDepositsStream } from "../../eth1/stream.js";
6
- export class GenesisBuilder {
7
- // Expose state to persist on error
8
- state;
9
- depositTree;
10
- /** Is null if no block has been processed yet */
11
- lastProcessedBlockNumber = null;
12
- config;
13
- eth1Provider;
14
- logger;
15
- signal;
16
- eth1Params;
17
- depositCache = new Set();
18
- fromBlock;
19
- logEvery = 30 * 1000;
20
- lastLog = 0;
21
- /** Current count of active validators in the state */
22
- activatedValidatorCount;
23
- constructor({ config, eth1Provider, logger, signal, pendingStatus, maxBlocksPerPoll }) {
24
- // at genesis builder, there is no genesis validator so we don't have a real BeaconConfig
25
- // but we need BeaconConfig to temporarily create CachedBeaconState, the cast here is safe since we don't use any getDomain here
26
- // the use of state as CachedBeaconState is just for convenient, GenesisResult returns TreeView anyway
27
- this.eth1Provider = eth1Provider;
28
- this.logger = logger;
29
- this.signal = signal;
30
- this.eth1Params = {
31
- ...config,
32
- maxBlocksPerPoll: maxBlocksPerPoll ?? 10000,
33
- };
34
- let stateView;
35
- if (pendingStatus) {
36
- this.logger.info("Restoring pending genesis state", { block: pendingStatus.lastProcessedBlockNumber });
37
- stateView = pendingStatus.state;
38
- this.depositTree = pendingStatus.depositTree;
39
- this.fromBlock = Math.max(pendingStatus.lastProcessedBlockNumber + 1, this.eth1Provider.deployBlock);
40
- }
41
- else {
42
- stateView = getGenesisBeaconState(config, ssz.phase0.Eth1Data.defaultValue(), getTemporaryBlockHeader(config, config.getForkTypes(GENESIS_SLOT).BeaconBlock.defaultValue()));
43
- this.depositTree = ssz.phase0.DepositDataRootList.defaultViewDU();
44
- this.fromBlock = this.eth1Provider.deployBlock;
45
- }
46
- // TODO - PENDING: Ensure EpochCacheImmutableData is created only once
47
- this.state = createCachedBeaconState(stateView, createEmptyEpochCacheImmutableData(config, stateView));
48
- this.config = this.state.config;
49
- this.activatedValidatorCount = getActiveValidatorIndices(stateView, GENESIS_EPOCH).length;
50
- }
51
- /**
52
- * Get eth1 deposit events and blocks and apply to this.state until we found genesis.
53
- */
54
- async waitForGenesis() {
55
- await this.eth1Provider.validateContract();
56
- // Load data from data from this.db.depositData, this.db.depositDataRoot
57
- // And start from a more recent fromBlock
58
- const blockNumberValidatorGenesis = await this.waitForGenesisValidators();
59
- const depositsAndBlocksStream = getDepositsAndBlockStreamForGenesis(blockNumberValidatorGenesis, this.eth1Provider, this.eth1Params, this.signal);
60
- for await (const [depositEvents, block] of depositsAndBlocksStream) {
61
- this.applyDeposits(depositEvents);
62
- applyTimestamp(this.config, this.state, block.timestamp);
63
- applyEth1BlockHash(this.state, block.blockHash);
64
- this.lastProcessedBlockNumber = block.blockNumber;
65
- if (this.state.genesisTime >= this.config.MIN_GENESIS_TIME &&
66
- this.activatedValidatorCount >= this.config.MIN_GENESIS_ACTIVE_VALIDATOR_COUNT) {
67
- this.logger.info("Found genesis state", { blockNumber: block.blockNumber });
68
- return {
69
- state: this.state,
70
- depositTree: this.depositTree,
71
- block,
72
- };
73
- }
74
- this.throttledLog(`Waiting for min genesis time ${block.timestamp} / ${this.config.MIN_GENESIS_TIME}`);
75
- }
76
- throw Error("depositsStream stopped without a valid genesis state");
77
- }
78
- /**
79
- * First phase of waiting for genesis.
80
- * Stream deposits events in batches as big as possible without querying block data
81
- * @returns Block number at which there are enough active validators is state for genesis
82
- */
83
- async waitForGenesisValidators() {
84
- const depositsStream = getDepositsStream(this.fromBlock, this.eth1Provider, this.eth1Params, this.signal);
85
- for await (const { depositEvents, blockNumber } of depositsStream) {
86
- this.applyDeposits(depositEvents);
87
- this.lastProcessedBlockNumber = blockNumber;
88
- if (this.activatedValidatorCount >= this.config.MIN_GENESIS_ACTIVE_VALIDATOR_COUNT) {
89
- this.logger.info("Found enough genesis validators", { blockNumber });
90
- return blockNumber;
91
- }
92
- this.throttledLog(`Found ${this.state.validators.length} / ${this.config.MIN_GENESIS_ACTIVE_VALIDATOR_COUNT} validators to genesis`);
93
- }
94
- throw Error("depositsStream stopped without a valid genesis state");
95
- }
96
- applyDeposits(depositEvents) {
97
- const newDeposits = depositEvents
98
- .filter((depositEvent) => !this.depositCache.has(depositEvent.index))
99
- .map((depositEvent) => {
100
- this.depositCache.add(depositEvent.index);
101
- this.depositTree.push(ssz.phase0.DepositData.hashTreeRoot(depositEvent.depositData));
102
- const gindex = toGindex(this.depositTree.type.depth, BigInt(depositEvent.index));
103
- // Apply changes from the push above
104
- this.depositTree.commit();
105
- const depositTreeNode = this.depositTree.node;
106
- return {
107
- proof: new Tree(depositTreeNode).getSingleProof(gindex),
108
- data: depositEvent.depositData,
109
- };
110
- });
111
- const { activatedValidatorCount } = applyDeposits(this.config, this.state, newDeposits, this.depositTree);
112
- this.activatedValidatorCount += activatedValidatorCount;
113
- // TODO: If necessary persist deposits here to this.db.depositData, this.db.depositDataRoot
114
- }
115
- /** Throttle genesis generation status log to prevent spamming */
116
- throttledLog(message) {
117
- if (Date.now() - this.lastLog > this.logEvery) {
118
- this.lastLog = Date.now();
119
- this.logger.info(message);
120
- }
121
- }
122
- }
123
- //# sourceMappingURL=genesis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"genesis.js","sourceRoot":"","sources":["../../../src/chain/genesis/genesis.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { CompositeViewDU, VectorCompositeType } from "@chainsafe/ssz";
2
- import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
3
- import { ssz } from "@lodestar/types";
4
- import { Eth1Block } from "../../eth1/interface.js";
5
- export type GenesisResult = {
6
- state: CachedBeaconStateAllForks;
7
- depositTree: CompositeViewDU<VectorCompositeType<typeof ssz.Root>>;
8
- block: Eth1Block;
9
- };
10
- export interface IGenesisBuilder {
11
- waitForGenesis: () => Promise<GenesisResult>;
12
- }
13
- //# sourceMappingURL=interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/chain/genesis/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,yBAAyB,CAAC;IACjC,WAAW,EAAE,eAAe,CAAC,mBAAmB,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9C"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/chain/genesis/interface.ts"],"names":[],"mappings":""}
@@ -1,22 +0,0 @@
1
- import { ByteVectorType, CompositeViewDU, ListCompositeType } from "@chainsafe/ssz";
2
- import { ChainForkConfig } from "@lodestar/config";
3
- import { Db, KeyValue, Repository } from "@lodestar/db";
4
- import { Root } from "@lodestar/types";
5
- export type DepositTree = CompositeViewDU<ListCompositeType<ByteVectorType>>;
6
- export declare class DepositDataRootRepository extends Repository<number, Root> {
7
- private depositRootTree?;
8
- constructor(config: ChainForkConfig, db: Db);
9
- decodeKey(data: Buffer): number;
10
- getId(_value: Root): number;
11
- put(index: number, value: Root): Promise<void>;
12
- batchPut(items: KeyValue<number, Root>[]): Promise<void>;
13
- putList(roots: Root[]): Promise<void>;
14
- batchPutValues(values: {
15
- index: number;
16
- root: Root;
17
- }[]): Promise<void>;
18
- getDepositRootTree(): Promise<DepositTree>;
19
- getDepositRootTreeAtIndex(depositIndex: number): Promise<DepositTree>;
20
- private depositRootTreeSet;
21
- }
22
- //# sourceMappingURL=depositDataRoot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depositDataRoot.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/depositDataRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAK1C,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;AAE7E,qBAAa,yBAA0B,SAAQ,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;IACrE,OAAO,CAAC,eAAe,CAAC,CAAc;gBAE1B,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IAK3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK/B,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM;IAIrB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,cAAc,CAAC,MAAM,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ1C,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YAK7D,kBAAkB;CAcjC"}
@@ -1,62 +0,0 @@
1
- import { Repository } from "@lodestar/db";
2
- import { ssz } from "@lodestar/types";
3
- import { bytesToInt } from "@lodestar/utils";
4
- import { Bucket, getBucketNameByValue } from "../buckets.js";
5
- export class DepositDataRootRepository extends Repository {
6
- depositRootTree;
7
- constructor(config, db) {
8
- const bucket = Bucket.index_depositDataRoot;
9
- super(config, db, bucket, ssz.Root, getBucketNameByValue(bucket));
10
- }
11
- decodeKey(data) {
12
- return bytesToInt(super.decodeKey(data), "be");
13
- }
14
- // depositDataRoots stored by depositData index
15
- getId(_value) {
16
- throw new Error("Unable to create depositIndex from root");
17
- }
18
- async put(index, value) {
19
- await super.put(index, value);
20
- await this.depositRootTreeSet(index, value);
21
- }
22
- async batchPut(items) {
23
- await super.batchPut(items);
24
- for (const { key, value } of items) {
25
- await this.depositRootTreeSet(key, value);
26
- }
27
- }
28
- async putList(roots) {
29
- await this.batchPut(roots.map((root, index) => ({ key: index, value: root })));
30
- }
31
- async batchPutValues(values) {
32
- await this.batchPut(values.map(({ index, root }) => ({
33
- key: index,
34
- value: root,
35
- })));
36
- }
37
- async getDepositRootTree() {
38
- if (!this.depositRootTree) {
39
- const values = await this.values();
40
- this.depositRootTree = ssz.phase0.DepositDataRootList.toViewDU(values);
41
- }
42
- return this.depositRootTree;
43
- }
44
- async getDepositRootTreeAtIndex(depositIndex) {
45
- const depositRootTree = await this.getDepositRootTree();
46
- return depositRootTree.sliceTo(depositIndex);
47
- }
48
- async depositRootTreeSet(index, value) {
49
- const depositRootTree = await this.getDepositRootTree();
50
- // TODO: Review and fix properly
51
- if (index > depositRootTree.length) {
52
- throw Error(`Error setting depositRootTree index ${index} > length ${depositRootTree.length}`);
53
- }
54
- if (index === depositRootTree.length) {
55
- depositRootTree.push(value);
56
- }
57
- else {
58
- depositRootTree.set(index, value);
59
- }
60
- }
61
- }
62
- //# sourceMappingURL=depositDataRoot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depositDataRoot.js","sourceRoot":"","sources":["../../../src/db/repositories/depositDataRoot.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { Db, Repository } from "@lodestar/db";
3
- import { phase0 } from "@lodestar/types";
4
- /**
5
- * DepositData indexed by deposit index
6
- * Removed when included on chain or old
7
- */
8
- export declare class DepositEventRepository extends Repository<number, phase0.DepositEvent> {
9
- constructor(config: ChainForkConfig, db: Db);
10
- deleteOld(depositCount: number): Promise<void>;
11
- batchPutValues(depositEvents: phase0.DepositEvent[]): Promise<void>;
12
- }
13
- //# sourceMappingURL=depositEvent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depositEvent.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/depositEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAG5C;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC;gBACrE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IAKrC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ1E"}
@@ -1,27 +0,0 @@
1
- import { Repository } from "@lodestar/db";
2
- import { ssz } from "@lodestar/types";
3
- import { Bucket, getBucketNameByValue } from "../buckets.js";
4
- /**
5
- * DepositData indexed by deposit index
6
- * Removed when included on chain or old
7
- */
8
- export class DepositEventRepository extends Repository {
9
- constructor(config, db) {
10
- const bucket = Bucket.phase0_depositEvent;
11
- super(config, db, bucket, ssz.phase0.DepositEvent, getBucketNameByValue(bucket));
12
- }
13
- async deleteOld(depositCount) {
14
- const firstDepositIndex = await this.firstKey();
15
- if (firstDepositIndex === null) {
16
- return;
17
- }
18
- await this.batchDelete(Array.from({ length: depositCount - firstDepositIndex }, (_, i) => i + firstDepositIndex));
19
- }
20
- async batchPutValues(depositEvents) {
21
- await this.batchPut(depositEvents.map((depositEvent) => ({
22
- key: depositEvent.index,
23
- value: depositEvent,
24
- })));
25
- }
26
- }
27
- //# sourceMappingURL=depositEvent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"depositEvent.js","sourceRoot":"","sources":["../../../src/db/repositories/depositEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,UAAuC;IACjF,YAAY,MAAuB,EAAE,EAAM;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC1C,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,aAAoC;QACvD,MAAM,IAAI,CAAC,QAAQ,CACjB,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACnC,GAAG,EAAE,YAAY,CAAC,KAAK;YACvB,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { Db, Repository } from "@lodestar/db";
3
- import { phase0 } from "@lodestar/types";
4
- export declare class Eth1DataRepository extends Repository<number, phase0.Eth1DataOrdered> {
5
- constructor(config: ChainForkConfig, db: Db);
6
- decodeKey(data: Buffer): number;
7
- getId(_value: phase0.Eth1Data): number;
8
- batchPutValues(eth1Datas: (phase0.Eth1DataOrdered & {
9
- timestamp: number;
10
- })[]): Promise<void>;
11
- deleteOld(timestamp: number): Promise<void>;
12
- }
13
- //# sourceMappingURL=eth1Data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eth1Data.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/eth1Data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAI5C,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;gBACpE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IAK3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM;IAIhC,cAAc,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,eAAe,GAAG;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1F,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlD"}
@@ -1,26 +0,0 @@
1
- import { Repository } from "@lodestar/db";
2
- import { ssz } from "@lodestar/types";
3
- import { bytesToInt } from "@lodestar/utils";
4
- import { Bucket, getBucketNameByValue } from "../buckets.js";
5
- export class Eth1DataRepository extends Repository {
6
- constructor(config, db) {
7
- const bucket = Bucket.phase0_eth1Data;
8
- super(config, db, bucket, ssz.phase0.Eth1DataOrdered, getBucketNameByValue(bucket));
9
- }
10
- decodeKey(data) {
11
- return bytesToInt(super.decodeKey(data), "be");
12
- }
13
- getId(_value) {
14
- throw new Error("Unable to create timestamp from block hash");
15
- }
16
- async batchPutValues(eth1Datas) {
17
- await this.batchPut(eth1Datas.map((eth1Data) => ({
18
- key: eth1Data.timestamp,
19
- value: eth1Data,
20
- })));
21
- }
22
- async deleteOld(timestamp) {
23
- await this.batchDelete(await this.keys({ lt: timestamp }));
24
- }
25
- }
26
- //# sourceMappingURL=eth1Data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eth1Data.js","sourceRoot":"","sources":["../../../src/db/repositories/eth1Data.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,UAAU,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,kBAAmB,SAAQ,UAA0C;IAChF,YAAY,MAAuB,EAAE,EAAM;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;QACtC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAA0B,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,MAAuB;QAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAA2D;QAC9E,MAAM,IAAI,CAAC,QAAQ,CACjB,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,GAAG,EAAE,QAAQ,CAAC,SAAS;YACvB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -1,3 +0,0 @@
1
- export { PreGenesisState } from "./preGenesisState.js";
2
- export { PreGenesisStateLastProcessedBlock } from "./preGenesisStateLastProcessedBlock.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/single/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,iCAAiC,EAAC,MAAM,wCAAwC,CAAC"}
@@ -1,3 +0,0 @@
1
- export { PreGenesisState } from "./preGenesisState.js";
2
- export { PreGenesisStateLastProcessedBlock } from "./preGenesisStateLastProcessedBlock.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/single/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,iCAAiC,EAAC,MAAM,wCAAwC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { Db } from "@lodestar/db";
3
- import { BeaconStateAllForks } from "@lodestar/state-transition";
4
- export declare class PreGenesisState {
5
- private readonly config;
6
- private readonly bucket;
7
- private readonly db;
8
- private readonly key;
9
- private readonly type;
10
- private readonly dbReqOpts;
11
- constructor(config: ChainForkConfig, db: Db);
12
- put(value: BeaconStateAllForks): Promise<void>;
13
- get(): Promise<BeaconStateAllForks | null>;
14
- delete(): Promise<void>;
15
- }
16
- //# sourceMappingURL=preGenesisState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preGenesisState.d.ts","sourceRoot":"","sources":["../../../src/db/single/preGenesisState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAY,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAC,mBAAmB,EAAC,MAAM,4BAA4B,CAAC;AAI/D,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;IASrC,GAAG,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,GAAG,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAK1C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -1,29 +0,0 @@
1
- import { GENESIS_SLOT } from "@lodestar/params";
2
- import { Bucket, getBucketNameByValue } from "../buckets.js";
3
- export class PreGenesisState {
4
- config;
5
- bucket;
6
- db;
7
- key;
8
- type;
9
- dbReqOpts;
10
- constructor(config, db) {
11
- this.config = config;
12
- this.db = db;
13
- this.bucket = Bucket.phase0_preGenesisState;
14
- this.key = new Uint8Array([this.bucket]);
15
- this.type = this.config.getForkTypes(GENESIS_SLOT).BeaconState;
16
- this.dbReqOpts = { bucketId: getBucketNameByValue(this.bucket) };
17
- }
18
- async put(value) {
19
- await this.db.put(this.key, value.serialize(), this.dbReqOpts);
20
- }
21
- async get() {
22
- const value = await this.db.get(this.key, this.dbReqOpts);
23
- return value ? this.type.deserializeToViewDU(value) : null;
24
- }
25
- async delete() {
26
- await this.db.delete(this.key, this.dbReqOpts);
27
- }
28
- }
29
- //# sourceMappingURL=preGenesisState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preGenesisState.js","sourceRoot":"","sources":["../../../src/db/single/preGenesisState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,eAAe;IACT,MAAM,CAAkB;IACxB,MAAM,CAAS;IACf,EAAE,CAAK;IACP,GAAG,CAAa;IAChB,IAAI,CAAsC;IAC1C,SAAS,CAAY;IAEtC,YAAY,MAAuB,EAAE,EAAM;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,EAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAA0B;QAClC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;CACF"}