@lodestar/beacon-node 1.42.0-dev.eec18d0609 → 1.42.0-dev.f403d99def

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 (286) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +31 -11
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/pool/index.js +4 -0
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/state/index.js +13 -10
  9. package/lib/api/impl/beacon/state/index.js.map +1 -1
  10. package/lib/api/impl/debug/index.js.map +1 -1
  11. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  12. package/lib/api/impl/lodestar/index.js +4 -0
  13. package/lib/api/impl/lodestar/index.js.map +1 -1
  14. package/lib/api/impl/validator/index.d.ts.map +1 -1
  15. package/lib/api/impl/validator/index.js +9 -3
  16. package/lib/api/impl/validator/index.js.map +1 -1
  17. package/lib/chain/ColumnReconstructionTracker.d.ts +2 -1
  18. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  19. package/lib/chain/ColumnReconstructionTracker.js +5 -5
  20. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  21. package/lib/chain/GetBlobsTracker.d.ts +2 -1
  22. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  23. package/lib/chain/GetBlobsTracker.js +14 -12
  24. package/lib/chain/GetBlobsTracker.js.map +1 -1
  25. package/lib/chain/blocks/blockInput/blockInput.d.ts +5 -5
  26. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  27. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  28. package/lib/chain/blocks/blockInput/types.d.ts +4 -4
  29. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  30. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  31. package/lib/chain/blocks/importBlock.js +19 -5
  32. package/lib/chain/blocks/importBlock.js.map +1 -1
  33. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  34. package/lib/chain/blocks/importExecutionPayload.js +14 -5
  35. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  36. package/lib/chain/blocks/index.js +1 -1
  37. package/lib/chain/blocks/index.js.map +1 -1
  38. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +14 -6
  39. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  40. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +33 -2
  41. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  42. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +2 -1
  43. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
  44. package/lib/chain/blocks/types.d.ts +3 -3
  45. package/lib/chain/blocks/types.d.ts.map +1 -1
  46. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  47. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +3 -2
  48. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  49. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  50. package/lib/chain/blocks/verifyBlocksSignatures.js +4 -2
  51. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  52. package/lib/chain/chain.d.ts +4 -2
  53. package/lib/chain/chain.d.ts.map +1 -1
  54. package/lib/chain/chain.js +77 -28
  55. package/lib/chain/chain.js.map +1 -1
  56. package/lib/chain/emitter.d.ts +29 -7
  57. package/lib/chain/emitter.d.ts.map +1 -1
  58. package/lib/chain/emitter.js +12 -3
  59. package/lib/chain/emitter.js.map +1 -1
  60. package/lib/chain/errors/blockError.d.ts +11 -1
  61. package/lib/chain/errors/blockError.d.ts.map +1 -1
  62. package/lib/chain/errors/blockError.js +4 -0
  63. package/lib/chain/errors/blockError.js.map +1 -1
  64. package/lib/chain/errors/dataColumnSidecarError.d.ts +31 -1
  65. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +1 -1
  66. package/lib/chain/errors/dataColumnSidecarError.js +7 -0
  67. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  68. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  69. package/lib/chain/forkChoice/index.js +10 -8
  70. package/lib/chain/forkChoice/index.js.map +1 -1
  71. package/lib/chain/interface.d.ts +5 -2
  72. package/lib/chain/interface.d.ts.map +1 -1
  73. package/lib/chain/interface.js.map +1 -1
  74. package/lib/chain/lightClient/index.d.ts +2 -2
  75. package/lib/chain/lightClient/index.d.ts.map +1 -1
  76. package/lib/chain/lightClient/index.js +7 -0
  77. package/lib/chain/lightClient/index.js.map +1 -1
  78. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  79. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -2
  80. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  81. package/lib/chain/opPools/executionPayloadBidPool.d.ts +2 -2
  82. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  83. package/lib/chain/opPools/executionPayloadBidPool.js +2 -2
  84. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  85. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  86. package/lib/chain/prepareNextSlot.js +7 -1
  87. package/lib/chain/prepareNextSlot.js.map +1 -1
  88. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +3 -3
  89. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  90. package/lib/chain/produceBlock/computeNewStateRoot.js +8 -8
  91. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  92. package/lib/chain/produceBlock/produceBlockBody.d.ts +5 -5
  93. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  94. package/lib/chain/produceBlock/produceBlockBody.js +23 -4
  95. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  96. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +1 -1
  97. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  98. package/lib/chain/seenCache/seenGossipBlockInput.js +2 -2
  99. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  100. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +1 -1
  101. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  102. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +2 -2
  103. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  104. package/lib/chain/validation/block.d.ts.map +1 -1
  105. package/lib/chain/validation/block.js +27 -5
  106. package/lib/chain/validation/block.js.map +1 -1
  107. package/lib/chain/validation/dataColumnSidecar.d.ts +11 -4
  108. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  109. package/lib/chain/validation/dataColumnSidecar.js +184 -5
  110. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  111. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  112. package/lib/chain/validation/executionPayloadBid.js +7 -4
  113. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  114. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  115. package/lib/chain/validation/executionPayloadEnvelope.js +6 -1
  116. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  117. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  118. package/lib/chain/validation/payloadAttestationMessage.js +4 -1
  119. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  120. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  121. package/lib/chain/validation/syncCommittee.js +4 -0
  122. package/lib/chain/validation/syncCommittee.js.map +1 -1
  123. package/lib/chain/validation/syncCommitteeContributionAndProof.js +4 -1
  124. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  125. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  126. package/lib/chain/validatorMonitor.js +3 -3
  127. package/lib/chain/validatorMonitor.js.map +1 -1
  128. package/lib/db/buckets.d.ts +2 -2
  129. package/lib/db/buckets.d.ts.map +1 -1
  130. package/lib/db/buckets.js +2 -2
  131. package/lib/db/buckets.js.map +1 -1
  132. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  133. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  134. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  135. package/lib/db/repositories/dataColumnSidecar.js +4 -2
  136. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  137. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  138. package/lib/db/repositories/dataColumnSidecarArchive.js +4 -2
  139. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  140. package/lib/metrics/metrics/lodestar.d.ts +20 -0
  141. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  142. package/lib/metrics/metrics/lodestar.js +33 -0
  143. package/lib/metrics/metrics/lodestar.js.map +1 -1
  144. package/lib/network/interface.d.ts +3 -2
  145. package/lib/network/interface.d.ts.map +1 -1
  146. package/lib/network/network.d.ts +3 -2
  147. package/lib/network/network.d.ts.map +1 -1
  148. package/lib/network/network.js +3 -0
  149. package/lib/network/network.js.map +1 -1
  150. package/lib/network/processor/extractSlotRootFns.d.ts +1 -1
  151. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  152. package/lib/network/processor/extractSlotRootFns.js +25 -5
  153. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  154. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  155. package/lib/network/processor/gossipHandlers.js +246 -66
  156. package/lib/network/processor/gossipHandlers.js.map +1 -1
  157. package/lib/network/processor/index.d.ts +11 -1
  158. package/lib/network/processor/index.d.ts.map +1 -1
  159. package/lib/network/processor/index.js +234 -22
  160. package/lib/network/processor/index.js.map +1 -1
  161. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  162. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +2 -1
  163. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  164. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +1 -1
  165. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js +2 -0
  166. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  167. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +2 -2
  168. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  169. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +7 -3
  170. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  171. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +1 -1
  172. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +6 -0
  173. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  174. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +2 -2
  175. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  176. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +7 -3
  177. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  178. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
  179. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +2 -1
  180. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
  181. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts.map +1 -1
  182. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +3 -8
  183. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -1
  184. package/lib/network/reqresp/types.d.ts +3 -3
  185. package/lib/network/reqresp/types.d.ts.map +1 -1
  186. package/lib/network/reqresp/types.js +9 -3
  187. package/lib/network/reqresp/types.js.map +1 -1
  188. package/lib/node/nodejs.d.ts.map +1 -1
  189. package/lib/node/nodejs.js +4 -1
  190. package/lib/node/nodejs.js.map +1 -1
  191. package/lib/node/notifier.d.ts.map +1 -1
  192. package/lib/node/notifier.js +2 -2
  193. package/lib/node/notifier.js.map +1 -1
  194. package/lib/sync/unknownBlock.js +2 -2
  195. package/lib/sync/unknownBlock.js.map +1 -1
  196. package/lib/sync/utils/downloadByRange.d.ts +3 -3
  197. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  198. package/lib/sync/utils/downloadByRange.js +4 -2
  199. package/lib/sync/utils/downloadByRange.js.map +1 -1
  200. package/lib/sync/utils/downloadByRoot.d.ts +3 -3
  201. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  202. package/lib/sync/utils/downloadByRoot.js +10 -5
  203. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  204. package/lib/util/blobs.d.ts +3 -3
  205. package/lib/util/blobs.d.ts.map +1 -1
  206. package/lib/util/blobs.js +21 -10
  207. package/lib/util/blobs.js.map +1 -1
  208. package/lib/util/dataColumns.d.ts +18 -11
  209. package/lib/util/dataColumns.d.ts.map +1 -1
  210. package/lib/util/dataColumns.js +51 -17
  211. package/lib/util/dataColumns.js.map +1 -1
  212. package/lib/util/execution.d.ts +6 -2
  213. package/lib/util/execution.d.ts.map +1 -1
  214. package/lib/util/execution.js +49 -25
  215. package/lib/util/execution.js.map +1 -1
  216. package/lib/util/sszBytes.d.ts +25 -1
  217. package/lib/util/sszBytes.d.ts.map +1 -1
  218. package/lib/util/sszBytes.js +189 -2
  219. package/lib/util/sszBytes.js.map +1 -1
  220. package/package.json +15 -15
  221. package/src/api/impl/beacon/blocks/index.ts +46 -14
  222. package/src/api/impl/beacon/pool/index.ts +4 -0
  223. package/src/api/impl/beacon/state/index.ts +15 -15
  224. package/src/api/impl/debug/index.ts +2 -2
  225. package/src/api/impl/lodestar/index.ts +4 -0
  226. package/src/api/impl/validator/index.ts +9 -2
  227. package/src/chain/ColumnReconstructionTracker.ts +6 -5
  228. package/src/chain/GetBlobsTracker.ts +14 -12
  229. package/src/chain/blocks/blockInput/blockInput.ts +8 -8
  230. package/src/chain/blocks/blockInput/types.ts +4 -4
  231. package/src/chain/blocks/importBlock.ts +29 -8
  232. package/src/chain/blocks/importExecutionPayload.ts +15 -5
  233. package/src/chain/blocks/index.ts +1 -1
  234. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +53 -12
  235. package/src/chain/blocks/payloadEnvelopeInput/types.ts +2 -1
  236. package/src/chain/blocks/types.ts +3 -3
  237. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +2 -1
  238. package/src/chain/blocks/verifyBlocksSignatures.ts +9 -2
  239. package/src/chain/chain.ts +93 -32
  240. package/src/chain/emitter.ts +25 -7
  241. package/src/chain/errors/blockError.ts +7 -1
  242. package/src/chain/errors/dataColumnSidecarError.ts +32 -1
  243. package/src/chain/forkChoice/index.ts +11 -8
  244. package/src/chain/interface.ts +9 -2
  245. package/src/chain/lightClient/index.ts +15 -3
  246. package/src/chain/opPools/aggregatedAttestationPool.ts +6 -1
  247. package/src/chain/opPools/executionPayloadBidPool.ts +3 -3
  248. package/src/chain/prepareNextSlot.ts +8 -0
  249. package/src/chain/produceBlock/computeNewStateRoot.ts +11 -10
  250. package/src/chain/produceBlock/produceBlockBody.ts +40 -10
  251. package/src/chain/seenCache/seenGossipBlockInput.ts +2 -2
  252. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +2 -2
  253. package/src/chain/validation/block.ts +30 -7
  254. package/src/chain/validation/dataColumnSidecar.ts +230 -7
  255. package/src/chain/validation/executionPayloadBid.ts +7 -3
  256. package/src/chain/validation/executionPayloadEnvelope.ts +10 -1
  257. package/src/chain/validation/payloadAttestationMessage.ts +4 -0
  258. package/src/chain/validation/syncCommittee.ts +5 -1
  259. package/src/chain/validation/syncCommitteeContributionAndProof.ts +5 -1
  260. package/src/chain/validatorMonitor.ts +3 -2
  261. package/src/db/buckets.ts +2 -2
  262. package/src/db/repositories/dataColumnSidecar.ts +4 -2
  263. package/src/db/repositories/dataColumnSidecarArchive.ts +4 -2
  264. package/src/metrics/metrics/lodestar.ts +34 -0
  265. package/src/network/interface.ts +3 -2
  266. package/src/network/network.ts +7 -4
  267. package/src/network/processor/extractSlotRootFns.ts +32 -6
  268. package/src/network/processor/gossipHandlers.ts +310 -79
  269. package/src/network/processor/index.ts +304 -22
  270. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +3 -1
  271. package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +3 -0
  272. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +15 -3
  273. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +11 -0
  274. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +19 -3
  275. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +3 -1
  276. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +3 -12
  277. package/src/network/reqresp/types.ts +13 -5
  278. package/src/node/nodejs.ts +5 -2
  279. package/src/node/notifier.ts +7 -2
  280. package/src/sync/unknownBlock.ts +3 -3
  281. package/src/sync/utils/downloadByRange.ts +9 -7
  282. package/src/sync/utils/downloadByRoot.ts +16 -12
  283. package/src/util/blobs.ts +35 -15
  284. package/src/util/dataColumns.ts +69 -25
  285. package/src/util/execution.ts +49 -30
  286. package/src/util/sszBytes.ts +245 -3
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
2
  import { IBlockInput } from "../chain/blocks/blockInput/types.js";
