@lodestar/beacon-node 1.40.0-dev.4acd3ce568 → 1.40.0-dev.9defa5c09b

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 (251) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +8 -18
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/debug/index.d.ts +1 -1
  5. package/lib/api/impl/debug/index.d.ts.map +1 -1
  6. package/lib/api/impl/debug/index.js +3 -6
  7. package/lib/api/impl/debug/index.js.map +1 -1
  8. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  9. package/lib/api/impl/lodestar/index.js +5 -2
  10. package/lib/api/impl/lodestar/index.js.map +1 -1
  11. package/lib/api/impl/validator/index.d.ts.map +1 -1
  12. package/lib/api/impl/validator/index.js +9 -8
  13. package/lib/api/impl/validator/index.js.map +1 -1
  14. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  15. package/lib/chain/archiveStore/utils/archiveBlocks.js +4 -0
  16. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  17. package/lib/chain/blocks/blockInput/blockInput.d.ts +2 -0
  18. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  19. package/lib/chain/blocks/blockInput/blockInput.js +6 -0
  20. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  21. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  22. package/lib/chain/blocks/importBlock.js +2 -6
  23. package/lib/chain/blocks/importBlock.js.map +1 -1
  24. package/lib/chain/blocks/index.d.ts.map +1 -1
  25. package/lib/chain/blocks/index.js +0 -14
  26. package/lib/chain/blocks/index.js.map +1 -1
  27. package/lib/chain/blocks/types.d.ts +0 -2
  28. package/lib/chain/blocks/types.d.ts.map +1 -1
  29. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  30. package/lib/chain/blocks/verifyBlock.js +0 -7
  31. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  32. package/lib/chain/blocks/writeBlockInputToDb.d.ts +1 -4
  33. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  34. package/lib/chain/blocks/writeBlockInputToDb.js +20 -28
  35. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  36. package/lib/chain/chain.d.ts +21 -4
  37. package/lib/chain/chain.d.ts.map +1 -1
  38. package/lib/chain/chain.js +178 -13
  39. package/lib/chain/chain.js.map +1 -1
  40. package/lib/chain/errors/attestationError.d.ts +14 -1
  41. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  42. package/lib/chain/errors/attestationError.js +8 -0
  43. package/lib/chain/errors/attestationError.js.map +1 -1
  44. package/lib/chain/errors/executionPayloadBid.d.ts +48 -0
  45. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -0
  46. package/lib/chain/errors/executionPayloadBid.js +15 -0
  47. package/lib/chain/errors/executionPayloadBid.js.map +1 -0
  48. package/lib/chain/errors/executionPayloadEnvelope.d.ts +48 -0
  49. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -0
  50. package/lib/chain/errors/executionPayloadEnvelope.js +16 -0
  51. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -0
  52. package/lib/chain/errors/index.d.ts +3 -0
  53. package/lib/chain/errors/index.d.ts.map +1 -1
  54. package/lib/chain/errors/index.js +3 -0
  55. package/lib/chain/errors/index.js.map +1 -1
  56. package/lib/chain/errors/payloadAttestation.d.ts +34 -0
  57. package/lib/chain/errors/payloadAttestation.d.ts.map +1 -0
  58. package/lib/chain/errors/payloadAttestation.js +13 -0
  59. package/lib/chain/errors/payloadAttestation.js.map +1 -0
  60. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  61. package/lib/chain/forkChoice/index.js +18 -0
  62. package/lib/chain/forkChoice/index.js.map +1 -1
  63. package/lib/chain/interface.d.ts +21 -3
  64. package/lib/chain/interface.d.ts.map +1 -1
  65. package/lib/chain/interface.js.map +1 -1
  66. package/lib/chain/opPools/executionPayloadBidPool.d.ts +21 -0
  67. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -0
  68. package/lib/chain/opPools/executionPayloadBidPool.js +57 -0
  69. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -0
  70. package/lib/chain/opPools/index.d.ts +2 -0
  71. package/lib/chain/opPools/index.d.ts.map +1 -1
  72. package/lib/chain/opPools/index.js +2 -0
  73. package/lib/chain/opPools/index.js.map +1 -1
  74. package/lib/chain/opPools/payloadAttestationPool.d.ts +24 -0
  75. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -0
  76. package/lib/chain/opPools/payloadAttestationPool.js +109 -0
  77. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -0
  78. package/lib/chain/prepareNextSlot.js +6 -4
  79. package/lib/chain/prepareNextSlot.js.map +1 -1
  80. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
  81. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  82. package/lib/chain/produceBlock/produceBlockBody.js +5 -3
  83. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  84. package/lib/chain/regen/interface.d.ts +3 -8
  85. package/lib/chain/regen/interface.d.ts.map +1 -1
  86. package/lib/chain/regen/interface.js +1 -1
  87. package/lib/chain/regen/interface.js.map +1 -1
  88. package/lib/chain/regen/queued.d.ts +1 -2
  89. package/lib/chain/regen/queued.d.ts.map +1 -1
  90. package/lib/chain/regen/queued.js +2 -16
  91. package/lib/chain/regen/queued.js.map +1 -1
  92. package/lib/chain/regen/regen.d.ts +3 -7
  93. package/lib/chain/regen/regen.d.ts.map +1 -1
  94. package/lib/chain/regen/regen.js +3 -16
  95. package/lib/chain/regen/regen.js.map +1 -1
  96. package/lib/chain/seenCache/index.d.ts +3 -1
  97. package/lib/chain/seenCache/index.d.ts.map +1 -1
  98. package/lib/chain/seenCache/index.js +3 -1
  99. package/lib/chain/seenCache/index.js.map +1 -1
  100. package/lib/chain/seenCache/seenAttesters.d.ts +5 -0
  101. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  102. package/lib/chain/seenCache/seenAttesters.js +5 -0
  103. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  104. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts +12 -0
  105. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -0
  106. package/lib/chain/seenCache/seenExecutionPayloadBids.js +30 -0
  107. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -0
  108. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +15 -0
  109. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -0
  110. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +28 -0
  111. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -0
  112. package/lib/chain/validation/aggregateAndProof.js +32 -10
  113. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  114. package/lib/chain/validation/attestation.d.ts.map +1 -1
  115. package/lib/chain/validation/attestation.js +23 -4
  116. package/lib/chain/validation/attestation.js.map +1 -1
  117. package/lib/chain/validation/blobSidecar.js +1 -1
  118. package/lib/chain/validation/blobSidecar.js.map +1 -1
  119. package/lib/chain/validation/block.d.ts.map +1 -1
  120. package/lib/chain/validation/block.js +4 -3
  121. package/lib/chain/validation/block.js.map +1 -1
  122. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  123. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  124. package/lib/chain/validation/executionPayloadBid.d.ts +5 -0
  125. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -0
  126. package/lib/chain/validation/executionPayloadBid.js +103 -0
  127. package/lib/chain/validation/executionPayloadBid.js.map +1 -0
  128. package/lib/chain/validation/executionPayloadEnvelope.d.ts +5 -0
  129. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -0
  130. package/lib/chain/validation/executionPayloadEnvelope.js +89 -0
  131. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -0
  132. package/lib/chain/validation/payloadAttestationMessage.d.ts +9 -0
  133. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -0
  134. package/lib/chain/validation/payloadAttestationMessage.js +72 -0
  135. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -0
  136. package/lib/chain/validatorMonitor.d.ts +2 -0
  137. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  138. package/lib/chain/validatorMonitor.js +42 -3
  139. package/lib/chain/validatorMonitor.js.map +1 -1
  140. package/lib/db/repositories/checkpointState.js +0 -1
  141. package/lib/db/repositories/checkpointState.js.map +1 -1
  142. package/lib/metrics/metrics/lodestar.d.ts +27 -0
  143. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  144. package/lib/metrics/metrics/lodestar.js +64 -0
  145. package/lib/metrics/metrics/lodestar.js.map +1 -1
  146. package/lib/network/gossip/interface.d.ts +20 -2
  147. package/lib/network/gossip/interface.d.ts.map +1 -1
  148. package/lib/network/gossip/interface.js +3 -0
  149. package/lib/network/gossip/interface.js.map +1 -1
  150. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  151. package/lib/network/gossip/scoringParameters.js +38 -2
  152. package/lib/network/gossip/scoringParameters.js.map +1 -1
  153. package/lib/network/gossip/topic.d.ts +77 -1
  154. package/lib/network/gossip/topic.d.ts.map +1 -1
  155. package/lib/network/gossip/topic.js +20 -0
  156. package/lib/network/gossip/topic.js.map +1 -1
  157. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  158. package/lib/network/processor/gossipHandlers.js +34 -3
  159. package/lib/network/processor/gossipHandlers.js.map +1 -1
  160. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  161. package/lib/network/processor/gossipQueues/index.js +16 -0
  162. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  163. package/lib/network/processor/index.d.ts.map +1 -1
  164. package/lib/network/processor/index.js +3 -0
  165. package/lib/network/processor/index.js.map +1 -1
  166. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  167. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +2 -4
  168. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  169. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +1 -2
  170. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +1 -1
  171. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js +5 -26
  172. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  173. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +1 -2
  174. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +1 -1
  175. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +5 -7
  176. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  177. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  178. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +1 -2
  179. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  180. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +1 -1
  181. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -5
  182. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  183. package/lib/network/reqresp/handlers/index.js +2 -2
  184. package/lib/network/reqresp/handlers/index.js.map +1 -1
  185. package/lib/sync/range/chain.d.ts.map +1 -1
  186. package/lib/sync/range/chain.js +0 -1
  187. package/lib/sync/range/chain.js.map +1 -1
  188. package/lib/sync/range/range.d.ts.map +1 -1
  189. package/lib/sync/range/range.js +0 -3
  190. package/lib/sync/range/range.js.map +1 -1
  191. package/lib/sync/unknownBlock.d.ts.map +1 -1
  192. package/lib/sync/unknownBlock.js +0 -3
  193. package/lib/sync/unknownBlock.js.map +1 -1
  194. package/package.json +15 -15
  195. package/src/api/impl/beacon/blocks/index.ts +8 -18
  196. package/src/api/impl/debug/index.ts +2 -6
  197. package/src/api/impl/lodestar/index.ts +6 -3
  198. package/src/api/impl/validator/index.ts +12 -11
  199. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -0
  200. package/src/chain/blocks/blockInput/blockInput.ts +8 -0
  201. package/src/chain/blocks/importBlock.ts +2 -6
  202. package/src/chain/blocks/index.ts +0 -19
  203. package/src/chain/blocks/types.ts +0 -2
  204. package/src/chain/blocks/verifyBlock.ts +0 -8
  205. package/src/chain/blocks/writeBlockInputToDb.ts +24 -30
  206. package/src/chain/chain.ts +203 -21
  207. package/src/chain/errors/attestationError.ts +11 -1
  208. package/src/chain/errors/executionPayloadBid.ts +35 -0
  209. package/src/chain/errors/executionPayloadEnvelope.ts +34 -0
  210. package/src/chain/errors/index.ts +3 -0
  211. package/src/chain/errors/payloadAttestation.ts +25 -0
  212. package/src/chain/forkChoice/index.ts +19 -0
  213. package/src/chain/interface.ts +32 -1
  214. package/src/chain/opPools/executionPayloadBidPool.ts +77 -0
  215. package/src/chain/opPools/index.ts +2 -0
  216. package/src/chain/opPools/payloadAttestationPool.ts +157 -0
  217. package/src/chain/prepareNextSlot.ts +6 -6
  218. package/src/chain/produceBlock/produceBlockBody.ts +7 -5
  219. package/src/chain/regen/interface.ts +2 -12
  220. package/src/chain/regen/queued.ts +3 -23
  221. package/src/chain/regen/regen.ts +4 -24
  222. package/src/chain/seenCache/index.ts +3 -1
  223. package/src/chain/seenCache/seenAttesters.ts +5 -0
  224. package/src/chain/seenCache/seenExecutionPayloadBids.ts +35 -0
  225. package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +34 -0
  226. package/src/chain/validation/aggregateAndProof.ts +33 -10
  227. package/src/chain/validation/attestation.ts +24 -3
  228. package/src/chain/validation/blobSidecar.ts +1 -1
  229. package/src/chain/validation/block.ts +4 -3
  230. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  231. package/src/chain/validation/executionPayloadBid.ts +140 -0
  232. package/src/chain/validation/executionPayloadEnvelope.ts +122 -0
  233. package/src/chain/validation/payloadAttestationMessage.ts +109 -0
  234. package/src/chain/validatorMonitor.ts +52 -3
  235. package/src/db/repositories/checkpointState.ts +1 -1
  236. package/src/metrics/metrics/lodestar.ts +65 -0
  237. package/src/network/gossip/interface.ts +17 -0
  238. package/src/network/gossip/scoringParameters.ts +44 -2
  239. package/src/network/gossip/topic.ts +21 -0
  240. package/src/network/processor/gossipHandlers.ts +48 -3
  241. package/src/network/processor/gossipQueues/index.ts +16 -0
  242. package/src/network/processor/index.ts +3 -0
  243. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -4
  244. package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +5 -32
  245. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +5 -9
  246. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +5 -2
  247. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +1 -5
  248. package/src/network/reqresp/handlers/index.ts +2 -2
  249. package/src/sync/range/chain.ts +0 -1
  250. package/src/sync/range/range.ts +0 -3
  251. package/src/sync/unknownBlock.ts +0 -3
