@lodestar/state-transition 1.35.0-dev.e9dd48f165 → 1.35.0-dev.f45a2be721

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 (292) hide show
  1. package/README.md +1 -1
  2. package/lib/block/externalData.d.ts.map +1 -0
  3. package/lib/block/index.d.ts +2 -2
  4. package/lib/block/index.d.ts.map +1 -0
  5. package/lib/block/index.js +2 -2
  6. package/lib/block/index.js.map +1 -1
  7. package/lib/block/initiateValidatorExit.d.ts.map +1 -0
  8. package/lib/block/isValidIndexedAttestation.d.ts.map +1 -0
  9. package/lib/block/processAttestationPhase0.d.ts.map +1 -0
  10. package/lib/block/processAttestationPhase0.js +1 -2
  11. package/lib/block/processAttestationPhase0.js.map +1 -1
  12. package/lib/block/processAttestations.d.ts.map +1 -0
  13. package/lib/block/processAttestationsAltair.d.ts +1 -1
  14. package/lib/block/processAttestationsAltair.d.ts.map +1 -0
  15. package/lib/block/processAttestationsAltair.js +1 -1
  16. package/lib/block/processAttestationsAltair.js.map +1 -1
  17. package/lib/block/processAttesterSlashing.d.ts.map +1 -0
  18. package/lib/block/processAttesterSlashing.js.map +1 -1
  19. package/lib/block/processBlobKzgCommitments.d.ts.map +1 -0
  20. package/lib/block/processBlockHeader.d.ts.map +1 -0
  21. package/lib/block/processBlsToExecutionChange.d.ts.map +1 -0
  22. package/lib/block/processBlsToExecutionChange.js.map +1 -1
  23. package/lib/block/processConsolidationRequest.d.ts.map +1 -0
  24. package/lib/block/processConsolidationRequest.js.map +1 -1
  25. package/lib/block/processDeposit.d.ts +2 -2
  26. package/lib/block/processDeposit.d.ts.map +1 -0
  27. package/lib/block/processDeposit.js +1 -1
  28. package/lib/block/processDeposit.js.map +1 -1
  29. package/lib/block/processDepositRequest.d.ts.map +1 -0
  30. package/lib/block/processDepositRequest.js.map +1 -1
  31. package/lib/block/processEth1Data.d.ts.map +1 -0
  32. package/lib/block/processExecutionPayload.d.ts.map +1 -0
  33. package/lib/block/processExecutionPayload.js +3 -3
  34. package/lib/block/processExecutionPayload.js.map +1 -1
  35. package/lib/block/processOperations.d.ts.map +1 -0
  36. package/lib/block/processOperations.js.map +1 -1
  37. package/lib/block/processProposerSlashing.d.ts.map +1 -0
  38. package/lib/block/processRandao.d.ts.map +1 -0
  39. package/lib/block/processSyncCommittee.d.ts.map +1 -0
  40. package/lib/block/processSyncCommittee.js +1 -2
  41. package/lib/block/processSyncCommittee.js.map +1 -1
  42. package/lib/block/processVoluntaryExit.d.ts.map +1 -0
  43. package/lib/block/processWithdrawalRequest.d.ts.map +1 -0
  44. package/lib/block/processWithdrawalRequest.js.map +1 -1
  45. package/lib/block/processWithdrawals.d.ts.map +1 -0
  46. package/lib/block/processWithdrawals.js.map +1 -1
  47. package/lib/block/slashValidator.d.ts.map +1 -0
  48. package/lib/block/slashValidator.js.map +1 -1
  49. package/lib/block/types.d.ts.map +1 -0
  50. package/lib/cache/effectiveBalanceIncrements.d.ts.map +1 -0
  51. package/lib/cache/epochCache.d.ts.map +1 -0
  52. package/lib/cache/epochCache.js +130 -0
  53. package/lib/cache/epochCache.js.map +1 -1
  54. package/lib/cache/epochTransitionCache.d.ts.map +1 -0
  55. package/lib/cache/epochTransitionCache.js.map +1 -1
  56. package/lib/cache/pubkeyCache.d.ts.map +1 -0
  57. package/lib/cache/rewardCache.d.ts.map +1 -0
  58. package/lib/cache/stateCache.d.ts.map +1 -0
  59. package/lib/cache/syncCommitteeCache.d.ts.map +1 -0
  60. package/lib/cache/types.d.ts +2 -2
  61. package/lib/cache/types.d.ts.map +1 -0
  62. package/lib/constants/constants.d.ts.map +1 -0
  63. package/lib/constants/index.d.ts.map +1 -0
  64. package/lib/epoch/computeUnrealizedCheckpoints.d.ts.map +1 -0
  65. package/lib/epoch/getAttestationDeltas.d.ts.map +1 -0
  66. package/lib/epoch/getRewardsAndPenalties.d.ts.map +1 -0
  67. package/lib/epoch/index.d.ts.map +1 -0
  68. package/lib/epoch/index.js.map +1 -1
  69. package/lib/epoch/processEffectiveBalanceUpdates.d.ts.map +1 -0
  70. package/lib/epoch/processEth1DataReset.d.ts.map +1 -0
  71. package/lib/epoch/processHistoricalRootsUpdate.d.ts.map +1 -0
  72. package/lib/epoch/processHistoricalSummariesUpdate.d.ts.map +1 -0
  73. package/lib/epoch/processInactivityUpdates.d.ts.map +1 -0
  74. package/lib/epoch/processJustificationAndFinalization.d.ts.map +1 -0
  75. package/lib/epoch/processParticipationFlagUpdates.d.ts.map +1 -0
  76. package/lib/epoch/processParticipationRecordUpdates.d.ts.map +1 -0
  77. package/lib/epoch/processPendingAttestations.d.ts.map +1 -0
  78. package/lib/epoch/processPendingConsolidations.d.ts.map +1 -0
  79. package/lib/epoch/processPendingDeposits.d.ts.map +1 -0
  80. package/lib/epoch/processProposerLookahead.d.ts.map +1 -0
  81. package/lib/epoch/processRandaoMixesReset.d.ts.map +1 -0
  82. package/lib/epoch/processRegistryUpdates.d.ts.map +1 -0
  83. package/lib/epoch/processRewardsAndPenalties.d.ts.map +1 -0
  84. package/lib/epoch/processSlashings.d.ts.map +1 -0
  85. package/lib/epoch/processSlashings.js.map +1 -1
  86. package/lib/epoch/processSlashingsReset.d.ts.map +1 -0
  87. package/lib/epoch/processSyncCommitteeUpdates.d.ts.map +1 -0
  88. package/lib/index.d.ts +17 -17
  89. package/lib/index.d.ts.map +1 -0
  90. package/lib/index.js +16 -16
  91. package/lib/index.js.map +1 -1
  92. package/lib/metrics.d.ts.map +1 -0
  93. package/lib/signatureSets/attesterSlashings.d.ts.map +1 -0
  94. package/lib/signatureSets/blsToExecutionChange.d.ts.map +1 -0
  95. package/lib/signatureSets/blsToExecutionChange.js.map +1 -1
  96. package/lib/signatureSets/index.d.ts +1 -1
  97. package/lib/signatureSets/index.d.ts.map +1 -0
  98. package/lib/signatureSets/index.js +1 -1
  99. package/lib/signatureSets/index.js.map +1 -1
  100. package/lib/signatureSets/indexedAttestation.d.ts.map +1 -0
  101. package/lib/signatureSets/proposer.d.ts.map +1 -0
  102. package/lib/signatureSets/proposerSlashings.d.ts.map +1 -0
  103. package/lib/signatureSets/randao.d.ts.map +1 -0
  104. package/lib/signatureSets/voluntaryExits.d.ts.map +1 -0
  105. package/lib/slot/index.d.ts.map +1 -0
  106. package/lib/slot/upgradeStateToAltair.d.ts.map +1 -0
  107. package/lib/slot/upgradeStateToBellatrix.d.ts.map +1 -0
  108. package/lib/slot/upgradeStateToCapella.d.ts.map +1 -0
  109. package/lib/slot/upgradeStateToDeneb.d.ts +1 -2
  110. package/lib/slot/upgradeStateToDeneb.d.ts.map +1 -0
  111. package/lib/slot/upgradeStateToDeneb.js.map +1 -1
  112. package/lib/slot/upgradeStateToElectra.d.ts.map +1 -0
  113. package/lib/slot/upgradeStateToFulu.d.ts.map +1 -0
  114. package/lib/slot/upgradeStateToGloas.d.ts.map +1 -0
  115. package/lib/slot/upgradeStateToGloas.js +2 -2
  116. package/lib/slot/upgradeStateToGloas.js.map +1 -1
  117. package/lib/stateTransition.d.ts.map +1 -0
  118. package/lib/types.d.ts +2 -2
  119. package/lib/types.d.ts.map +1 -0
  120. package/lib/util/aggregator.d.ts.map +1 -0
  121. package/lib/util/altair.d.ts.map +1 -0
  122. package/lib/util/array.d.ts.map +1 -0
  123. package/lib/util/attestation.d.ts.map +1 -0
  124. package/lib/util/attesterStatus.d.ts.map +1 -0
  125. package/lib/util/balance.d.ts.map +1 -0
  126. package/lib/util/blindedBlock.d.ts +3 -3
  127. package/lib/util/blindedBlock.d.ts.map +1 -0
  128. package/lib/util/blindedBlock.js.map +1 -1
  129. package/lib/util/blockRoot.d.ts.map +1 -0
  130. package/lib/util/calculateCommitteeAssignments.d.ts.map +1 -0
  131. package/lib/util/capella.d.ts.map +1 -0
  132. package/lib/util/computeAnchorCheckpoint.d.ts.map +1 -0
  133. package/lib/util/deposit.d.ts.map +1 -0
  134. package/lib/util/domain.d.ts.map +1 -0
  135. package/lib/util/electra.d.ts.map +1 -0
  136. package/lib/util/epoch.d.ts.map +1 -0
  137. package/lib/util/epochShuffling.d.ts.map +1 -0
  138. package/lib/util/execution.d.ts +2 -2
  139. package/lib/util/execution.d.ts.map +1 -0
  140. package/lib/util/execution.js.map +1 -1
  141. package/lib/util/finality.d.ts.map +1 -0
  142. package/lib/util/fulu.d.ts.map +1 -0
  143. package/lib/util/genesis.d.ts.map +1 -0
  144. package/lib/util/genesis.js +3 -6
  145. package/lib/util/genesis.js.map +1 -1
  146. package/lib/util/index.d.ts +5 -5
  147. package/lib/util/index.d.ts.map +1 -0
  148. package/lib/util/index.js +5 -5
  149. package/lib/util/index.js.map +1 -1
  150. package/lib/util/interop.d.ts.map +1 -0
  151. package/lib/util/interop.js +1 -1
  152. package/lib/util/interop.js.map +1 -1
  153. package/lib/util/loadState/findModifiedInactivityScores.d.ts.map +1 -0
  154. package/lib/util/loadState/findModifiedValidators.d.ts.map +1 -0
  155. package/lib/util/loadState/index.d.ts.map +1 -0
  156. package/lib/util/loadState/loadState.d.ts.map +1 -0
  157. package/lib/util/loadState/loadValidator.d.ts.map +1 -0
  158. package/lib/util/rootCache.d.ts.map +1 -0
  159. package/lib/util/rootCache.js +5 -2
  160. package/lib/util/rootCache.js.map +1 -1
  161. package/lib/util/seed.d.ts.map +1 -0
  162. package/lib/util/seed.js +1 -2
  163. package/lib/util/seed.js.map +1 -1
  164. package/lib/util/shufflingDecisionRoot.d.ts.map +1 -0
  165. package/lib/util/signatureSets.d.ts.map +1 -0
  166. package/lib/util/signingRoot.d.ts.map +1 -0
  167. package/lib/util/slot.d.ts +0 -1
  168. package/lib/util/slot.d.ts.map +1 -0
  169. package/lib/util/slot.js +3 -7
  170. package/lib/util/slot.js.map +1 -1
  171. package/lib/util/sszBytes.d.ts.map +1 -0
  172. package/lib/util/syncCommittee.d.ts.map +1 -0
  173. package/lib/util/targetUnslashedBalance.d.ts.map +1 -0
  174. package/lib/util/validator.d.ts.map +1 -0
  175. package/lib/util/weakSubjectivity.d.ts.map +1 -0
  176. package/lib/util/weakSubjectivity.js.map +1 -1
  177. package/package.json +13 -11
  178. package/src/block/externalData.ts +26 -0
  179. package/src/block/index.ts +81 -0
  180. package/src/block/initiateValidatorExit.ts +62 -0
  181. package/src/block/isValidIndexedAttestation.ts +70 -0
  182. package/src/block/processAttestationPhase0.ts +158 -0
  183. package/src/block/processAttestations.ts +25 -0
  184. package/src/block/processAttestationsAltair.ts +184 -0
  185. package/src/block/processAttesterSlashing.ts +59 -0
  186. package/src/block/processBlobKzgCommitments.ts +21 -0
  187. package/src/block/processBlockHeader.ts +54 -0
  188. package/src/block/processBlsToExecutionChange.ts +78 -0
  189. package/src/block/processConsolidationRequest.ts +147 -0
  190. package/src/block/processDeposit.ts +166 -0
  191. package/src/block/processDepositRequest.ts +19 -0
  192. package/src/block/processEth1Data.ts +86 -0
  193. package/src/block/processExecutionPayload.ts +84 -0
  194. package/src/block/processOperations.ts +83 -0
  195. package/src/block/processProposerSlashing.ts +66 -0
  196. package/src/block/processRandao.ts +27 -0
  197. package/src/block/processSyncCommittee.ts +117 -0
  198. package/src/block/processVoluntaryExit.ts +55 -0
  199. package/src/block/processWithdrawalRequest.ts +98 -0
  200. package/src/block/processWithdrawals.ts +207 -0
  201. package/src/block/slashValidator.ts +98 -0
  202. package/src/block/types.ts +9 -0
  203. package/src/cache/effectiveBalanceIncrements.ts +39 -0
  204. package/src/cache/epochCache.ts +1213 -0
  205. package/src/cache/epochTransitionCache.ts +542 -0
  206. package/src/cache/pubkeyCache.ts +33 -0
  207. package/src/cache/rewardCache.ts +19 -0
  208. package/src/cache/stateCache.ts +268 -0
  209. package/src/cache/syncCommitteeCache.ts +96 -0
  210. package/src/cache/types.ts +18 -0
  211. package/src/constants/constants.ts +12 -0
  212. package/src/constants/index.ts +1 -0
  213. package/src/epoch/computeUnrealizedCheckpoints.ts +55 -0
  214. package/src/epoch/getAttestationDeltas.ts +169 -0
  215. package/src/epoch/getRewardsAndPenalties.ts +137 -0
  216. package/src/epoch/index.ts +202 -0
  217. package/src/epoch/processEffectiveBalanceUpdates.ts +111 -0
  218. package/src/epoch/processEth1DataReset.ts +17 -0
  219. package/src/epoch/processHistoricalRootsUpdate.ts +25 -0
  220. package/src/epoch/processHistoricalSummariesUpdate.ts +23 -0
  221. package/src/epoch/processInactivityUpdates.ts +60 -0
  222. package/src/epoch/processJustificationAndFinalization.ts +90 -0
  223. package/src/epoch/processParticipationFlagUpdates.ts +27 -0
  224. package/src/epoch/processParticipationRecordUpdates.ts +14 -0
  225. package/src/epoch/processPendingAttestations.ts +75 -0
  226. package/src/epoch/processPendingConsolidations.ts +59 -0
  227. package/src/epoch/processPendingDeposits.ts +136 -0
  228. package/src/epoch/processProposerLookahead.ts +39 -0
  229. package/src/epoch/processRandaoMixesReset.ts +18 -0
  230. package/src/epoch/processRegistryUpdates.ts +65 -0
  231. package/src/epoch/processRewardsAndPenalties.ts +58 -0
  232. package/src/epoch/processSlashings.ts +97 -0
  233. package/src/epoch/processSlashingsReset.ts +20 -0
  234. package/src/epoch/processSyncCommitteeUpdates.ts +44 -0
  235. package/src/index.ts +67 -0
  236. package/src/metrics.ts +169 -0
  237. package/src/signatureSets/attesterSlashings.ts +39 -0
  238. package/src/signatureSets/blsToExecutionChange.ts +43 -0
  239. package/src/signatureSets/index.ts +73 -0
  240. package/src/signatureSets/indexedAttestation.ts +51 -0
  241. package/src/signatureSets/proposer.ts +47 -0
  242. package/src/signatureSets/proposerSlashings.ts +41 -0
  243. package/src/signatureSets/randao.ts +31 -0
  244. package/src/signatureSets/voluntaryExits.ts +44 -0
  245. package/src/slot/index.ts +32 -0
  246. package/src/slot/upgradeStateToAltair.ts +149 -0
  247. package/src/slot/upgradeStateToBellatrix.ts +63 -0
  248. package/src/slot/upgradeStateToCapella.ts +71 -0
  249. package/src/slot/upgradeStateToDeneb.ts +40 -0
  250. package/src/slot/upgradeStateToElectra.ts +126 -0
  251. package/src/slot/upgradeStateToFulu.ts +31 -0
  252. package/src/slot/upgradeStateToGloas.ts +29 -0
  253. package/src/stateTransition.ts +305 -0
  254. package/src/types.ts +26 -0
  255. package/src/util/aggregator.ts +33 -0
  256. package/src/util/altair.ts +13 -0
  257. package/src/util/array.ts +53 -0
  258. package/src/util/attestation.ts +36 -0
  259. package/src/util/attesterStatus.ts +83 -0
  260. package/src/util/balance.ts +83 -0
  261. package/src/util/blindedBlock.ts +145 -0
  262. package/src/util/blockRoot.ts +72 -0
  263. package/src/util/calculateCommitteeAssignments.ts +43 -0
  264. package/src/util/capella.ts +8 -0
  265. package/src/util/computeAnchorCheckpoint.ts +38 -0
  266. package/src/util/deposit.ts +22 -0
  267. package/src/util/domain.ts +31 -0
  268. package/src/util/electra.ts +68 -0
  269. package/src/util/epoch.ts +135 -0
  270. package/src/util/epochShuffling.ts +185 -0
  271. package/src/util/execution.ts +179 -0
  272. package/src/util/finality.ts +17 -0
  273. package/src/util/fulu.ts +43 -0
  274. package/src/util/genesis.ts +340 -0
  275. package/src/util/index.ts +29 -0
  276. package/src/util/interop.ts +22 -0
  277. package/src/util/loadState/findModifiedInactivityScores.ts +47 -0
  278. package/src/util/loadState/findModifiedValidators.ts +46 -0
  279. package/src/util/loadState/index.ts +2 -0
  280. package/src/util/loadState/loadState.ts +225 -0
  281. package/src/util/loadState/loadValidator.ts +77 -0
  282. package/src/util/rootCache.ts +37 -0
  283. package/src/util/seed.ts +381 -0
  284. package/src/util/shufflingDecisionRoot.ts +78 -0
  285. package/src/util/signatureSets.ts +65 -0
  286. package/src/util/signingRoot.ts +13 -0
  287. package/src/util/slot.ts +22 -0
  288. package/src/util/sszBytes.ts +52 -0
  289. package/src/util/syncCommittee.ts +69 -0
  290. package/src/util/targetUnslashedBalance.ts +30 -0
  291. package/src/util/validator.ts +105 -0
  292. package/src/util/weakSubjectivity.ts +186 -0