3
+ import { PayloadEnvelopeInput } from "../chain/blocks/payloadEnvelopeInput/index.js";
3
4
  import { ChainEventEmitter } from "../chain/emitter.js";
4
5
  import { IExecutionEngine } from "../execution/index.js";
5
6
  import { Metrics } from "../metrics/index.js";
@@ -14,7 +15,10 @@ export declare enum DataColumnEngineResult {
14
15
  }
15
16
  export declare function getBlobSidecarsFromExecution(config: ChainForkConfig, executionEngine: IExecutionEngine, metrics: Metrics | null, emitter: ChainEventEmitter, blockInput: IBlockInput): Promise<void>;
16
17
  /**
17
- * Post fulu, call getBlobsV2 from execution engine once per slot whenever we see either beacon_block or data_column_sidecar gossip message
18
+ * Call getBlobsV2 from execution engine once per slot to fetch blobs and compute data columns.
19
+ *
20
+ * Post fulu, whenever we see either beacon_block or data_column_sidecar gossip message and data isn't complete.
21
+ * Post gloas, immediately when beacon block is successfully imported and PayloadEnvelopeInput is created.
18
22
  */
19
- export declare function getDataColumnSidecarsFromExecution(config: ChainForkConfig, executionEngine: IExecutionEngine, emitter: ChainEventEmitter, blockInput: IBlockInput, metrics: Metrics | null, blobAndProofBuffers?: Uint8Array[]): Promise<DataColumnEngineResult>;
23
+ export declare function getDataColumnSidecarsFromExecution(config: ChainForkConfig, executionEngine: IExecutionEngine, emitter: ChainEventEmitter, input: IBlockInput | PayloadEnvelopeInput, metrics: Metrics | null, blobAndProofBuffers?: Uint8Array[]): Promise<DataColumnEngineResult>;
20
24
  //# sourceMappingURL=execution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,EAAmB,WAAW,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAa,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAQ5C,oBAAY,sBAAsB;IAChC,OAAO,aAAa;IAEpB,gBAAgB,uBAAuB;IAEvC,mBAAmB,2BAA2B;IAE9C,YAAY,kBAAkB;IAE9B,eAAe,qBAAqB;IAEpC,WAAW,iBAAiB;IAC5B,MAAM,WAAW;CAClB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,WAAW,iBAqFxB;AAED;;GAEG;AACH,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,mBAAmB,CAAC,EAAE,UAAU,EAAE,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAkGjC"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,EAAmB,WAAW,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,oBAAoB,EAA6B,MAAM,+CAA+C,CAAC;AAC/G,OAAO,EAAa,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAS5C,oBAAY,sBAAsB;IAChC,OAAO,aAAa;IAEpB,gBAAgB,uBAAuB;IAEvC,mBAAmB,2BAA2B;IAE9C,YAAY,kBAAkB;IAE9B,eAAe,qBAAqB;IAEpC,WAAW,iBAAiB;IAC5B,MAAM,WAAW;CAClB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,WAAW,iBAqFxB;AAED;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,gBAAgB,EACjC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,WAAW,GAAG,oBAAoB,EACzC,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,mBAAmB,CAAC,EAAE,UAAU,EAAE,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAgHjC"}