@@ -3,7 +3,7 @@ import { CompositeTypeAny, TreeView, Type } from "@chainsafe/ssz";
3
3
  import { BeaconConfig } from "@lodestar/config";
4
4
  import { CheckpointWithHex, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
5
5
  import { BeaconStateAllForks, CachedBeaconStateAllForks, EpochShuffling, Index2PubkeyCache } from "@lodestar/state-transition";
6
- import { BeaconBlock, BlindedBeaconBlock, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, altair, capella, phase0, rewards } from "@lodestar/types";
6
+ import { BeaconBlock, BlindedBeaconBlock, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, altair, capella, deneb, fulu, phase0, rewards } from "@lodestar/types";
7
7
  import { Logger } from "@lodestar/utils";
8
8
  import { IExecutionBuilder, IExecutionEngine } from "../execution/index.js";
9
9
  import { Metrics } from "../metrics/metrics.js";
@@ -23,12 +23,12 @@ import { ForkchoiceCaller } from "./forkChoice/index.js";
23
23
  import { GetBlobsTracker } from "./GetBlobsTracker.js";
24
24
  import { LightClientServer } from "./lightClient/index.js";
25
25
  import { AggregatedAttestationPool } from "./opPools/aggregatedAttestationPool.js";
26
- import { AttestationPool, OpPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
26
+ import { AttestationPool, ExecutionPayloadBidPool, OpPool, PayloadAttestationPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
27
27
  import { IChainOptions } from "./options.js";
28
28
  import { AssembledBlockType, BlockAttributes, BlockType, ProduceResult } from "./produceBlock/produceBlockBody.js";
29
29
  import { IStateRegenerator, RegenCaller } from "./regen/index.js";
30
30
  import { ReprocessController } from "./reprocess.js";
31
- import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenSyncCommitteeMessages } from "./seenCache/index.js";
31
+ import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenExecutionPayloadEnvelopes, SeenPayloadAttesters, SeenSyncCommitteeMessages } from "./seenCache/index.js";
32
32
  import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js";
33
33
  import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
34
34
  import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
@@ -78,10 +78,15 @@ export interface IBeaconChain {
78
78
  readonly aggregatedAttestationPool: AggregatedAttestationPool;
79
79
  readonly syncCommitteeMessagePool: SyncCommitteeMessagePool;
80
80
  readonly syncContributionAndProofPool: SyncContributionAndProofPool;
81
+ readonly executionPayloadBidPool: ExecutionPayloadBidPool;
82
+ readonly payloadAttestationPool: PayloadAttestationPool;
81
83
  readonly opPool: OpPool;
82
84
  readonly seenAttesters: SeenAttesters;
83
85
  readonly seenAggregators: SeenAggregators;
86
+ readonly seenPayloadAttesters: SeenPayloadAttesters;
84
87
  readonly seenAggregatedAttestations: SeenAggregatedAttestations;
88
+ readonly seenExecutionPayloadEnvelopes: SeenExecutionPayloadEnvelopes;
89
+ readonly seenExecutionPayloadBids: SeenExecutionPayloadBids;
85
90
  readonly seenBlockProposers: SeenBlockProposers;
86
91
  readonly seenSyncCommitteeMessages: SeenSyncCommitteeMessages;
87
92
  readonly seenContributionAndProof: SeenContributionAndProof;
@@ -152,6 +157,15 @@ export interface IBeaconChain {
152
157
  executionOptimistic: boolean;
153
158
  finalized: boolean;
154
159
  } | null>;
160
+ /**
161
+ * Get local block by root, does not fetch from the network
162
+ */
163
+ getSerializedBlockByRoot(root: RootHex): Promise<{
164
+ block: Uint8Array;
165
+ executionOptimistic: boolean;
166
+ finalized: boolean;
167
+ slot: Slot;
168
+ } | null>;
155
169
  /**
156
170
  * Get local block by root, does not fetch from the network
157
171
  */
@@ -160,6 +174,10 @@ export interface IBeaconChain {
160
174
  executionOptimistic: boolean;
161
175
  finalized: boolean;
162
176
  } | null>;
177
+ getBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<deneb.BlobSidecars | null>;
178
+ getSerializedBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
179
+ getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<fulu.DataColumnSidecars>;
180
+ getSerializedDataColumnSidecars(blockSlot: Slot, blockRootHex: string, indices: number[]): Promise<(Uint8Array | undefined)[]>;
163
181
  produceCommonBlockBody(blockAttributes: BlockAttributes): Promise<CommonBlockBody>;
164
182
  produceBlock(blockAttributes: BlockAttributes & {
165
183
  commonBlockBodyPromise: Promise<CommonBlockBody>;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"AAgDA,OAAO,EAAsC,SAAS,EAAgB,MAAM,oCAAoC,CAAC;AAiBjH,OAAO,EAAC,SAAS,EAA0B,CAAC;AAQ5C,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qEAAmD,CAAA;IACnD,6DAA2C,CAAA;IAC3C,qDAAmC,CAAA;AACrC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"AAyDA,OAAO,EAAsC,SAAS,EAAgB,MAAM,oCAAoC,CAAC;AAoBjH,OAAO,EAAC,SAAS,EAA0B,CAAC;AAQ5C,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qEAAmD,CAAA;IACnD,6DAA2C,CAAA;IAC3C,qDAAmC,CAAA;AACrC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
@@ -0,0 +1,21 @@
1
+ import { Slot, gloas } from "@lodestar/types";
2
+ import { InsertOutcome } from "./types.js";
3
+ type BlockRootHex = string;
4
+ type BlockHashHex = string;
5
+ /**
6
+ * Store the best execution payload bid per slot / (parent block root, parent block hash).
7
+ */
8
+ export declare class ExecutionPayloadBidPool {
9
+ private readonly bidByParentHashByParentRootBySlot;
10
+ private lowestPermissibleSlot;
11
+ get size(): number;
12
+ add(bid: gloas.ExecutionPayloadBid): InsertOutcome;
13
+ /**
14
+ * Return the highest-value bid matching slot, parent block root, and parent block hash.
15
+ * Used for gossip validation and block production.
16
+ */
17
+ getBestBid(parentBlockRoot: BlockRootHex, parentBlockHash: BlockHashHex, slot: Slot): gloas.ExecutionPayloadBid | null;
18
+ prune(clockSlot: Slot): void;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=executionPayloadBidPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadBidPool.d.ts","sourceRoot":"","sources":["../../../src/chain/opPools/executionPayloadBidPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAQzC,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,YAAY,GAAG,MAAM,CAAC;AAE3B;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAG+C;IACjG,OAAO,CAAC,qBAAqB,CAAK;IAElC,IAAI,IAAI,IAAI,MAAM,CAQjB;IAED,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,mBAAmB,GAAG,aAAa;IA2BlD;;;OAGG;IACH,UAAU,CACR,eAAe,EAAE,YAAY,EAC7B,eAAe,EAAE,YAAY,EAC7B,IAAI,EAAE,IAAI,GACT,KAAK,CAAC,mBAAmB,GAAG,IAAI;IAKnC,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI;CAG7B"}
@@ -0,0 +1,57 @@
1
+ import { MapDef, toRootHex } from "@lodestar/utils";
2
+ import { InsertOutcome } from "./types.js";
3
+ import { pruneBySlot } from "./utils.js";
4
+ /**
5
+ * TODO GLOAS: Revisit this value and add rational for choosing it
6
+ */
7
+ const SLOTS_RETAINED = 2;
8
+ /**
9
+ * Store the best execution payload bid per slot / (parent block root, parent block hash).
10
+ */
11
+ export class ExecutionPayloadBidPool {
12
+ bidByParentHashByParentRootBySlot = new MapDef(() => new MapDef(() => new Map()));
13
+ lowestPermissibleSlot = 0;
14
+ get size() {
15
+ let count = 0;
16
+ for (const byParentRoot of this.bidByParentHashByParentRootBySlot.values()) {
17
+ for (const byParentHash of byParentRoot.values()) {
18
+ count += byParentHash.size;
19
+ }
20
+ }
21
+ return count;
22
+ }
23
+ add(bid) {
24
+ const { slot, parentBlockRoot, parentBlockHash, value } = bid;
25
+ const lowestPermissibleSlot = this.lowestPermissibleSlot;
26
+ if (slot < lowestPermissibleSlot) {
27
+ return InsertOutcome.Old;
28
+ }
29
+ const parentRootHex = toRootHex(parentBlockRoot);
30
+ const parentHashHex = toRootHex(parentBlockHash);
31
+ const bidByParentHash = this.bidByParentHashByParentRootBySlot.getOrDefault(slot).getOrDefault(parentRootHex);
32
+ const existing = bidByParentHash.get(parentHashHex);
33
+ if (existing) {
34
+ const existingValue = existing.value;
35
+ const newValue = value;
36
+ if (newValue > existingValue) {
37
+ bidByParentHash.set(parentHashHex, bid);
38
+ return InsertOutcome.NewData;
39
+ }
40
+ return newValue === existingValue ? InsertOutcome.AlreadyKnown : InsertOutcome.NotBetterThan;
41
+ }
42
+ bidByParentHash.set(parentHashHex, bid);
43
+ return InsertOutcome.NewData;
44
+ }
45
+ /**
46
+ * Return the highest-value bid matching slot, parent block root, and parent block hash.
47
+ * Used for gossip validation and block production.
48
+ */
49
+ getBestBid(parentBlockRoot, parentBlockHash, slot) {
50
+ const bidByParentHash = this.bidByParentHashByParentRootBySlot.get(slot)?.get(parentBlockRoot);
51
+ return bidByParentHash?.get(parentBlockHash) ?? null;
52
+ }
53
+ prune(clockSlot) {
54
+ this.lowestPermissibleSlot = pruneBySlot(this.bidByParentHashByParentRootBySlot, clockSlot, SLOTS_RETAINED);
55
+ }
56
+ }
57
+ //# sourceMappingURL=executionPayloadBidPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadBidPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/executionPayloadBidPool.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAEvC;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC;AAKzB;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACjB,iCAAiC,GAAG,IAAI,MAAM,CAG7D,GAAG,EAAE,CAAC,IAAI,MAAM,CAA6D,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACzF,qBAAqB,GAAG,CAAC,CAAC;IAElC,IAAI,IAAI;QACN,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3E,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;gBACjD,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,GAA8B;QAChC,MAAM,EAAC,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,EAAC,GAAG,GAAG,CAAC;QAC5D,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEzD,IAAI,IAAI,GAAG,qBAAqB,EAAE,CAAC;YACjC,OAAO,aAAa,CAAC,GAAG,CAAC;QAC3B,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,IAAI,CAAC,iCAAiC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9G,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEpD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;YACrC,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,IAAI,QAAQ,GAAG,aAAa,EAAE,CAAC;gBAC7B,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBACxC,OAAO,aAAa,CAAC,OAAO,CAAC;YAC/B,CAAC;YACD,OAAO,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC;QAC/F,CAAC;QAED,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO,aAAa,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,UAAU,CACR,eAA6B,EAC7B,eAA6B,EAC7B,IAAU;QAEV,MAAM,eAAe,GAAG,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/F,OAAO,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,SAAe;QACnB,IAAI,CAAC,qBAAqB,GAAG,WAAW,CAAC,IAAI,CAAC,iCAAiC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC9G,CAAC;CACF"}
@@ -1,6 +1,8 @@
1
1
  export { AggregatedAttestationPool } from "./aggregatedAttestationPool.js";
2
2
  export { AttestationPool } from "./attestationPool.js";
3
+ export { ExecutionPayloadBidPool } from "./executionPayloadBidPool.js";
3
4
  export { OpPool } from "./opPool.js";
5
+ export { PayloadAttestationPool } from "./payloadAttestationPool.js";
4
6
  export { SyncCommitteeMessagePool } from "./syncCommitteeMessagePool.js";
5
7
  export { SyncContributionAndProofPool } from "./syncContributionAndProofPool.js";
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chain/opPools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chain/opPools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export { AggregatedAttestationPool } from "./aggregatedAttestationPool.js";
2
2
  export { AttestationPool } from "./attestationPool.js";
3
+ export { ExecutionPayloadBidPool } from "./executionPayloadBidPool.js";
3
4
  export { OpPool } from "./opPool.js";
5
+ export { PayloadAttestationPool } from "./payloadAttestationPool.js";
4
6
  export { SyncCommitteeMessagePool } from "./syncCommitteeMessagePool.js";
5
7
  export { SyncContributionAndProofPool } from "./syncContributionAndProofPool.js";
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/opPools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/opPools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ChainForkConfig } from "@lodestar/config";
2
+ import { RootHex, Slot, gloas } from "@lodestar/types";
3
+ import { Metrics } from "../../metrics/metrics.js";
4
+ import { IClock } from "../../util/clock.js";
5
+ import { InsertOutcome } from "./types.js";
6
+ type BlockRootHex = string;
7
+ export declare class PayloadAttestationPool {
8
+ private readonly config;
9
+ private readonly clock;
10
+ private readonly metrics;
11
+ private readonly aggregateByDataRootByBlockRootBySlot;
12
+ private lowestPermissibleSlot;
13
+ constructor(config: ChainForkConfig, clock: IClock, metrics?: Metrics | null);
14
+ get size(): number;
15
+ add(message: gloas.PayloadAttestationMessage, payloadAttDataRootHex: RootHex, validatorCommitteeIndex: number): InsertOutcome;
16
+ /**
17
+ * Get payload attestations to be included in a block.
18
+ * Pick the top `maxAttestation` number of attestations with the most votes
19
+ */
20
+ getPayloadAttestationsForBlock(beaconBlockRoot: BlockRootHex, slot: Slot, maxAttestation: number): gloas.PayloadAttestation[];
21
+ prune(clockSlot: Slot): void;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=payloadAttestationPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadAttestationPool.d.ts","sourceRoot":"","sources":["../../../src/chain/opPools/payloadAttestationPool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAA+B,MAAM,YAAY,CAAC;AAiBvE,KAAK,YAAY,GAAG,MAAM,CAAC;AAQ3B,qBAAa,sBAAsB;IAQ/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAGa;IAClE,OAAO,CAAC,qBAAqB,CAAK;gBAGf,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,OAAO,GAAG,IAAW;IAGjD,IAAI,IAAI,IAAI,MAAM,CAQjB;IAED,GAAG,CACD,OAAO,EAAE,KAAK,CAAC,yBAAyB,EACxC,qBAAqB,EAAE,OAAO,EAC9B,uBAAuB,EAAE,MAAM,GAC9B,aAAa;IAmChB;;;OAGG;IACH,8BAA8B,CAC5B,eAAe,EAAE,YAAY,EAC7B,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,MAAM,GACrB,KAAK,CAAC,kBAAkB,EAAE;IAsB7B,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI;CAI7B"}
@@ -0,0 +1,109 @@
1
+ import { aggregateSignatures } from "@chainsafe/blst";
2
+ import { BitArray } from "@chainsafe/ssz";
3
+ import { MAX_COMMITTEES_PER_SLOT, PTC_SIZE } from "@lodestar/params";
4
+ import { MapDef, toRootHex } from "@lodestar/utils";
5
+ import { InsertOutcome, OpPoolError, OpPoolErrorCode } from "./types.js";
6
+ import { pruneBySlot, signatureFromBytesNoCheck } from "./utils.js";
7
+ /**
8
+ * TODO GLOAS: Revisit this value and add rational for choosing it
9
+ */
10
+ const SLOTS_RETAINED = 2;
11
+ /**
12
+ * The maximum number of distinct `PayloadAttestationData` that will be stored in each slot.
13
+ *
14
+ * This is a DoS protection measure.
15
+ */
16
+ // TODO GLOAS: Revisit this value. Educated guess would be MAX_ATTESTATIONS_PER_SLOT in AttestationPool divided by MAX_COMMITTEES_PER_SLOT
17
+ const MAX_PAYLOAD_ATTESTATIONS_PER_SLOT = 16_384 / MAX_COMMITTEES_PER_SLOT;
18
+ export class PayloadAttestationPool {
19
+ config;
20
+ clock;
21
+ metrics;
22
+ aggregateByDataRootByBlockRootBySlot = new MapDef(() => new Map());
23
+ lowestPermissibleSlot = 0;
24
+ constructor(config, clock, metrics = null) {
25
+ this.config = config;
26
+ this.clock = clock;
27
+ this.metrics = metrics;
28
+ }
29
+ get size() {
30
+ let count = 0;
31
+ for (const aggregateByDataRootByBlockRoot of this.aggregateByDataRootByBlockRootBySlot.values()) {
32
+ for (const aggregateByDataRoot of aggregateByDataRootByBlockRoot.values()) {
33
+ count += aggregateByDataRoot.size;
34
+ }
35
+ }
36
+ return count;
37
+ }
38
+ add(message, payloadAttDataRootHex, validatorCommitteeIndex) {
39
+ const slot = message.data.slot;
40
+ const lowestPermissibleSlot = this.lowestPermissibleSlot;
41
+ if (slot < lowestPermissibleSlot) {
42
+ return InsertOutcome.Old;
43
+ }
44
+ if (slot < this.clock.slotWithPastTolerance(this.config.MAXIMUM_GOSSIP_CLOCK_DISPARITY / 1000)) {
45
+ return InsertOutcome.Late;
46
+ }
47
+ const aggregateByDataRootByBlockRoot = this.aggregateByDataRootByBlockRootBySlot.getOrDefault(slot);
48
+ let aggregateByDataRoot = aggregateByDataRootByBlockRoot.get(toRootHex(message.data.beaconBlockRoot));
49
+ if (!aggregateByDataRoot) {
50
+ aggregateByDataRoot = new Map();
51
+ aggregateByDataRootByBlockRoot.set(toRootHex(message.data.beaconBlockRoot), aggregateByDataRoot);
52
+ }
53
+ if (aggregateByDataRoot.size >= MAX_PAYLOAD_ATTESTATIONS_PER_SLOT) {
54
+ throw new OpPoolError({ code: OpPoolErrorCode.REACHED_MAX_PER_SLOT });
55
+ }
56
+ const aggregate = aggregateByDataRoot.get(payloadAttDataRootHex);
57
+ if (aggregate) {
58
+ // Aggregate msg into aggregate
59
+ return aggregateMessageInto(message, validatorCommitteeIndex, aggregate);
60
+ }
61
+ // Create a new aggregate with data
62
+ aggregateByDataRoot.set(payloadAttDataRootHex, messageToAggregate(message, validatorCommitteeIndex));
63
+ return InsertOutcome.NewData;
64
+ }
65
+ /**
66
+ * Get payload attestations to be included in a block.
67
+ * Pick the top `maxAttestation` number of attestations with the most votes
68
+ */
69
+ getPayloadAttestationsForBlock(beaconBlockRoot, slot, maxAttestation) {
70
+ const aggregateByDataRootByBlockRoot = this.aggregateByDataRootByBlockRootBySlot.get(slot);
71
+ if (!aggregateByDataRootByBlockRoot) {
72
+ this.metrics?.opPool.payloadAttestationPool.getPayloadAttestationsCacheMisses.inc();
73
+ return [];
74
+ }
75
+ const aggregateByDataRoot = aggregateByDataRootByBlockRoot.get(beaconBlockRoot);
76
+ if (!aggregateByDataRoot) {
77
+ this.metrics?.opPool.payloadAttestationPool.getPayloadAttestationsCacheMisses.inc();
78
+ return [];
79
+ }
80
+ return Array.from(aggregateByDataRoot.values())
81
+ .slice()
82
+ .sort((a, b) => b.aggregationBits.getTrueBitIndexes().length - a.aggregationBits.getTrueBitIndexes().length)
83
+ .slice(0, maxAttestation)
84
+ .map(fastToPayloadAttestation);
85
+ }
86
+ prune(clockSlot) {
87
+ pruneBySlot(this.aggregateByDataRootByBlockRootBySlot, clockSlot, SLOTS_RETAINED);
88
+ this.lowestPermissibleSlot = clockSlot;
89
+ }
90
+ }
91
+ function messageToAggregate(message, validatorCommitteeIndex) {
92
+ return {
93
+ aggregationBits: BitArray.fromSingleBit(PTC_SIZE, validatorCommitteeIndex),
94
+ data: message.data,
95
+ signature: signatureFromBytesNoCheck(message.signature),
96
+ };
97
+ }
98
+ function aggregateMessageInto(message, validatorCommitteeIndex, aggregate) {
99
+ if (aggregate.aggregationBits.get(validatorCommitteeIndex) === true) {
100
+ return InsertOutcome.AlreadyKnown;
101
+ }
102
+ aggregate.aggregationBits.set(validatorCommitteeIndex, true);
103
+ aggregate.signature = aggregateSignatures([aggregate.signature, signatureFromBytesNoCheck(message.signature)]);
104
+ return InsertOutcome.Aggregated;
105
+ }
106
+ function fastToPayloadAttestation(aggFast) {
107
+ return { ...aggFast, signature: aggFast.signature.toBytes() };
108
+ }
109
+ //# sourceMappingURL=payloadAttestationPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadAttestationPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/payloadAttestationPool.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,8 @@ export class PrepareNextSlotScheduler {
62
62
  // or precompute epoch transition
63
63
  await sleep(this.config.getSlotComponentDurationMs(PREPARE_NEXT_SLOT_BPS), this.signal);
64
64
  // calling updateHead() here before we produce a block to reduce reorg possibility
65
- const { slot: headSlot, blockRoot: headRoot } = this.chain.recomputeForkChoiceHead(ForkchoiceCaller.prepareNextSlot);
65
+ const headBlock = this.chain.recomputeForkChoiceHead(ForkchoiceCaller.prepareNextSlot);
66
+ const { slot: headSlot, blockRoot: headRoot } = headBlock;
66
67
  // PS: previously this was comparing slots, but that gave no leway on the skipped
67
68
  // slots on epoch bounday. Making it more fluid.
68
69
  if (prepareSlot - headSlot > PREPARE_EPOCH_LIMIT * SLOTS_PER_EPOCH) {
@@ -88,7 +89,7 @@ export class PrepareNextSlotScheduler {
88
89
  // No need to wait for this or the clock drift
89
90
  // Pre Bellatrix: we only do precompute state transition for the last slot of epoch
90
91
  // For Bellatrix, we always do the `processSlots()` to prepare payload for the next slot
91
- const prepareState = await this.chain.regen.getBlockSlotState(headRoot, prepareSlot,
92
+ const prepareState = await this.chain.regen.getBlockSlotState(headBlock, prepareSlot,
92
93
  // the slot 0 of next epoch will likely use this Previous Root Checkpoint state for state transition so we transfer cache here
93
94
  // the resulting state with cache will be cached in Checkpoint State Cache which is used for the upcoming block processing
94
95
  // for other slots dontTransferCached=true because we don't run state transition on this state
@@ -100,7 +101,8 @@ export class PrepareNextSlotScheduler {
100
101
  let updatedHeadRoot = headRoot;
101
102
  if (feeRecipient) {
102
103
  // If we are proposing next slot, we need to predict if we can proposer-boost-reorg or not
103
- const { slot: proposerHeadSlot, blockRoot: proposerHeadRoot } = this.chain.predictProposerHead(clockSlot);
104
+ const proposerHead = this.chain.predictProposerHead(clockSlot);
105
+ const { slot: proposerHeadSlot, blockRoot: proposerHeadRoot } = proposerHead;
104
106
  // If we predict we can reorg, update prepareState with proposer head block
105
107
  if (proposerHeadRoot !== headRoot || proposerHeadSlot !== headSlot) {
106
108
  this.logger.verbose("Weak head detected. May build on parent block instead", {
@@ -110,7 +112,7 @@ export class PrepareNextSlotScheduler {
110
112
  headRoot,
111
113
  });
112
114
  this.metrics?.weakHeadDetected.inc();
113
- updatedPrepareState = (await this.chain.regen.getBlockSlotState(proposerHeadRoot, prepareSlot,
115
+ updatedPrepareState = (await this.chain.regen.getBlockSlotState(proposerHead, prepareSlot,
114
116
  // only transfer cache if epoch transition because that's the state we will use to stateTransition() the 1st block of epoch
115
117
  { dontTransferCache: !isEpochTransition }, RegenCaller.predictProposerHead));
116
118
  updatedHeadRoot = proposerHeadRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"prepareNextSlot.js","sourceRoot":"","sources":["../../src/chain/prepareNextSlot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAErC,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAoB,OAAO,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAGL,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAS,OAAO,EAAE,cAAc,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAC,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AACvG,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,sCAAsC;AACtC,6GAA6G;AAC7G,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,yDAAyD;AACzD,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;;;;;;GAUG;AACH,MAAM,OAAO,wBAAwB;IAEhB;IACA;IACA;IACA;IACA;IALnB,YACmB,KAAmB,EACnB,MAAuB,EACvB,OAAuB,EACvB,MAAc,EACd,MAAmB;QAJnB,UAAK,GAAL,KAAK,CAAc;QACnB,WAAM,GAAN,MAAM,CAAiB;QACvB,YAAO,GAAP,OAAO,CAAgB;QACvB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAa;QAEpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC1B,OAAO,EACP,GAAG,EAAE;YACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjE,CAAC,EACD,EAAC,IAAI,EAAE,IAAI,EAAC,CACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB,GAAG,KAAK,EAAE,SAAe,EAAiB,EAAE;QAC5D,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,iBAAiB,GAAG,YAAY,KAAK,SAAS,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAElD,qCAAqC;QACrC,+DAA+D;QAC/D,IAAI,WAAW,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7F,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,2FAA2F;YAC3F,iCAAiC;YACjC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAExF,kFAAkF;YAClF,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAC9E,gBAAgB,CAAC,eAAe,CACjC,CAAC;YAEF,iFAAiF;YACjF,gDAAgD;YAChD,IAAI,WAAW,GAAG,QAAQ,GAAG,mBAAmB,GAAG,eAAe,EAAE,CAAC;gBACnE,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,MAAM,EAAC,EAAE,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0EAA0E,EAAE;oBAC5F,SAAS;oBACT,QAAQ;oBACR,SAAS;iBACV,CAAC,CAAC;gBAEH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE;gBAChD,SAAS;gBACT,WAAW;gBACX,QAAQ;gBACR,QAAQ;gBACR,iBAAiB;aAClB,CAAC,CAAC;YACH,MAAM,8BAA8B,GAAG,iBAAiB;gBACtD,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,QAAQ,CAAC,UAAU,EAAE;gBACnE,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,8CAA8C;YAC9C,mFAAmF;YACnF,wFAAwF;YACxF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAC3D,QAAQ,EACR,WAAW;YACX,8HAA8H;YAC9H,0HAA0H;YAC1H,8FAA8F;YAC9F,EAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAC,EACvC,WAAW,CAAC,eAAe,CAC5B,CAAC;YAEF,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACvC,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACvE,IAAI,mBAAmB,GAAG,YAAY,CAAC;gBACvC,IAAI,eAAe,GAAG,QAAQ,CAAC;gBAE/B,IAAI,YAAY,EAAE,CAAC;oBACjB,0FAA0F;oBAC1F,MAAM,EAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBAExG,2EAA2E;oBAC3E,IAAI,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;wBACnE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uDAAuD,EAAE;4BAC3E,gBAAgB;4BAChB,gBAAgB;4BAChB,QAAQ;4BACR,QAAQ;yBACT,CAAC,CAAC;wBACH,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,EAAE,CAAC;wBACrC,mBAAmB,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAC7D,gBAAgB,EAChB,WAAW;wBACX,2HAA2H;wBAC3H,EAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAC,EACvC,WAAW,CAAC,mBAAmB,CAChC,CAAgC,CAAC;wBAClC,eAAe,GAAG,gBAAgB,CAAC;oBACrC,CAAC;oBAED,0EAA0E;oBAC1E,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;wBAClE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;4BACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,EAAC,WAAW,EAAC,EAAE,CAAU,CAAC,CAAC;wBAClG,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,eAAe,GACnB,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;oBAC1F,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAE3E,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBACvE,MAAM,kBAAkB,GACtB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,yBAAyB,IAAI,aAAa,CAAC;oBACvF,iFAAiF;oBACjF,iFAAiF;oBACjF,0BAA0B;oBAC1B,MAAM,uBAAuB,CAC3B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAyB,EAAE,6BAA6B;oBACxD,OAAO,CAAC,eAAe,CAAC,EACxB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,CACb,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,+CAA+C,EAAE;wBACnE,WAAW;wBACX,aAAa;wBACb,YAAY;qBACb,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;gBAEtE,sEAAsE;gBACtE,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,IAAI;oBAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAC3E,CAAC;oBACD,MAAM,IAAI,GAAG,0BAA0B,CAAC,IAAyB,EAAE,IAAI,CAAC,KAAK,EAAE;wBAC7E,YAAY,EAAE,mBAAmB;wBACjC,WAAW;wBACX,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC;wBAClC,2EAA2E;wBAC3E,2EAA2E;wBAC3E,YAAY,EAAE,oEAAoE;qBACnF,CAAC,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC5F,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YACjE,CAAC;YAED,0HAA0H;YAC1H,2EAA2E;YAC3E,+GAA+G;YAC/G,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACvF,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC1D,CAAC;gBACD,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;gBAExE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qDAAqD,EAAE;oBACzE,SAAS;oBACT,QAAQ;oBACR,WAAW;oBACX,YAAY;oBACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;iBAC/B,CAAC,CAAC;gBAEH,8BAA8B,EAAE,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,CAAC,CAAC,CAAC;gBAC5E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAC,EAAE,CAAU,CAAC,CAAC;YACjH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,wBAAwB,CAAC,KAAgC,EAAE,iBAA0B;QACnF,2IAA2I;QAC3I,wDAAwD;QACxD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC;YACvE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC,eAAe;SAC/G,CAAC,CAAC;QACH,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,iBAAiB,EAAE,EAAE,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"prepareNextSlot.js","sourceRoot":"","sources":["../../src/chain/prepareNextSlot.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
+ import { ProtoBlock } from "@lodestar/fork-choice";
2
3
  import { ForkName, ForkPostBellatrix, ForkPostDeneb, ForkPostFulu } from "@lodestar/params";
3
4
  import { CachedBeaconStateAllForks, CachedBeaconStateExecutions } from "@lodestar/state-transition";
4
5
  import { BLSPubkey, BLSSignature, BeaconBlock, BeaconBlockBody, BlindedBeaconBlock, BlindedBeaconBlockBody, BlobsBundle, Bytes32, ExecutionPayload, Root, RootHex, SSEPayloadAttributes, Slot, ValidatorIndex, Wei, fulu } from "@lodestar/types";
@@ -28,7 +29,7 @@ export type BlockAttributes = {
28
29
  randaoReveal: BLSSignature;
29
30
  graffiti: Bytes32;
30
31
  slot: Slot;
31
- parentBlockRoot: Root;
32
+ parentBlock: ProtoBlock;
32
33
  feeRecipient?: string;
33
34
  };
34
35
  export declare enum BlockType {
@@ -93,5 +94,5 @@ export declare function getPayloadAttributesForSSE(fork: ForkPostBellatrix, chai
93
94
  parentBlockRoot: Root;
94
95
  feeRecipient: string;
95
96
  }): SSEPayloadAttributes;
96
- export declare function produceCommonBlockBody<T extends BlockType>(this: BeaconChain, blockType: T, currentState: CachedBeaconStateAllForks, { randaoReveal, graffiti, slot, parentBlockRoot }: BlockAttributes): Promise<CommonBlockBody>;
97
+ export declare function produceCommonBlockBody<T extends BlockType>(this: BeaconChain, blockType: T, currentState: CachedBeaconStateAllForks, { randaoReveal, graffiti, slot, parentBlock }: BlockAttributes): Promise<CommonBlockBody>;
97
98
  //# sourceMappingURL=produceBlockBody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"produceBlockBody.d.ts","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"produceBlockBody.d.ts","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,UAAU,EAA4B,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,YAAY,EAMb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EAGzB,2BAA2B,EAI5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,OAAO,EACP,gBAAgB,EAEhB,IAAI,EACJ,OAAO,EACP,oBAAoB,EACpB,IAAI,EACJ,cAAc,EACd,GAAG,EAKH,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,MAAM,EAAgD,MAAM,iBAAiB,CAAC;AAGtF,OAAO,EAEL,gBAAgB,EAEhB,SAAS,EAEV,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAMhD,oBAAY,sBAAsB;IAChC,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;IACjC,qBAAqB,0BAA0B;IAC/C,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;CACtC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AACD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,SAAS,CAAC,IAAI,GACzE,eAAe,GACf,sBAAsB,CAAC;AAC3B,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,SAAS,CAAC,IAAI,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAElH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;IACxC,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;CACzC,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC5C,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;CACvD,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;CACzC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAKF,mFAAmF;AACnF,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,iBAAiB,GACjB,cAAc,CAAC;AAEnB,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EACxD,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,yBAAyB,EACvC,SAAS,EAAE,eAAe,GAAG;IAC3B,aAAa,EAAE,cAAc,CAAC;IAC9B,cAAc,EAAE,SAAS,CAAC;IAC1B,sBAAsB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CAClD,GACA,OAAO,CAAC;IACT,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,qBAAqB,EAAE,GAAG,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC,CA0TD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE;IACL,eAAe,EAAE,gBAAgB,CAAC;IAClC,MAAM,EAAE,eAAe,CAAC;CACzB,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,eAAe,EAAE,IAAI,EACrB,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,OAAO,EAC3B,KAAK,EAAE,2BAA2B,EAClC,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC;IAAC,QAAQ,EAAE,sBAAsB,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAC,CAAC,CA0DnE;AAwBD,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE;IACL,MAAM,EAAE,eAAe,CAAC;CACzB,EACD,EACE,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,GACb,EAAE;IAAC,YAAY,EAAE,2BAA2B,CAAC;IAAC,WAAW,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAC7G,oBAAoB,CAiBtB;AA0CD,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,SAAS,EAC9D,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,yBAAyB,EACvC,EAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAC,EAAE,eAAe,GAC3D,OAAO,CAAC,eAAe,CAAC,CAkE1B"}
@@ -1,7 +1,7 @@
1
1
  import { getSafeExecutionBlockHash } from "@lodestar/fork-choice";
2
2
  import { ForkSeq, isForkPostAltair, isForkPostBellatrix, isForkPostGloas, } from "@lodestar/params";
3
3
  import { computeTimeAtSlot, getExpectedWithdrawals, getRandaoMix, } from "@lodestar/state-transition";
4
- import { sleep, toHex, toPubkeyHex, toRootHex } from "@lodestar/utils";
4
+ import { fromHex, sleep, toHex, toPubkeyHex, toRootHex } from "@lodestar/utils";
5
5
  import { ZERO_HASH_HEX } from "../../constants/index.js";
6
6
  import { numToQuantity } from "../../execution/engine/utils.js";
7
7
  import { getExpectedGasLimit, } from "../../execution/index.js";
@@ -36,9 +36,10 @@ export var BlockType;
36
36
  BlockType["Blinded"] = "Blinded";
37
37
  })(BlockType || (BlockType = {}));
38
38
  export async function produceBlockBody(blockType, currentState, blockAttr) {
39
- const { slot: blockSlot, feeRecipient: requestedFeeRecipient, parentBlockRoot, proposerIndex, proposerPubKey, commonBlockBodyPromise, } = blockAttr;
39
+ const { slot: blockSlot, feeRecipient: requestedFeeRecipient, parentBlock, proposerIndex, proposerPubKey, commonBlockBodyPromise, } = blockAttr;
40
40
  let executionPayloadValue;
41
41
  let blockBody;
42
+ const parentBlockRoot = fromHex(parentBlock.blockRoot);
42
43
  // even though shouldOverrideBuilder is relevant for the engine response, for simplicity of typing
43
44
  // we just return it undefined for the builder which anyway doesn't get consumed downstream
44
45
  let shouldOverrideBuilder;
@@ -370,7 +371,7 @@ function preparePayloadAttributes(fork, chain, { prepareState, prepareSlot, pare
370
371
  }
371
372
  return payloadAttributes;
372
373
  }
373
- export async function produceCommonBlockBody(blockType, currentState, { randaoReveal, graffiti, slot, parentBlockRoot }) {
374
+ export async function produceCommonBlockBody(blockType, currentState, { randaoReveal, graffiti, slot, parentBlock }) {
374
375
  const stepsMetrics = blockType === BlockType.Full
375
376
  ? this.metrics?.executionBlockProductionTimeSteps
376
377
  : this.metrics?.builderBlockProductionTimeSteps;
@@ -410,6 +411,7 @@ export async function produceCommonBlockBody(blockType, currentState, { randaoRe
410
411
  }
411
412
  const endSyncAggregate = stepsMetrics?.startTimer();
412
413
  if (ForkSeq[fork] >= ForkSeq.altair) {
414
+ const parentBlockRoot = fromHex(parentBlock.blockRoot);
413
415
  const previousSlot = slot - 1;
414
416
  const syncAggregate = this.syncContributionAndProofPool.getAggregate(previousSlot, parentBlockRoot);
415
417
  this.metrics?.production.producedSyncAggregateParticipants.observe(syncAggregate.syncCommitteeBits.getTrueBitIndexes().length);