@@ -1 +1 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/util/seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/util/seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shufflingDecisionRoot.d.ts","sourceRoot":"","sources":["../../src/util/shufflingDecisionRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAO,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAC;AAItD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI,GAAG,IAAI,CAM3F;AAWD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAMlH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatureSets.d.ts","sourceRoot":"","sources":["../../src/util/signatureSets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAyC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAErC,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC;IACjC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;AAExE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,aAAa,GAAG,OAAO,CAcvE;AAED,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,IAAI,EACjB,SAAS,EAAE,UAAU,GACpB,kBAAkB,CAOpB;AAED,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,SAAS,EAAE,EACpB,WAAW,EAAE,IAAI,EACjB,SAAS,EAAE,UAAU,GACpB,sBAAsB,CAOxB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signingRoot.d.ts","sourceRoot":"","sources":["../../src/util/signingRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAC,MAAM,EAAc,MAAM,iBAAiB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAM7F"}
@@ -4,5 +4,4 @@ export declare function getSlotsSinceGenesis(config: ChainConfig, genesisTime: T
4
4
  export declare function getCurrentSlot(config: ChainConfig, genesisTime: TimeSeconds): Slot;
5
5
  export declare function computeSlotsSinceEpochStart(slot: Slot, epoch?: Epoch): Slot;
6
6
  export declare function computeTimeAtSlot(config: ChainConfig, slot: Slot, genesisTime: TimeSeconds): TimeSeconds;
7
- export declare function getCurrentInterval(config: ChainConfig, secondsIntoSlot: number): number;
8
7
  //# sourceMappingURL=slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../src/util/slot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAGzD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAGxF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAElF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAG3E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,GAAG,WAAW,CAExG"}
package/lib/util/slot.js CHANGED
@@ -1,8 +1,8 @@
1
- import { GENESIS_SLOT, INTERVALS_PER_SLOT } from "@lodestar/params";
1
+ import { GENESIS_SLOT } from "@lodestar/params";
2
2
  import { computeEpochAtSlot, computeStartSlotAtEpoch } from "./epoch.js";
3
3
  export function getSlotsSinceGenesis(config, genesisTime) {
4
4
  const diffInSeconds = Date.now() / 1000 - genesisTime;
5
- return Math.floor(diffInSeconds / config.SECONDS_PER_SLOT);
5
+ return Math.floor(diffInSeconds / (config.SLOT_DURATION_MS / 1000));
6
6
  }
7
7
  export function getCurrentSlot(config, genesisTime) {
8
8
  return GENESIS_SLOT + getSlotsSinceGenesis(config, genesisTime);
@@ -12,10 +12,6 @@ export function computeSlotsSinceEpochStart(slot, epoch) {
12
12
  return slot - computeStartSlotAtEpoch(computeEpoch);
13
13
  }
14
14
  export function computeTimeAtSlot(config, slot, genesisTime) {
15
- return genesisTime + slot * config.SECONDS_PER_SLOT;
16
- }
17
- export function getCurrentInterval(config, secondsIntoSlot) {
18
- const timePerInterval = Math.floor(config.SECONDS_PER_SLOT / INTERVALS_PER_SLOT);
19
- return Math.floor(secondsIntoSlot / timePerInterval);
15
+ return genesisTime + slot * (config.SLOT_DURATION_MS / 1000);
20
16
  }
21
17
  //# sourceMappingURL=slot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slot.js","sourceRoot":"","sources":["../../src/util/slot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAEvE,MAAM,UAAU,oBAAoB,CAAC,MAAmB,EAAE,WAAwB;IAChF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,WAAW,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,WAAwB;IAC1E,OAAO,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAU,EAAE,KAAa;IACnE,MAAM,YAAY,GAAG,KAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,IAAU,EAAE,WAAwB;IACzF,OAAO,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAmB,EAAE,eAAuB;IAC7E,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"slot.js","sourceRoot":"","sources":["../../src/util/slot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAEvE,MAAM,UAAU,oBAAoB,CAAC,MAAmB,EAAE,WAAwB;IAChF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,WAAW,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,WAAwB;IAC1E,OAAO,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAU,EAAE,KAAa;IACnE,MAAM,YAAY,GAAG,KAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,IAAU,EAAE,WAAwB;IACzF,OAAO,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sszBytes.d.ts","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAQlD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAcxC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAGzF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAGrH;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAE7D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncCommittee.d.ts","sourceRoot":"","sources":["../../src/util/syncCommittee.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,OAAO,EAKR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,0BAA0B,EAAC,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAGhD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,mBAAmB,EAC1B,sBAAsB,EAAE,WAAW,EACnC,0BAA0B,EAAE,0BAA0B,GACrD;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAA;CAAC,CAgB7D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,4BAA4B,EAAE,MAAM,GAAG,MAAM,CAUzF;AAED;;;IAGI;AACJ,wBAAgB,6BAA6B,CAAC,2BAA2B,EAAE,MAAM,GAAG,MAAM,CAKzF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targetUnslashedBalance.d.ts","sourceRoot":"","sources":["../../src/util/targetUnslashedBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAM9C;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,aAAa,EAAE,MAAM,EAAE,EACvB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,GAC7B,MAAM,CAWR"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,OAAO,EAGR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAC,mBAAmB,EAAE,wBAAwB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC;AAGtF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAEpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAEvF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAW/F;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAKpH;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,4BAA4B,EAAE,MAAM,EACpC,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,MAAM,GAC5B,MAAM,CAQR;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAM1E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAEvE;AAED,wBAAgB,sBAAsB,CAAC,qBAAqB,EAAE,UAAU,GAAG,MAAM,CAMhF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAQnH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weakSubjectivity.d.ts","sourceRoot":"","sources":["../../src/util/weakSubjectivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAQ/D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAGlD,OAAO,EAAC,mBAAmB,EAAE,yBAAyB,EAAC,MAAM,aAAa,CAAC;AAU3E,eAAO,MAAM,WAAW,QAAU,CAAC;AAGnC;;;GAGG;AACH,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,yBAAyB,GAC/B,KAAK,CAEP;AAED;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,yBAAyB,GAC/B,MAAM,CAgBR;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA6BzG;AAED,wBAAgB,mDAAmD,CACjE,oBAAoB,EAAE,MAAM,EAC5B,uBAAuB,EAAE,MAAM,EAC/B,UAAU,EAAE,MAAM,EAClB,uBAAuB,EAAE,MAAM,GAC9B,MAAM,CAuBR;AAED,wBAAgB,oDAAoD,CAClE,uBAAuB,EAAE,MAAM,EAE/B,iBAAiB,EAAE,MAAM,EACzB,uBAAuB,EAAE,MAAM,GAC9B,MAAM,CAOR;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAMnE;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,mBAAmB,EAC5B,YAAY,EAAE,UAAU,GACvB,OAAO,CAOT;AAED,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,mBAAmB,EAC5B,YAAY,EAAE,UAAU,GACvB,IAAI,CAgBN"}
@@ -1 +1 @@
1
- {"version":3,"file":"weakSubjectivity.js","sourceRoot":"","sources":["../../src/util/weakSubjectivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weakSubjectivity.js","sourceRoot":"","sources":["../../src/util/weakSubjectivity.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,19 +11,23 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.35.0-dev.e9dd48f165",
14
+ "version": "1.35.0-dev.f45a2be721",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
18
+ "bun": "./src/index.ts",
18
19
  "import": "./lib/index.js"
19
20
  },
20
21
  "./block": {
22
+ "bun": "./src/block/index.ts",
21
23
  "import": "./lib/block/index.js"
22
24
  },
23
25
  "./epoch": {
26
+ "bun": "./src/epoch/index.ts",
24
27
  "import": "./lib/epoch/index.js"
25
28
  },
26
29
  "./slot": {
30
+ "bun": "./src/slot/index.ts",
27
31
  "import": "./lib/slot/index.js"
28
32
  }
29
33
  },
@@ -37,11 +41,9 @@
37
41
  }
38
42
  },
39
43
  "files": [
40
- "lib/**/*.d.ts",
41
- "lib/**/*.js",
42
- "lib/**/*.js.map",
43
- "*.d.ts",
44
- "*.js"
44
+ "src",
45
+ "lib",
46
+ "!**/*.tsbuildinfo"
45
47
  ],
46
48
  "scripts": {
47
49
  "clean": "rm -rf lib && rm -f *.tsbuildinfo",
@@ -65,10 +67,10 @@
65
67
  "@chainsafe/pubkey-index-map": "^3.0.0",
66
68
  "@chainsafe/ssz": "^1.2.2",
67
69
  "@chainsafe/swap-or-not-shuffle": "^1.2.1",
68
- "@lodestar/config": "1.35.0-dev.e9dd48f165",
69
- "@lodestar/params": "1.35.0-dev.e9dd48f165",
70
- "@lodestar/types": "1.35.0-dev.e9dd48f165",
71
- "@lodestar/utils": "1.35.0-dev.e9dd48f165",
70
+ "@lodestar/config": "1.35.0-dev.f45a2be721",
71
+ "@lodestar/params": "1.35.0-dev.f45a2be721",
72
+ "@lodestar/types": "1.35.0-dev.f45a2be721",
73
+ "@lodestar/utils": "1.35.0-dev.f45a2be721",
72
74
  "bigint-buffer": "^1.1.5"
73
75
  },
74
76
  "keywords": [
@@ -77,5 +79,5 @@
77
79
  "beacon",
78
80
  "blockchain"
79
81
  ],
80
- "gitHead": "82df91624346f748ec7695eb2caf4160417c989f"
82
+ "gitHead": "580c5c222b9d61894860d10fd17b7808fba59b23"
81
83
  }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Should emulate the return value of `ExecutionEngine.notifyNewPayload()`, such that:
3
+ *
4
+ * Returns ``True`` iff ``execution_payload`` is valid with respect to ``self.execution_state``.
5
+ *
6
+ * Note: `processExecutionPayload()` depends on process_randao function call as it retrieves the most recent randao
7
+ * mix from the state. Implementations that are considering parallel processing of execution payload with respect to
8
+ * beacon chain state transition function should work around this dependency.
9
+ */
10
+ export enum ExecutionPayloadStatus {
11
+ preMerge = "preMerge",
12
+ invalid = "invalid",
13
+ valid = "valid",
14
+ }
15
+
16
+ export enum DataAvailabilityStatus {
17
+ PreData = "PreData",
18
+ /* validator activities can't be performed on out of range data */
19
+ OutOfRange = "OutOfRange",
20
+ Available = "Available",
21
+ }
22
+
23
+ export interface BlockExternalData {
24
+ executionPayloadStatus: ExecutionPayloadStatus;
25
+ dataAvailabilityStatus: DataAvailabilityStatus;
26
+ }
@@ -0,0 +1,81 @@
1
+ import {ForkSeq} from "@lodestar/params";
2
+ import {BeaconBlock, BlindedBeaconBlock, altair, capella} from "@lodestar/types";
3
+ import {BeaconStateTransitionMetrics} from "../metrics.js";
4
+ import {CachedBeaconStateAllForks, CachedBeaconStateBellatrix, CachedBeaconStateCapella} from "../types.js";
5
+ import {getFullOrBlindedPayload, isExecutionEnabled} from "../util/execution.js";
6
+ import {BlockExternalData, DataAvailabilityStatus} from "./externalData.js";
7
+ import {processBlobKzgCommitments} from "./processBlobKzgCommitments.js";
8
+ import {processBlockHeader} from "./processBlockHeader.js";
9
+ import {processEth1Data} from "./processEth1Data.js";
10
+ import {processExecutionPayload} from "./processExecutionPayload.js";
11
+ import {processOperations} from "./processOperations.js";
12
+ import {processRandao} from "./processRandao.js";
13
+ import {processSyncAggregate} from "./processSyncCommittee.js";
14
+ import {processWithdrawals} from "./processWithdrawals.js";
15
+ import {ProcessBlockOpts, ProposerRewardType} from "./types.js";
16
+
17
+ // Spec tests
18
+ export {
19
+ processBlockHeader,
20
+ processExecutionPayload,
21
+ processRandao,
22
+ processEth1Data,
23
+ processSyncAggregate,
24
+ processWithdrawals,
25
+ };
26
+
27
+ export * from "./externalData.js";
28
+ export * from "./initiateValidatorExit.js";
29
+ export * from "./isValidIndexedAttestation.js";
30
+ export * from "./processOperations.js";
31
+
32
+ export function processBlock(
33
+ fork: ForkSeq,
34
+ state: CachedBeaconStateAllForks,
35
+ block: BeaconBlock | BlindedBeaconBlock,
36
+ externalData: BlockExternalData & ProcessBlockOpts,
37
+ opts?: ProcessBlockOpts,
38
+ metrics?: BeaconStateTransitionMetrics | null
39
+ ): void {
40
+ const {verifySignatures = true} = opts ?? {};
41
+
42
+ processBlockHeader(state, block);
43
+
44
+ // The call to the process_execution_payload must happen before the call to the process_randao as the former depends
45
+ // on the randao_mix computed with the reveal of the previous block.
46
+ if (fork >= ForkSeq.bellatrix && isExecutionEnabled(state as CachedBeaconStateBellatrix, block)) {
47
+ const fullOrBlindedPayload = getFullOrBlindedPayload(block);
48
+ // TODO Deneb: Allow to disable withdrawals for interop testing
49
+ // https://github.com/ethereum/consensus-specs/blob/b62c9e877990242d63aa17a2a59a49bc649a2f2e/specs/eip4844/beacon-chain.md#disabling-withdrawals
50
+ if (fork >= ForkSeq.capella) {
51
+ processWithdrawals(
52
+ fork,
53
+ state as CachedBeaconStateCapella,
54
+ fullOrBlindedPayload as capella.FullOrBlindedExecutionPayload
55
+ );
56
+ }
57
+
58
+ processExecutionPayload(fork, state as CachedBeaconStateBellatrix, block.body, externalData);
59
+ }
60
+
61
+ processRandao(state, block, verifySignatures);
62
+ processEth1Data(state, block.body.eth1Data);
63
+ processOperations(fork, state, block.body, opts, metrics);
64
+ if (fork >= ForkSeq.altair) {
65
+ processSyncAggregate(state, block as altair.BeaconBlock, verifySignatures);
66
+ }
67
+
68
+ if (fork >= ForkSeq.deneb) {
69
+ processBlobKzgCommitments(externalData);
70
+ // Only throw PreData so beacon can also sync/process blocks optimistically
71
+ // and let forkChoice handle it
72
+ if (externalData.dataAvailabilityStatus === DataAvailabilityStatus.PreData) {
73
+ throw Error("dataAvailabilityStatus.PreData");
74
+ }
75
+ }
76
+
77
+ const rewards = state.proposerRewards;
78
+ metrics?.proposerRewards.set({type: ProposerRewardType.attestation}, rewards.attestations);
79
+ metrics?.proposerRewards.set({type: ProposerRewardType.syncAggregate}, rewards.syncAggregate);
80
+ metrics?.proposerRewards.set({type: ProposerRewardType.slashing}, rewards.slashing);
81
+ }
@@ -0,0 +1,62 @@
1
+ import {CompositeViewDU} from "@chainsafe/ssz";
2
+ import {FAR_FUTURE_EPOCH, ForkSeq} from "@lodestar/params";
3
+ import {ssz} from "@lodestar/types";
4
+ import {CachedBeaconStateAllForks, CachedBeaconStateElectra} from "../types.js";
5
+ import {computeExitEpochAndUpdateChurn} from "../util/epoch.js";
6
+
7
+ /**
8
+ * Initiate the exit of the validator with index ``index``.
9
+ *
10
+ * NOTE: This function takes a `validator` as argument instead of the validator index.
11
+ * SSZ TreeViews have a dangerous edge case that may break the code here in a non-obvious way.
12
+ * When running `state.validators[i]` you get a SubTree of that validator with a hook to the state.
13
+ * Then, when a property of `validator` is set it propagates the changes upwards to the parent tree up to the state.
14
+ * This means that `validator` will propagate its new state along with the current state of its parent tree up to
15
+ * the state, potentially overwriting changes done in other SubTrees before.
16
+ * ```ts
17
+ * // default state.validators, all zeroes
18
+ * const validatorsA = state.validators
19
+ * const validatorsB = state.validators
20
+ * validatorsA[0].exitEpoch = 9
21
+ * validatorsB[0].exitEpoch = 9 // Setting a value in validatorsB will overwrite all changes from validatorsA
22
+ * // validatorsA[0].exitEpoch is 0
23
+ * // validatorsB[0].exitEpoch is 9
24
+ * ```
25
+ * Forcing consumers to pass the SubTree of `validator` directly mitigates this issue.
26
+ */
27
+ export function initiateValidatorExit(
28
+ fork: ForkSeq,
29
+ state: CachedBeaconStateAllForks,
30
+ validator: CompositeViewDU<typeof ssz.phase0.Validator>
31
+ ): void {
32
+ const {config, epochCtx} = state;
33
+
34
+ // return if validator already initiated exit
35
+ if (validator.exitEpoch !== FAR_FUTURE_EPOCH) {
36
+ return;
37
+ }
38
+
39
+ if (fork < ForkSeq.electra) {
40
+ // Limits the number of validators that can exit on each epoch.
41
+ // Expects all state.validators to follow this rule, i.e. no validator.exitEpoch is greater than exitQueueEpoch.
42
+ // If there the churnLimit is reached at this current exitQueueEpoch, advance epoch and reset churn.
43
+ if (epochCtx.exitQueueChurn >= epochCtx.churnLimit) {
44
+ epochCtx.exitQueueEpoch += 1;
45
+ epochCtx.exitQueueChurn = 1; // = 1 to account for this validator with exitQueueEpoch
46
+ } else {
47
+ // Add this validator to the current exitQueueEpoch churn
48
+ epochCtx.exitQueueChurn += 1;
49
+ }
50
+
51
+ // set validator exit epoch
52
+ validator.exitEpoch = epochCtx.exitQueueEpoch;
53
+ } else {
54
+ // set validator exit epoch
55
+ // Note we don't use epochCtx.exitQueueChurn and exitQueueEpoch anymore
56
+ validator.exitEpoch = computeExitEpochAndUpdateChurn(
57
+ state as CachedBeaconStateElectra,
58
+ BigInt(validator.effectiveBalance)
59
+ );
60
+ }
61
+ validator.withdrawableEpoch = validator.exitEpoch + config.MIN_VALIDATOR_WITHDRAWABILITY_DELAY;
62
+ }
@@ -0,0 +1,70 @@
1
+ import {ForkSeq, MAX_COMMITTEES_PER_SLOT, MAX_VALIDATORS_PER_COMMITTEE} from "@lodestar/params";
2
+ import {IndexedAttestation, IndexedAttestationBigint} from "@lodestar/types";
3
+ import {getIndexedAttestationBigintSignatureSet, getIndexedAttestationSignatureSet} from "../signatureSets/index.js";
4
+ import {CachedBeaconStateAllForks} from "../types.js";
5
+ import {verifySignatureSet} from "../util/index.js";
6
+
7
+ /**
8
+ * Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
9
+ */
10
+ export function isValidIndexedAttestation(
11
+ state: CachedBeaconStateAllForks,
12
+ indexedAttestation: IndexedAttestation,
13
+ verifySignature: boolean
14
+ ): boolean {
15
+ if (!isValidIndexedAttestationIndices(state, indexedAttestation.attestingIndices)) {
16
+ return false;
17
+ }
18
+
19
+ if (verifySignature) {
20
+ return verifySignatureSet(getIndexedAttestationSignatureSet(state, indexedAttestation));
21
+ }
22
+ return true;
23
+ }
24
+
25
+ export function isValidIndexedAttestationBigint(
26
+ state: CachedBeaconStateAllForks,
27
+ indexedAttestation: IndexedAttestationBigint,
28
+ verifySignature: boolean
29
+ ): boolean {
30
+ if (!isValidIndexedAttestationIndices(state, indexedAttestation.attestingIndices)) {
31
+ return false;
32
+ }
33
+
34
+ if (verifySignature) {
35
+ return verifySignatureSet(getIndexedAttestationBigintSignatureSet(state, indexedAttestation));
36
+ }
37
+ return true;
38
+ }
39
+
40
+ /**
41
+ * Check if `indexedAttestation` has sorted and unique indices and a valid aggregate signature.
42
+ */
43
+ export function isValidIndexedAttestationIndices(state: CachedBeaconStateAllForks, indices: number[]): boolean {
44
+ // verify max number of indices
45
+ const maxIndices =
46
+ state.config.getForkSeq(state.slot) >= ForkSeq.electra
47
+ ? MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT
48
+ : MAX_VALIDATORS_PER_COMMITTEE;
49
+ if (!(indices.length > 0 && indices.length <= maxIndices)) {
50
+ return false;
51
+ }
52
+
53
+ // verify indices are sorted and unique.
54
+ // Just check if they are monotonically increasing,
55
+ // instead of creating a set and sorting it. Should be (O(n)) instead of O(n log(n))
56
+ let prev = -1;
57
+ for (const index of indices) {
58
+ if (index <= prev) return false;
59
+ prev = index;
60
+ }
61
+
62
+ // check if indices are out of bounds, by checking the highest index (since it is sorted)
63
+ // TODO - SLOW CODE - Does this .length check the tree and is expensive?
64
+ const lastIndex = indices.at(-1);
65
+ if (lastIndex && lastIndex >= state.validators.length) {
66
+ return false;
67
+ }
68
+
69
+ return true;
70
+ }
@@ -0,0 +1,158 @@
1
+ import {ForkSeq, MIN_ATTESTATION_INCLUSION_DELAY, SLOTS_PER_EPOCH} from "@lodestar/params";
2
+ import {Attestation, Slot, electra, phase0, ssz} from "@lodestar/types";
3
+ import {assert, toRootHex} from "@lodestar/utils";
4
+ import {CachedBeaconStateAllForks, CachedBeaconStatePhase0} from "../types.js";
5
+ import {computeEndSlotAtEpoch, computeEpochAtSlot} from "../util/index.js";
6
+ import {isValidIndexedAttestation} from "./index.js";
7
+
8
+ /**
9
+ * Process an Attestation operation. Validates an attestation and appends it to state.currentEpochAttestations or
10
+ * state.previousEpochAttestations to be processed in bulk at the epoch transition.
11
+ *
12
+ * PERF: Work depends on number of Attestation per block. On mainnet the average is 89.7 / block, with 87.8 participant
13
+ * true bits on average. See `packages/state-transition/test/perf/analyzeBlocks.ts`
14
+ */
15
+ export function processAttestationPhase0(
16
+ state: CachedBeaconStatePhase0,
17
+ attestation: phase0.Attestation,
18
+ verifySignature = true
19
+ ): void {
20
+ const {epochCtx} = state;
21
+ const slot = state.slot;
22
+ const data = attestation.data;
23
+
24
+ validateAttestation(ForkSeq.phase0, state, attestation);
25
+
26
+ const pendingAttestation = ssz.phase0.PendingAttestation.toViewDU({
27
+ data: data,
28
+ aggregationBits: attestation.aggregationBits,
29
+ inclusionDelay: slot - data.slot,
30
+ proposerIndex: epochCtx.getBeaconProposer(slot),
31
+ });
32
+
33
+ if (data.target.epoch === epochCtx.epoch) {
34
+ if (!ssz.phase0.Checkpoint.equals(data.source, state.currentJustifiedCheckpoint)) {
35
+ throw new Error(
36
+ `Attestation source does not equal current justified checkpoint: source=${checkpointToStr(
37
+ data.source
38
+ )} currentJustifiedCheckpoint=${checkpointToStr(state.currentJustifiedCheckpoint)}`
39
+ );
40
+ }
41
+ state.currentEpochAttestations.push(pendingAttestation);
42
+ } else {
43
+ if (!ssz.phase0.Checkpoint.equals(data.source, state.previousJustifiedCheckpoint)) {
44
+ throw new Error(
45
+ `Attestation source does not equal previous justified checkpoint: source=${checkpointToStr(
46
+ data.source
47
+ )} previousJustifiedCheckpoint=${checkpointToStr(state.previousJustifiedCheckpoint)}`
48
+ );
49
+ }
50
+ state.previousEpochAttestations.push(pendingAttestation);
51
+ }
52
+
53
+ if (!isValidIndexedAttestation(state, epochCtx.getIndexedAttestation(ForkSeq.phase0, attestation), verifySignature)) {
54
+ throw new Error("Attestation is not valid");
55
+ }
56
+ }
57
+
58
+ export function validateAttestation(fork: ForkSeq, state: CachedBeaconStateAllForks, attestation: Attestation): void {
59
+ const {epochCtx} = state;
60
+ const slot = state.slot;
61
+ const data = attestation.data;
62
+ const computedEpoch = computeEpochAtSlot(data.slot);
63
+ const committeeCount = epochCtx.getCommitteeCountPerSlot(computedEpoch);
64
+
65
+ if (!(data.target.epoch === epochCtx.previousShuffling.epoch || data.target.epoch === epochCtx.epoch)) {
66
+ throw new Error(
67
+ "Attestation target epoch not in previous or current epoch: " +
68
+ `targetEpoch=${data.target.epoch} currentEpoch=${epochCtx.epoch}`
69
+ );
70
+ }
71
+ if (!(data.target.epoch === computedEpoch)) {
72
+ throw new Error(
73
+ "Attestation target epoch does not match epoch computed from slot: " +
74
+ `targetEpoch=${data.target.epoch} computedEpoch=${computedEpoch}`
75
+ );
76
+ }
77
+
78
+ // post deneb, the attestations are valid till end of next epoch
79
+ if (!(data.slot + MIN_ATTESTATION_INCLUSION_DELAY <= slot && isTimelyTarget(fork, slot - data.slot))) {
80
+ const windowStart = data.slot + MIN_ATTESTATION_INCLUSION_DELAY;
81
+ const windowEnd = fork >= ForkSeq.deneb ? computeEndSlotAtEpoch(computedEpoch + 1) : data.slot + SLOTS_PER_EPOCH;
82
+
83
+ throw new Error(
84
+ `Attestation slot not within inclusion window: slot=${data.slot} window=${windowStart}..${windowEnd}`
85
+ );
86
+ }
87
+
88
+ if (fork >= ForkSeq.electra) {
89
+ assert.equal(data.index, 0, `AttestationData.index must be zero: index=${data.index}`);
90
+ const attestationElectra = attestation as electra.Attestation;
91
+ const committeeIndices = attestationElectra.committeeBits.getTrueBitIndexes();
92
+
93
+ const lastCommitteeIndex = committeeIndices.at(-1);
94
+ if (lastCommitteeIndex === undefined) {
95
+ throw Error("Attestation should have at least one committee bit set");
96
+ }
97
+
98
+ if (lastCommitteeIndex >= committeeCount) {
99
+ throw new Error(
100
+ `Attestation committee index exceeds committee count: lastCommitteeIndex=${lastCommitteeIndex} numCommittees=${committeeCount}`
101
+ );
102
+ }
103
+
104
+ const validatorsByCommittee = epochCtx.getBeaconCommittees(data.slot, committeeIndices);
105
+ const aggregationBitsArray = attestationElectra.aggregationBits.toBoolArray();
106
+
107
+ // Total number of attestation participants of every committee specified
108
+ let committeeOffset = 0;
109
+ for (const committeeValidators of validatorsByCommittee) {
110
+ const committeeAggregationBits = aggregationBitsArray.slice(
111
+ committeeOffset,
112
+ committeeOffset + committeeValidators.length
113
+ );
114
+
115
+ // Assert aggregation bits in this committee have at least one true bit
116
+ if (committeeAggregationBits.every((bit) => !bit)) {
117
+ throw new Error("Every committee in aggregation bits must have at least one attester");
118
+ }
119
+
120
+ committeeOffset += committeeValidators.length;
121
+ }
122
+
123
+ // Bitfield length matches total number of participants
124
+ assert.equal(
125
+ attestationElectra.aggregationBits.bitLen,
126
+ committeeOffset,
127
+ `Attestation aggregation bits length does not match total number of committee participants aggregationBitsLength=${attestation.aggregationBits.bitLen} participantCount=${committeeOffset}`
128
+ );
129
+ } else {
130
+ if (!(data.index < committeeCount)) {
131
+ throw new Error(
132
+ "Attestation committee index not within current committee count: " +
133
+ `committeeIndex=${data.index} committeeCount=${committeeCount}`
134
+ );
135
+ }
136
+
137
+ const committee = epochCtx.getBeaconCommittee(data.slot, data.index);
138
+ if (attestation.aggregationBits.bitLen !== committee.length) {
139
+ throw new Error(
140
+ "Attestation aggregation bits length does not match committee length: " +
141
+ `aggregationBitsLength=${attestation.aggregationBits.bitLen} committeeLength=${committee.length}`
142
+ );
143
+ }
144
+ }
145
+ }
146
+
147
+ // Modified https://github.com/ethereum/consensus-specs/pull/3360
148
+ export function isTimelyTarget(fork: ForkSeq, inclusionDistance: Slot): boolean {
149
+ // post deneb attestation is valid till end of next epoch for target
150
+ if (fork >= ForkSeq.deneb) {
151
+ return true;
152
+ }
153
+ return inclusionDistance <= SLOTS_PER_EPOCH;
154
+ }
155
+
156
+ export function checkpointToStr(checkpoint: phase0.Checkpoint): string {
157
+ return `${toRootHex(checkpoint.root)}:${checkpoint.epoch}`;
158
+ }
@@ -0,0 +1,25 @@
1
+ import {ForkSeq} from "@lodestar/params";
2
+ import {Attestation} from "@lodestar/types";
3
+ import {BeaconStateTransitionMetrics} from "../metrics.js";
4
+ import {CachedBeaconStateAllForks, CachedBeaconStateAltair, CachedBeaconStatePhase0} from "../types.js";
5
+ import {processAttestationPhase0} from "./processAttestationPhase0.js";
6
+ import {processAttestationsAltair} from "./processAttestationsAltair.js";
7
+
8
+ /**
9
+ * TODO
10
+ */
11
+ export function processAttestations(
12
+ fork: ForkSeq,
13
+ state: CachedBeaconStateAllForks,
14
+ attestations: Attestation[],
15
+ verifySignatures = true,
16
+ metrics?: BeaconStateTransitionMetrics | null
17
+ ): void {
18
+ if (fork === ForkSeq.phase0) {
19
+ for (const attestation of attestations) {
20
+ processAttestationPhase0(state as CachedBeaconStatePhase0, attestation, verifySignatures);
21
+ }
22
+ } else {
23
+ processAttestationsAltair(fork, state as CachedBeaconStateAltair, attestations, verifySignatures, metrics);
24
+ }
25
+ }