@@ -1,11 +1,13 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { signedBlockToSignedHeader } from "@lodestar/state-transition";
3
- import { toHex } from "@lodestar/utils";
3
+ import { isGloasDataColumnSidecar } from "@lodestar/types";
4
+ import { fromHex, toHex } from "@lodestar/utils";
4
5
  import { isBlockInputBlobs, isBlockInputColumns } from "../chain/blocks/blockInput/blockInput.js";
5
6
  import { BlockInputSource } from "../chain/blocks/blockInput/types.js";
7
+ import { PayloadEnvelopeInput, PayloadEnvelopeInputSource } from "../chain/blocks/payloadEnvelopeInput/index.js";
6
8
  import { ChainEvent } from "../chain/emitter.js";
7
9
  import { computePreFuluKzgCommitmentsInclusionProof } from "./blobs.js";
8
- import { getCellsAndProofs, getDataColumnSidecarsFromBlock, getDataColumnSidecarsFromColumnSidecar, } from "./dataColumns.js";
10
+ import { getCellsAndProofs, getDataColumnSidecarsFromBlock, getDataColumnSidecarsFromColumnSidecar, getGloasDataColumnSidecars, } from "./dataColumns.js";
9
11
  export { DataColumnEngineResult };
10
12
  var DataColumnEngineResult;
11
13
  (function (DataColumnEngineResult) {
@@ -93,18 +95,22 @@ export async function getBlobSidecarsFromExecution(config, executionEngine, metr
93
95
  metrics?.gossipBlob.publishedFromEngine.inc(blobSidecars.length);
94
96
  }
95
97
  /**
96
- * Post fulu, call getBlobsV2 from execution engine once per slot whenever we see either beacon_block or data_column_sidecar gossip message
98
+ * Call getBlobsV2 from execution engine once per slot to fetch blobs and compute data columns.
99
+ *
100
+ * Post fulu, whenever we see either beacon_block or data_column_sidecar gossip message and data isn't complete.
101
+ * Post gloas, immediately when beacon block is successfully imported and PayloadEnvelopeInput is created.
97
102
  */
98
- export async function getDataColumnSidecarsFromExecution(config, executionEngine, emitter, blockInput, metrics, blobAndProofBuffers) {
99
- // If its not a column block input, exit
100
- if (!isBlockInputColumns(blockInput)) {
103
+ export async function getDataColumnSidecarsFromExecution(config, executionEngine, emitter, input, metrics, blobAndProofBuffers) {
104
+ const isPayloadInput = input instanceof PayloadEnvelopeInput;
105
+ // Pre gloas, ensure it's a column block input
106
+ if (!isPayloadInput && !isBlockInputColumns(input)) {
101
107
  return DataColumnEngineResult.PreFulu;
102
108
  }
103
109
  // If already have all columns, exit
104
- if (blockInput.hasAllData()) {
110
+ if (input.hasAllData()) {
105
111
  return DataColumnEngineResult.NotAttemptedFull;
106
112
  }
107
- const versionedHashes = blockInput.getVersionedHashes();
113
+ const versionedHashes = input.getVersionedHashes();
108
114
  // If there are no blobs in this block, exit
109
115
  if (versionedHashes.length === 0) {
110
116
  return DataColumnEngineResult.NotAttemptedNoBlobs;
@@ -112,7 +118,7 @@ export async function getDataColumnSidecarsFromExecution(config, executionEngine
112
118
  // Get blobs from execution engine
113
119
  metrics?.peerDas.getBlobsV2Requests.inc();
114
120
  const timer = metrics?.peerDas.getBlobsV2RequestDuration.startTimer();
115
- const blobs = await executionEngine.getBlobs(blockInput.forkName, versionedHashes, blobAndProofBuffers);
121
+ const blobs = await executionEngine.getBlobs(input.forkName, versionedHashes, blobAndProofBuffers);
116
122
  timer?.();
117
123
  // Execution engine was unable to find one or more blobs
118
124
  if (blobs === null) {
@@ -120,18 +126,21 @@ export async function getDataColumnSidecarsFromExecution(config, executionEngine
120
126
  }
121
127
  metrics?.peerDas.getBlobsV2Responses.inc();
122
128
  // Return if we received all data columns while waiting for getBlobs
123
- if (blockInput.hasAllData()) {
129
+ if (input.hasAllData()) {
124
130
  return DataColumnEngineResult.SuccessLate;
125
131
  }
126
132
  let dataColumnSidecars;
127
133
  const compTimer = metrics?.peerDas.dataColumnSidecarComputationTime.startTimer();
128
134
  try {
129
135
  const cellsAndProofs = await getCellsAndProofs(blobs);
130
- if (blockInput.hasBlock()) {
131
- dataColumnSidecars = getDataColumnSidecarsFromBlock(config, blockInput.getBlock(), cellsAndProofs);
136
+ if (isPayloadInput) {
137
+ dataColumnSidecars = getGloasDataColumnSidecars(input.slot, fromHex(input.blockRootHex), cellsAndProofs);
138
+ }
139
+ else if (input.hasBlock()) {
140
+ dataColumnSidecars = getDataColumnSidecarsFromBlock(config, input.getBlock(), cellsAndProofs);
132
141
  }
133
142
  else {
134
- const firstSidecar = blockInput.getAllColumns()[0];
143
+ const firstSidecar = input.getAllColumns()[0];
135
144
  dataColumnSidecars = getDataColumnSidecarsFromColumnSidecar(firstSidecar, cellsAndProofs);
136
145
  }
137
146
  }
@@ -139,32 +148,47 @@ export async function getDataColumnSidecarsFromExecution(config, executionEngine
139
148
  compTimer?.();
140
149
  }
141
150
  // Publish columns if and only if subscribed to them
142
- const previouslyMissingColumns = blockInput.getMissingSampledColumnMeta().missing;
151
+ const previouslyMissingColumns = input.getMissingSampledColumnMeta().missing;
143
152
  const sampledColumns = previouslyMissingColumns.map((columnIndex) => dataColumnSidecars[columnIndex]);
144
153
  // for columns that we already seen, it will be ignored through `ignoreDuplicatePublishError` gossip option
145
154
  emitter.emit(ChainEvent.publishDataColumns, sampledColumns);
146
155
  // TODO: Can we record dataColumns.sentPeersPerSubnet metric here somehow
147
- // add all sampled columns to the block input, even if we didn't sample them
156
+ // add all sampled columns to the input, even if we didn't sample them
148
157
  const seenTimestampSec = Date.now() / 1000;
149
158
  let alreadyAddedColumnsCount = 0;
150
159
  for (const columnSidecar of sampledColumns) {
151
- if (blockInput.hasColumn(columnSidecar.index)) {
160
+ if (input.hasColumn(columnSidecar.index)) {
152
161
  // columns may have been added while waiting
153
162
  alreadyAddedColumnsCount++;
154
163
  continue;
155
164
  }
156
- blockInput.addColumn({
157
- columnSidecar,
158
- blockRootHex: blockInput.blockRootHex,
159
- source: BlockInputSource.engine,
160
- seenTimestampSec,
161
- });
165
+ if (isPayloadInput) {
166
+ if (!isGloasDataColumnSidecar(columnSidecar)) {
167
+ throw new Error(`Expected gloas DataColumnSidecar for block ${input.blockRootHex}`);
168
+ }
169
+ input.addColumn({
170
+ columnSidecar,
171
+ source: PayloadEnvelopeInputSource.engine,
172
+ seenTimestampSec,
173
+ });
174
+ }
175
+ else {
176
+ if (isGloasDataColumnSidecar(columnSidecar)) {
177
+ throw new Error(`Expected fulu DataColumnSidecar for block ${input.blockRootHex}`);
178
+ }
179
+ input.addColumn({
180
+ columnSidecar,
181
+ blockRootHex: input.blockRootHex,
182
+ source: BlockInputSource.engine,
183
+ seenTimestampSec,
184
+ });
185
+ }
162
186
  if (emitter.listenerCount(routes.events.EventType.dataColumnSidecar)) {
163
187
  emitter.emit(routes.events.EventType.dataColumnSidecar, {
164
- blockRoot: blockInput.blockRootHex,
165
- slot: blockInput.slot,
188
+ blockRoot: input.blockRootHex,
189
+ slot: input.slot,
166
190
  index: columnSidecar.index,
167
- kzgCommitments: columnSidecar.kzgCommitments.map(toHex),
191
+ kzgCommitments: !isGloasDataColumnSidecar(columnSidecar) ? columnSidecar.kzgCommitments.map(toHex) : undefined,
168
192
  });
169
193
  }
170
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAC,gBAAgB,EAAc,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,UAAU,EAAoB,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAC,0CAA0C,EAAC,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC9B,sCAAsC,GACvC,MAAM,kBAAkB,CAAC;SAEd,sBAAsB;AAAlC,IAAY,sBAaX;AAbD,WAAY,sBAAsB;IAChC,8CAAoB,CAAA;IACpB,gEAAgE;IAChE,iEAAuC,CAAA;IACvC,0CAA0C;IAC1C,wEAA8C,CAAA;IAC9C,6DAA6D;IAC7D,wDAA8B,CAAA;IAC9B,6DAA6D;IAC7D,8DAAoC,CAAA;IACpC,0GAA0G;IAC1G,sDAA4B,CAAA;IAC5B,2CAAiB,CAAA;AAAC,CACpB,EAbY,sBAAsB,KAAtB,sBAAsB,QAajC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAuB,EACvB,eAAiC,EACjC,OAAuB,EACvB,OAA0B,EAC1B,UAAuB,EACvB;IACA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAuB,CAAC;IACpD,MAAM,QAAQ,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAEjD,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;IACxC,OAAO,EAAE,KAAK,CAAC,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,MAAM,eAAe;SAC1C,QAAQ,CACP,QAAQ,EACR,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC,aAAa,EAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CACjD;SACA,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACb,kGAAkG;QAClG,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IAAA,CACb,CAAC,CAAC;IAEL,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAEpC,MAAM,YAAY,GAAuB,EAAE,CAAC;IAC5C,2FAA2F;IAC3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;YAEnC,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,6DAA6D;gBAC7D,OAAO,EAAE,KAAK,CAAC,mCAAmC,CAAC,GAAG,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YAED,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;YACzC,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,YAAY,CAAC;YACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAChC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACnE,MAAM,WAAW,GAAsB;gBACrC,KAAK;gBACL,IAAI;gBACJ,QAAQ,EAAE,KAAK;gBACf,aAAa;gBACb,iGAAiG;gBACjG,2BAA2B,EAAE,0CAA0C,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC5G,iBAAiB,EAAE,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC;aAC5D,CAAC;YAEF,UAAU,CAAC,OAAO,CAAC;gBACjB,WAAW;gBACX,YAAY,EAAE,UAAU,CAAC,YAAY;gBACrC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;gBACnC,MAAM,EAAE,gBAAgB,CAAC,MAAM;aAChC,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;oBAChD,SAAS,EAAE,UAAU,CAAC,YAAY;oBAClC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,KAAK;oBACL,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;oBACnC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;iBAChD,CAAC,CAAC;YACL,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAC3D,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAAA,CAClE;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAuB,EACvB,eAAiC,EACjC,OAA0B,EAC1B,UAAuB,EACvB,OAAuB,EACvB,mBAAkC,EACD;IACjC,wCAAwC;IACxC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;QACrC,OAAO,sBAAsB,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,oCAAoC;IACpC,IAAI,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;QAC5B,OAAO,sBAAsB,CAAC,gBAAgB,CAAC;IACjD,CAAC;IAED,MAAM,eAAe,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAExD,4CAA4C;IAC5C,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,sBAAsB,CAAC,mBAAmB,CAAC;IACpD,CAAC;IAED,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,UAAU,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,CAC1C,UAAU,CAAC,QAAwB,EACnC,eAAe,EACf,mBAAmB,CACpB,CAAC;IACF,KAAK,EAAE,EAAE,CAAC;IAEV,wDAAwD;IACxD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,sBAAsB,CAAC,YAAY,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;IAE3C,oEAAoE;IACpE,IAAI,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;QAC5B,OAAO,sBAAsB,CAAC,WAAW,CAAC;IAC5C,CAAC;IAED,IAAI,kBAA2C,CAAC;IAChD,MAAM,SAAS,GAAG,OAAO,EAAE,OAAO,CAAC,gCAAgC,CAAC,UAAU,EAAE,CAAC;IACjF,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC1B,kBAAkB,GAAG,8BAA8B,CACjD,MAAM,EACN,UAAU,CAAC,QAAQ,EAA4B,EAC/C,cAAc,CACf,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,kBAAkB,GAAG,sCAAsC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;YAAS,CAAC;QACT,SAAS,EAAE,EAAE,CAAC;IAChB,CAAC;IAED,oDAAoD;IACpD,MAAM,wBAAwB,GAAG,UAAU,CAAC,2BAA2B,EAAE,CAAC,OAAO,CAAC;IAClF,MAAM,cAAc,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAEtG,2GAA2G;IAC3G,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAC5D,yEAAyE;IAEzE,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,4CAA4C;YAC5C,wBAAwB,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,UAAU,CAAC,SAAS,CAAC;YACnB,aAAa;YACb,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,gBAAgB;SACjB,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE;gBACtD,SAAS,EAAE,UAAU,CAAC,YAAY;gBAClC,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEhE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAC/B,EAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAC,EACjC,wBAAwB,CAAC,MAAM,GAAG,wBAAwB,CAC3D,CAAC;IACF,OAAO,sBAAsB,CAAC,eAAe,CAAC;AAAA,CAC/C"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { BLSSignature, CommitteeIndex, RootHex, Slot, ValidatorIndex } from "@lo
5
5
  export type BlockRootHex = RootHex;
6
6
  export type AttDataBase64 = string;
7
7
  export type CommitteeBitsBase64 = string;
8
+ /** `attestation.data.index` from gossip-serialized attestations / aggregates */
9
+ export type AttDataIndex = number;
8
10
  export declare const ROOT_SIZE = 32;
9
11
  /**
10
12
  * Extract slot from attestation serialized bytes.
@@ -52,9 +54,17 @@ export declare function getSignatureFromAttestationSerialized(data: Uint8Array):
52
54
  export declare function getSlotFromSingleAttestationSerialized(data: Uint8Array): Slot | null;
53
55
  /**
54
56
  * Extract committee index from SingleAttestation serialized bytes.
55
- * Return null if data is not long enough to extract slot.
57
+ * Return null if data is not long enough to extract the committee index.
56
58
  */
57
59
  export declare function getCommitteeIndexFromSingleAttestationSerialized(fork: ForkName, data: Uint8Array): CommitteeIndex | null;
60
+ /**
61
+ * Extract data index from SingleAttestation serialized bytes.
62
+ * Post-gloas, `data.index` field is repurposed:
63
+ * - 0 - payload was not available (or attestation is same-slot, where availability is not yet known)
64
+ * - 1 - payload was available
65
+ * Return null if data is not long enough to extract the index.
66
+ */
67
+ export declare function getDataIndexFromSingleAttestationSerialized(fork: ForkName, data: Uint8Array): AttDataIndex | null;
58
68
  /**
59
69
  * Extract attester index from SingleAttestation serialized bytes.
60
70
  * Return null if data is not long enough to extract index.
@@ -87,6 +97,12 @@ export declare function getSlotFromSignedAggregateAndProofSerialized(data: Uint8
87
97
  * This works for both phase + electra
88
98
  */
89
99
  export declare function getBlockRootFromSignedAggregateAndProofSerialized(data: Uint8Array): BlockRootHex | null;
100
+ /**
101
+ * Extract data index from signed aggregate and proof serialized bytes.
102
+ * Return null if data is not long enough to extract the index.
103
+ * This works for both phase0 + electra (index is in attestation data at the same offset).
104
+ */
105
+ export declare function getDataIndexFromSignedAggregateAndProofSerialized(data: Uint8Array): AttDataIndex | null;
90
106
  /**
91
107
  * Extract AttestationData base64 from SignedAggregateAndProof for electra
92
108
  * Return null if data is not long enough
@@ -103,6 +119,8 @@ export declare function getCommitteeBitsFromSignedAggregateAndProofElectra(data:
103
119
  */
104
120
  export declare function getAttDataFromSignedAggregateAndProofPhase0(data: Uint8Array): AttDataBase64 | null;
105
121
  export declare function getSlotFromSignedBeaconBlockSerialized(data: Uint8Array): Slot | null;
122
+ export declare function getParentRootFromSignedBeaconBlockSerialized(data: Uint8Array): RootHex | null;
123
+ export declare function getParentBlockHashFromGloasSignedBeaconBlockSerialized(data: Uint8Array): RootHex | null;
106
124
  export declare function getSlotFromBlobSidecarSerialized(data: Uint8Array): Slot | null;
107
125
  export declare function getSlotFromDataColumnSidecarSerialized(data: Uint8Array, fork: ForkName): Slot | null;
108
126
  export declare function getBeaconBlockRootFromDataColumnSidecarSerialized(data: Uint8Array): RootHex | null;
@@ -110,5 +128,11 @@ export declare function getSlotFromExecutionPayloadEnvelopeSerialized(data: Uint
110
128
  export declare function getBeaconBlockRootFromExecutionPayloadEnvelopeSerialized(data: Uint8Array): RootHex | null;
111
129
  export declare function getLastProcessedSlotFromBeaconStateSerialized(data: Uint8Array): Slot | null;
112
130
  export declare function getSlotFromBeaconStateSerialized(data: Uint8Array): Slot | null;
131
+ export declare function getSlotFromPayloadAttestationMessageSerialized(data: Uint8Array): Slot | null;
132
+ export declare function getPayloadPresentFromPayloadAttestationMessageSerialized(data: Uint8Array): boolean | null;
133
+ export declare function getBlockRootFromPayloadAttestationMessageSerialized(data: Uint8Array): RootHex | null;
134
+ export declare function getSlotFromSignedExecutionPayloadBidSerialized(data: Uint8Array): Slot | null;
135
+ export declare function getParentBlockHashFromSignedExecutionPayloadBidSerialized(data: Uint8Array): RootHex | null;
136
+ export declare function getParentBlockRootFromSignedExecutionPayloadBidSerialized(data: Uint8Array): RootHex | null;
113
137
  export declare function getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(config: ChainForkConfig, blockBytes: Uint8Array): number;
114
138
  //# sourceMappingURL=sszBytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sszBytes.d.ts","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAwC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAGL,QAAQ,EAMT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAM,MAAM,iBAAiB,CAAC;AAEjG,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AA+BzC,eAAO,MAAM,SAAS,KAAK,CAAC;AAoB5B;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAM9E;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAS3F;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAQ1F;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAItG;AAED;;GAEG;AACH,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAIpG;AAED;;GAEG;AACH,wBAAgB,2CAA2C,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAIjH;AAED;;;;GAIG;AACH,wBAAgB,2CAA2C,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAS7F;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAQ3F;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAMpF;AAED;;;GAGG;AACH,wBAAgB,gDAAgD,CAC9D,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,UAAU,GACf,cAAc,GAAG,IAAI,CAcvB;AAED;;;GAGG;AACH,wBAAgB,+CAA+C,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAMvG;AAED;;;GAGG;AACH,wBAAgB,2CAA2C,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CASjG;AAED;;;GAGG;AACH,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAUhG;AAED;;;GAGG;AACH,wBAAgB,2CAA2C,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAMjG;AAiBD;;;;GAIG;AACH,wBAAgB,4CAA4C,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAM1F;AAED;;;;GAIG;AACH,wBAAgB,iDAAiD,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAYvG;AAED;;;GAGG;AACH,wBAAgB,4CAA4C,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CASnG;AAED;;;GAGG;AACH,wBAAgB,kDAAkD,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAU/G;AAED;;;GAGG;AACH,wBAAgB,2CAA2C,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAalG;AAmBD,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAMpF;AAcD,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAM9E;AAyBD,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAUpG;AAED,wBAAgB,iDAAiD,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,IAAI,CAYlG;AA8BD,wBAAgB,6CAA6C,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAM3F;AAED,wBAAgB,wDAAwD,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,IAAI,CAYzG;AAeD,wBAAgB,6CAA6C,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAM3F;AAGD,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAM9E;AA6BD,wBAAgB,yDAAyD,CACvE,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,UAAU,GACrB,MAAM,CA+BR"}
1
+ {"version":3,"file":"sszBytes.d.ts","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ const SIGNATURE_SIZE = 96;
38
38
  const SINGLE_ATTESTATION_ATTDATA_OFFSET = 8 + 8;
39
39
  const SINGLE_ATTESTATION_SLOT_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET;
40
40
  const SINGLE_ATTESTATION_COMMITTEE_INDEX_OFFSET = 0;
41
+ const SINGLE_ATTESTATION_DATA_INDEX_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET + 8;
41
42
  const SINGLE_ATTESTATION_ATTESTER_INDEX_OFFSET = 8;
42
43
  const SINGLE_ATTESTATION_BEACON_BLOCK_ROOT_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET + 8 + 8;
43
44
  const SINGLE_ATTESTATION_SIGNATURE_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET + ATTESTATION_DATA_SIZE;
@@ -140,7 +141,7 @@ export function getSlotFromSingleAttestationSerialized(data) {
140
141
  }
141
142
  /**
142
143
  * Extract committee index from SingleAttestation serialized bytes.
143
- * Return null if data is not long enough to extract slot.
144
+ * Return null if data is not long enough to extract the committee index.
144
145
  */
145
146
  export function getCommitteeIndexFromSingleAttestationSerialized(fork, data) {
146
147
  if (isForkPostElectra(fork)) {
@@ -154,6 +155,25 @@ export function getCommitteeIndexFromSingleAttestationSerialized(fork, data) {
154
155
  }
155
156
  return getIndexFromOffset(data, VARIABLE_FIELD_OFFSET + SLOT_SIZE);
156
157
  }
158
+ /**
159
+ * Extract data index from SingleAttestation serialized bytes.
160
+ * Post-gloas, `data.index` field is repurposed:
161
+ * - 0 - payload was not available (or attestation is same-slot, where availability is not yet known)
162
+ * - 1 - payload was available
163
+ * Return null if data is not long enough to extract the index.
164
+ */
165
+ export function getDataIndexFromSingleAttestationSerialized(fork, data) {
166
+ if (isForkPostElectra(fork)) {
167
+ if (data.length !== SINGLE_ATTESTATION_SIZE) {
168
+ return null;
169
+ }
170
+ return getIndexFromOffset(data, SINGLE_ATTESTATION_DATA_INDEX_OFFSET);
171
+ }
172
+ if (data.length < VARIABLE_FIELD_OFFSET + SLOT_SIZE + COMMITTEE_INDEX_SIZE) {
173
+ return null;
174
+ }
175
+ return getIndexFromOffset(data, VARIABLE_FIELD_OFFSET + SLOT_SIZE);
176
+ }
157
177
  /**
158
178
  * Extract attester index from SingleAttestation serialized bytes.
159
179
  * Return null if data is not long enough to extract index.
@@ -208,6 +228,7 @@ export function getSignatureFromSingleAttestationSerialized(data) {
208
228
  const AGGREGATE_AND_PROOF_OFFSET = 4 + 96;
209
229
  const AGGREGATE_OFFSET = AGGREGATE_AND_PROOF_OFFSET + 8 + 4 + 96;
210
230
  const SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET = AGGREGATE_OFFSET + VARIABLE_FIELD_OFFSET;
231
+ const SIGNED_AGGREGATE_AND_PROOF_ATTESTATION_DATA_INDEX_OFFSET = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + SLOT_SIZE;
211
232
  const SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + 8 + 8;
212
233
  /**
213
234
  * Extract slot from signed aggregate and proof serialized bytes
@@ -232,6 +253,17 @@ export function getBlockRootFromSignedAggregateAndProofSerialized(data) {
232
253
  blockRootBuf.set(data.subarray(SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET, SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET + ROOT_SIZE));
233
254
  return "0x" + blockRootBuf.toString("hex");
234
255
  }
256
+ /**
257
+ * Extract data index from signed aggregate and proof serialized bytes.
258
+ * Return null if data is not long enough to extract the index.
259
+ * This works for both phase0 + electra (index is in attestation data at the same offset).
260
+ */
261
+ export function getDataIndexFromSignedAggregateAndProofSerialized(data) {
262
+ if (data.length < SIGNED_AGGREGATE_AND_PROOF_ATTESTATION_DATA_INDEX_OFFSET + COMMITTEE_INDEX_SIZE) {
263
+ return null;
264
+ }
265
+ return getIndexFromOffset(data, SIGNED_AGGREGATE_AND_PROOF_ATTESTATION_DATA_INDEX_OFFSET);
266
+ }
235
267
  /**
236
268
  * Extract AttestationData base64 from SignedAggregateAndProof for electra
237
269
  * Return null if data is not long enough
@@ -286,12 +318,61 @@ export function getAttDataFromSignedAggregateAndProofPhase0(data) {
286
318
  * ```
287
319
  */
288
320
  const SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE;
321
+ // proposer_index is ValidatorIndex = uint64 = 8 bytes
322
+ const PARENT_ROOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE + SLOT_SIZE + 8;
289
323
  export function getSlotFromSignedBeaconBlockSerialized(data) {
290
324
  if (data.length < SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK + SLOT_SIZE) {
291
325
  return null;
292
326
  }
293
327
  return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK);
294
328
  }
329
+ export function getParentRootFromSignedBeaconBlockSerialized(data) {
330
+ if (data.length < PARENT_ROOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK + ROOT_SIZE) {
331
+ return null;
332
+ }
333
+ blockRootBuf.set(data.subarray(PARENT_ROOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK, PARENT_ROOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK + ROOT_SIZE));
334
+ return `0x${blockRootBuf.toString("hex")}`;
335
+ }
336
+ /**
337
+ * Extract parentBlockHash from a GLOAS SignedBeaconBlock by navigating the SSZ offset pointer
338
+ * to the embedded SignedExecutionPayloadBid.
339
+ *
340
+ * Layout (bytes from start of SignedBeaconBlock):
341
+ * [0..4) message offset
342
+ * [4..100) signature (96 B)
343
+ * [100..184) BeaconBlock fixed section: slot(8)+proposer_index(8)+parent_root(32)+state_root(32)+body_offset(4)
344
+ * [184..) BeaconBlockBody
345
+ *
346
+ * BeaconBlockBody (GLOAS) fixed section before signedExecutionPayloadBid offset pointer:
347
+ * randaoReveal(96) + eth1Data(72) + graffiti(32)
348
+ * + proposerSlashings(4) + attesterSlashings(4) + attestations(4) + deposits(4) + voluntaryExits(4)
349
+ * + syncAggregate(160) + blsToExecutionChanges(4) = 384 bytes
350
+ *
351
+ * The 4-byte pointer at byte 568 (= 184+384) gives the offset of SignedExecutionPayloadBid
352
+ * within BeaconBlockBody. parentBlockHash is at that bid's byte 100 (after offset+sig).
353
+ */
354
+ // BeaconBlock body starts after: msg_offset(4) + sig(96) + slot(8) + proposer_index(8) + parent_root(32) + state_root(32) + body_offset_ptr(4)
355
+ const GLOAS_BODY_START_IN_SIGNED_BEACON_BLOCK = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE + SLOT_SIZE + 8 + ROOT_SIZE + ROOT_SIZE + VARIABLE_FIELD_OFFSET; // = 184
356
+ const GLOAS_SIGNED_BID_OFFSET_POINTER_IN_BODY = 96 + 72 + 32 + 4 + 4 + 4 + 4 + 4 + 160 + 4; // = 384
357
+ const GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK = GLOAS_BODY_START_IN_SIGNED_BEACON_BLOCK + GLOAS_SIGNED_BID_OFFSET_POINTER_IN_BODY; // = 568
358
+ // Within SignedExecutionPayloadBid, parentBlockHash is at byte 100 (msg_offset:4 + sig:96)
359
+ const PARENT_BLOCK_HASH_OFFSET_IN_SIGNED_BID = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE; // = 100
360
+ // CAUTION: update offsets if BeaconBlockBody fixed fields change after Gloas
361
+ export function getParentBlockHashFromGloasSignedBeaconBlockSerialized(data) {
362
+ if (data.length < GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK + VARIABLE_FIELD_OFFSET) {
363
+ return null;
364
+ }
365
+ const bidOffset = data[GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK] |
366
+ (data[GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK + 1] << 8) |
367
+ (data[GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK + 2] << 16) |
368
+ (data[GLOAS_SIGNED_BID_OFFSET_POINTER_IN_SIGNED_BEACON_BLOCK + 3] << 24);
369
+ const parentBlockHashStart = GLOAS_BODY_START_IN_SIGNED_BEACON_BLOCK + bidOffset + PARENT_BLOCK_HASH_OFFSET_IN_SIGNED_BID;
370
+ if (data.length < parentBlockHashStart + ROOT_SIZE) {
371
+ return null;
372
+ }
373
+ blockRootBuf.set(data.subarray(parentBlockHashStart, parentBlockHashStart + ROOT_SIZE));
374
+ return `0x${blockRootBuf.toString("hex")}`;
375
+ }
295
376
  /**
296
377
  * class BlobSidecar(Container):
297
378
  * index: BlobIndex [fixed - 8 bytes ],
@@ -407,6 +488,79 @@ export function getSlotFromBeaconStateSerialized(data) {
407
488
  }
408
489
  return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_BEACON_STATE);
409
490
  }
491
+ /**
492
+ * PayloadAttestationMessage: {
493
+ * validatorIndex: ValidatorIndex (8 bytes)
494
+ * data: PayloadAttestationData {
495
+ * beaconBlockRoot: Root (32 bytes) ← offset 8
496
+ * slot: Slot (8 bytes) ← offset 40
497
+ * payloadPresent: Boolean (1 byte)
498
+ * blobDataAvailable: Boolean (1 byte)
499
+ * }
500
+ * signature: BLSSignature (96 bytes)
501
+ * }
502
+ * Fully fixed-size container, no offset table.
503
+ */
504
+ const PAYLOAD_ATTESTATION_MESSAGE_BEACON_BLOCK_ROOT_OFFSET = 8;
505
+ const PAYLOAD_ATTESTATION_MESSAGE_SLOT_OFFSET = 8 + ROOT_SIZE; // 40
506
+ const PAYLOAD_ATTESTATION_MESSAGE_PAYLOAD_PRESENT_OFFSET = PAYLOAD_ATTESTATION_MESSAGE_SLOT_OFFSET + SLOT_SIZE; // 48
507
+ export function getSlotFromPayloadAttestationMessageSerialized(data) {
508
+ if (data.length < PAYLOAD_ATTESTATION_MESSAGE_SLOT_OFFSET + SLOT_SIZE) {
509
+ return null;
510
+ }
511
+ return getSlotFromOffset(data, PAYLOAD_ATTESTATION_MESSAGE_SLOT_OFFSET);
512
+ }
513
+ export function getPayloadPresentFromPayloadAttestationMessageSerialized(data) {
514
+ if (data.length < PAYLOAD_ATTESTATION_MESSAGE_PAYLOAD_PRESENT_OFFSET + 1) {
515
+ return null;
516
+ }
517
+ return data[PAYLOAD_ATTESTATION_MESSAGE_PAYLOAD_PRESENT_OFFSET] !== 0;
518
+ }
519
+ export function getBlockRootFromPayloadAttestationMessageSerialized(data) {
520
+ if (data.length < PAYLOAD_ATTESTATION_MESSAGE_BEACON_BLOCK_ROOT_OFFSET + ROOT_SIZE) {
521
+ return null;
522
+ }
523
+ blockRootBuf.set(data.subarray(PAYLOAD_ATTESTATION_MESSAGE_BEACON_BLOCK_ROOT_OFFSET, PAYLOAD_ATTESTATION_MESSAGE_BEACON_BLOCK_ROOT_OFFSET + ROOT_SIZE));
524
+ return `0x${blockRootBuf.toString("hex")}`;
525
+ }
526
+ /**
527
+ * SignedExecutionPayloadBid: {message: ExecutionPayloadBid (variable), signature: BLSSignature (96 bytes)}
528
+ * Fixed part: 4-byte offset + 96-byte signature = 100 bytes
529
+ * message data starts at byte 100
530
+ *
531
+ * ExecutionPayloadBid fixed fields (in order):
532
+ * parentBlockHash: Bytes32 (32 bytes)
533
+ * parentBlockRoot: Root (32 bytes)
534
+ * blockHash: Bytes32 (32 bytes)
535
+ * prevRandao: Bytes32 (32 bytes)
536
+ * feeRecipient: ExecutionAddress(20 bytes)
537
+ * gasLimit: UintBn64 (8 bytes)
538
+ * builderIndex: BuilderIndex (8 bytes)
539
+ * slot: Slot (8 bytes) ← absolute offset 264
540
+ */
541
+ const SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE; // 100
542
+ const SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_ROOT_OFFSET = SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET + ROOT_SIZE; // 132
543
+ const SIGNED_EXECUTION_PAYLOAD_BID_SLOT_OFFSET = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE + 32 + 32 + 32 + 32 + 20 + 8 + 8; // 264
544
+ export function getSlotFromSignedExecutionPayloadBidSerialized(data) {
545
+ if (data.length < SIGNED_EXECUTION_PAYLOAD_BID_SLOT_OFFSET + SLOT_SIZE) {
546
+ return null;
547
+ }
548
+ return getSlotFromOffset(data, SIGNED_EXECUTION_PAYLOAD_BID_SLOT_OFFSET);
549
+ }
550
+ export function getParentBlockHashFromSignedExecutionPayloadBidSerialized(data) {
551
+ if (data.length < SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET + ROOT_SIZE) {
552
+ return null;
553
+ }
554
+ blockRootBuf.set(data.subarray(SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET, SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_HASH_OFFSET + ROOT_SIZE));
555
+ return `0x${blockRootBuf.toString("hex")}`;
556
+ }
557
+ export function getParentBlockRootFromSignedExecutionPayloadBidSerialized(data) {
558
+ if (data.length < SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_ROOT_OFFSET + ROOT_SIZE) {
559
+ return null;
560
+ }
561
+ blockRootBuf.set(data.subarray(SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_ROOT_OFFSET, SIGNED_EXECUTION_PAYLOAD_BID_PARENT_BLOCK_ROOT_OFFSET + ROOT_SIZE));
562
+ return `0x${blockRootBuf.toString("hex")}`;
563
+ }
410
564
  /**
411
565
  * Read only the first 4 bytes of Slot, max value is 4,294,967,295 will be reached 1634 years after genesis
412
566
  *
@@ -436,7 +590,40 @@ export function getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(config
436
590
  throw new Error("Can not parse the slot from block bytes");
437
591
  if (config.getForkSeq(slot) < ForkSeq.deneb)
438
592
  return 0;
439
- const { SignedBeaconBlock, BeaconBlock, BeaconBlockBody, KZGCommitment } = ssz[config.getForkName(slot)];
593
+ const forkName = config.getForkName(slot);
594
+ if (isForkPostGloas(forkName)) {
595
+ // Gloas stores commitments under signedExecutionPayloadBid.message.blobKzgCommitments.
596
+ // Navigate the offset chain: SignedBeaconBlock → message → body → signedExecutionPayloadBid → message → blobKzgCommitments
597
+ const { SignedBeaconBlock: GloasSignedBlock, BeaconBlock: GloasBlock, BeaconBlockBody: GloasBody } = ssz[forkName];
598
+ const { SignedExecutionPayloadBid, ExecutionPayloadBid } = ssz[forkName];
599
+ const commitmentSize = ssz.deneb.KZGCommitment.fixedSize;
600
+ const view = new DataView(blockBytes.buffer, blockBytes.byteOffset, blockBytes.byteLength);
601
+ const signedBlockRanges = GloasSignedBlock.getFieldRanges(view, 0, blockBytes.length);
602
+ const messageIdx = Object.keys(GloasSignedBlock.fields).indexOf("message");
603
+ const messageRange = signedBlockRanges[messageIdx];
604
+ const blockRanges = GloasBlock.getFieldRanges(view, messageRange.start, messageRange.end);
605
+ const bodyIdx = Object.keys(GloasBlock.fields).indexOf("body");
606
+ const bodyRange = blockRanges[bodyIdx];
607
+ const bodyStart = messageRange.start + bodyRange.start;
608
+ const bodyEnd = messageRange.start + bodyRange.end;
609
+ const bodyRanges = GloasBody.getFieldRanges(view, bodyStart, bodyEnd);
610
+ const bidIdx = Object.keys(GloasBody.fields).indexOf("signedExecutionPayloadBid");
611
+ const bidRange = bodyRanges[bidIdx];
612
+ const bidStart = bodyStart + bidRange.start;
613
+ const bidEnd = bodyStart + bidRange.end;
614
+ const bidRanges = SignedExecutionPayloadBid.getFieldRanges(view, bidStart, bidEnd);
615
+ const bidMsgIdx = Object.keys(SignedExecutionPayloadBid.fields).indexOf("message");
616
+ const bidMsgRange = bidRanges[bidMsgIdx];
617
+ const bidMsgStart = bidStart + bidMsgRange.start;
618
+ const bidMsgEnd = bidStart + bidMsgRange.end;
619
+ const execBidRanges = ExecutionPayloadBid.getFieldRanges(view, bidMsgStart, bidMsgEnd);
620
+ const commitmentsIdx = Object.keys(ExecutionPayloadBid.fields).indexOf("blobKzgCommitments");
621
+ const commitmentsRange = execBidRanges[commitmentsIdx];
622
+ const start = bidMsgStart + commitmentsRange.start;
623
+ const end = bidMsgStart + commitmentsRange.end;
624
+ return Math.round(((end > blockBytes.byteLength ? blockBytes.byteLength : end) - start) / commitmentSize);
625
+ }
626
+ const { SignedBeaconBlock, BeaconBlock, BeaconBlockBody, KZGCommitment } = ssz[forkName];
440
627
  const view = new DataView(blockBytes.buffer, blockBytes.byteOffset, blockBytes.byteLength);
441
628
  const singedBlockFieldRanges = SignedBeaconBlock.getFieldRanges(view, 0, blockBytes.length);
442
629
  const messageIndex = Object.keys(SignedBeaconBlock.fields).indexOf("message");