@lodestar/beacon-node 1.51.0-dev.e521668760 → 1.51.0-dev.f39fad29a1

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 (253) hide show
  1. package/lib/api/impl/api.js +1 -1
  2. package/lib/api/impl/api.js.map +1 -1
  3. package/lib/api/impl/beacon/blocks/index.d.ts +2 -1
  4. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/blocks/index.js +12 -7
  6. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  7. package/lib/api/impl/beacon/index.d.ts +2 -1
  8. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  9. package/lib/api/impl/beacon/index.js +2 -2
  10. package/lib/api/impl/beacon/index.js.map +1 -1
  11. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/state/index.js +8 -2
  13. package/lib/api/impl/beacon/state/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/utils.d.ts +2 -1
  15. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  16. package/lib/api/impl/beacon/state/utils.js +17 -9
  17. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  18. package/lib/api/impl/debug/index.d.ts.map +1 -1
  19. package/lib/api/impl/debug/index.js +3 -0
  20. package/lib/api/impl/debug/index.js.map +1 -1
  21. package/lib/api/impl/validator/index.d.ts.map +1 -1
  22. package/lib/api/impl/validator/index.js +102 -10
  23. package/lib/api/impl/validator/index.js.map +1 -1
  24. package/lib/api/options.d.ts +2 -0
  25. package/lib/api/options.d.ts.map +1 -1
  26. package/lib/api/options.js +1 -0
  27. package/lib/api/options.js.map +1 -1
  28. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  29. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -58
  30. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  31. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  32. package/lib/chain/blocks/importBlock.js +3 -2
  33. package/lib/chain/blocks/importBlock.js.map +1 -1
  34. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  35. package/lib/chain/blocks/importExecutionPayload.js +50 -2
  36. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  37. package/lib/chain/blocks/types.d.ts +4 -0
  38. package/lib/chain/blocks/types.d.ts.map +1 -1
  39. package/lib/chain/blocks/types.js +5 -0
  40. package/lib/chain/blocks/types.js.map +1 -1
  41. package/lib/chain/chain.d.ts +2 -1
  42. package/lib/chain/chain.d.ts.map +1 -1
  43. package/lib/chain/chain.js +4 -1
  44. package/lib/chain/chain.js.map +1 -1
  45. package/lib/chain/errors/executionPayloadBid.d.ts +11 -1
  46. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  47. package/lib/chain/errors/executionPayloadBid.js +2 -0
  48. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  49. package/lib/chain/errors/inclusionList.d.ts +60 -0
  50. package/lib/chain/errors/inclusionList.d.ts.map +1 -0
  51. package/lib/chain/errors/inclusionList.js +19 -0
  52. package/lib/chain/errors/inclusionList.js.map +1 -0
  53. package/lib/chain/errors/index.d.ts +1 -0
  54. package/lib/chain/errors/index.d.ts.map +1 -1
  55. package/lib/chain/errors/index.js +1 -0
  56. package/lib/chain/errors/index.js.map +1 -1
  57. package/lib/chain/interface.d.ts +2 -1
  58. package/lib/chain/interface.d.ts.map +1 -1
  59. package/lib/chain/interface.js.map +1 -1
  60. package/lib/chain/opPools/inclusionListStore.d.ts +63 -0
  61. package/lib/chain/opPools/inclusionListStore.d.ts.map +1 -0
  62. package/lib/chain/opPools/inclusionListStore.js +171 -0
  63. package/lib/chain/opPools/inclusionListStore.js.map +1 -0
  64. package/lib/chain/opPools/index.d.ts +1 -0
  65. package/lib/chain/opPools/index.d.ts.map +1 -1
  66. package/lib/chain/opPools/index.js +1 -0
  67. package/lib/chain/opPools/index.js.map +1 -1
  68. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -1
  69. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  70. package/lib/chain/produceBlock/produceBlockBody.js +30 -10
  71. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  72. package/lib/chain/regen/interface.d.ts +1 -1
  73. package/lib/chain/regen/interface.d.ts.map +1 -1
  74. package/lib/chain/regen/interface.js +1 -1
  75. package/lib/chain/regen/interface.js.map +1 -1
  76. package/lib/chain/validation/executionPayloadBid.d.ts +0 -15
  77. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  78. package/lib/chain/validation/executionPayloadBid.js +24 -145
  79. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  80. package/lib/chain/validation/inclusionList.d.ts +14 -0
  81. package/lib/chain/validation/inclusionList.d.ts.map +1 -0
  82. package/lib/chain/validation/inclusionList.js +150 -0
  83. package/lib/chain/validation/inclusionList.js.map +1 -0
  84. package/lib/chain/validation/index.d.ts +1 -0
  85. package/lib/chain/validation/index.d.ts.map +1 -1
  86. package/lib/chain/validation/index.js +1 -0
  87. package/lib/chain/validation/index.js.map +1 -1
  88. package/lib/db/beacon.d.ts.map +1 -1
  89. package/lib/db/beacon.js +2 -0
  90. package/lib/db/beacon.js.map +1 -1
  91. package/lib/execution/builder/validateBid.d.ts.map +1 -1
  92. package/lib/execution/builder/validateBid.js +14 -1
  93. package/lib/execution/builder/validateBid.js.map +1 -1
  94. package/lib/execution/engine/blobVersionedHashes.d.ts +1 -1
  95. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -1
  96. package/lib/execution/engine/blobVersionedHashes.js.map +1 -1
  97. package/lib/execution/engine/disabled.d.ts +1 -0
  98. package/lib/execution/engine/disabled.d.ts.map +1 -1
  99. package/lib/execution/engine/disabled.js +3 -0
  100. package/lib/execution/engine/disabled.js.map +1 -1
  101. package/lib/execution/engine/http.d.ts +8 -2
  102. package/lib/execution/engine/http.d.ts.map +1 -1
  103. package/lib/execution/engine/http.js +27 -4
  104. package/lib/execution/engine/http.js.map +1 -1
  105. package/lib/execution/engine/interface.d.ts +11 -2
  106. package/lib/execution/engine/interface.d.ts.map +1 -1
  107. package/lib/execution/engine/interface.js.map +1 -1
  108. package/lib/execution/engine/jsonRpcTransport.d.ts +3 -2
  109. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -1
  110. package/lib/execution/engine/jsonRpcTransport.js +33 -9
  111. package/lib/execution/engine/jsonRpcTransport.js.map +1 -1
  112. package/lib/execution/engine/mock.d.ts +1 -0
  113. package/lib/execution/engine/mock.d.ts.map +1 -1
  114. package/lib/execution/engine/mock.js +31 -7
  115. package/lib/execution/engine/mock.js.map +1 -1
  116. package/lib/execution/engine/payloadIdCache.d.ts +5 -3
  117. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  118. package/lib/execution/engine/payloadIdCache.js +15 -4
  119. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  120. package/lib/execution/engine/restTransport.d.ts +2 -1
  121. package/lib/execution/engine/restTransport.d.ts.map +1 -1
  122. package/lib/execution/engine/restTransport.js +3 -0
  123. package/lib/execution/engine/restTransport.js.map +1 -1
  124. package/lib/execution/engine/sszTypes.d.ts +38 -38
  125. package/lib/execution/engine/transport.d.ts +5 -2
  126. package/lib/execution/engine/transport.d.ts.map +1 -1
  127. package/lib/execution/engine/types.d.ts +25 -1
  128. package/lib/execution/engine/types.d.ts.map +1 -1
  129. package/lib/execution/engine/types.js +17 -4
  130. package/lib/execution/engine/types.js.map +1 -1
  131. package/lib/index.d.ts +1 -0
  132. package/lib/index.d.ts.map +1 -1
  133. package/lib/index.js +2 -0
  134. package/lib/index.js.map +1 -1
  135. package/lib/metrics/metrics/beacon.d.ts +16 -0
  136. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  137. package/lib/metrics/metrics/beacon.js +35 -0
  138. package/lib/metrics/metrics/beacon.js.map +1 -1
  139. package/lib/metrics/metrics/lodestar.d.ts +12 -0
  140. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  141. package/lib/metrics/metrics/lodestar.js +25 -0
  142. package/lib/metrics/metrics/lodestar.js.map +1 -1
  143. package/lib/network/gossip/interface.d.ts +8 -2
  144. package/lib/network/gossip/interface.d.ts.map +1 -1
  145. package/lib/network/gossip/interface.js +1 -0
  146. package/lib/network/gossip/interface.js.map +1 -1
  147. package/lib/network/gossip/topic.d.ts +13 -5
  148. package/lib/network/gossip/topic.d.ts.map +1 -1
  149. package/lib/network/gossip/topic.js +13 -1
  150. package/lib/network/gossip/topic.js.map +1 -1
  151. package/lib/network/interface.d.ts +2 -1
  152. package/lib/network/interface.d.ts.map +1 -1
  153. package/lib/network/network.d.ts +2 -1
  154. package/lib/network/network.d.ts.map +1 -1
  155. package/lib/network/network.js +5 -0
  156. package/lib/network/network.js.map +1 -1
  157. package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +1 -1
  158. package/lib/network/peers/utils/enrSubnetsDeserialize.js +5 -2
  159. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  160. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  161. package/lib/network/processor/gossipHandlers.js +67 -19
  162. package/lib/network/processor/gossipHandlers.js.map +1 -1
  163. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  164. package/lib/network/processor/gossipQueues/index.js +6 -0
  165. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  166. package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
  167. package/lib/network/processor/gossipValidatorFn.js +5 -1
  168. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  169. package/lib/network/processor/index.d.ts +5 -0
  170. package/lib/network/processor/index.d.ts.map +1 -1
  171. package/lib/network/processor/index.js +37 -26
  172. package/lib/network/processor/index.js.map +1 -1
  173. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  174. package/lib/network/reqresp/ReqRespBeaconNode.js +6 -0
  175. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  176. package/lib/network/reqresp/handlers/inclusionListsByIndices.d.ts +10 -0
  177. package/lib/network/reqresp/handlers/inclusionListsByIndices.d.ts.map +1 -0
  178. package/lib/network/reqresp/handlers/inclusionListsByIndices.js +30 -0
  179. package/lib/network/reqresp/handlers/inclusionListsByIndices.js.map +1 -0
  180. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  181. package/lib/network/reqresp/handlers/index.js +5 -0
  182. package/lib/network/reqresp/handlers/index.js.map +1 -1
  183. package/lib/network/reqresp/protocols.d.ts +1 -0
  184. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  185. package/lib/network/reqresp/protocols.js +5 -0
  186. package/lib/network/reqresp/protocols.js.map +1 -1
  187. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  188. package/lib/network/reqresp/rateLimit.js +4 -0
  189. package/lib/network/reqresp/rateLimit.js.map +1 -1
  190. package/lib/network/reqresp/types.d.ts +5 -2
  191. package/lib/network/reqresp/types.d.ts.map +1 -1
  192. package/lib/network/reqresp/types.js +3 -0
  193. package/lib/network/reqresp/types.js.map +1 -1
  194. package/lib/sync/unknownBlock.d.ts.map +1 -1
  195. package/lib/sync/unknownBlock.js +42 -18
  196. package/lib/sync/unknownBlock.js.map +1 -1
  197. package/package.json +30 -30
  198. package/src/api/impl/api.ts +1 -1
  199. package/src/api/impl/beacon/blocks/index.ts +22 -17
  200. package/src/api/impl/beacon/index.ts +3 -1
  201. package/src/api/impl/beacon/state/index.ts +10 -1
  202. package/src/api/impl/beacon/state/utils.ts +19 -9
  203. package/src/api/impl/debug/index.ts +4 -0
  204. package/src/api/impl/validator/index.ts +132 -10
  205. package/src/api/options.ts +3 -0
  206. package/src/chain/archiveStore/utils/archiveBlocks.ts +1 -84
  207. package/src/chain/blocks/importBlock.ts +3 -7
  208. package/src/chain/blocks/importExecutionPayload.ts +68 -2
  209. package/src/chain/blocks/types.ts +5 -0
  210. package/src/chain/chain.ts +4 -0
  211. package/src/chain/errors/executionPayloadBid.ts +12 -0
  212. package/src/chain/errors/inclusionList.ts +38 -0
  213. package/src/chain/errors/index.ts +1 -0
  214. package/src/chain/interface.ts +2 -0
  215. package/src/chain/opPools/inclusionListStore.ts +208 -0
  216. package/src/chain/opPools/index.ts +1 -0
  217. package/src/chain/produceBlock/produceBlockBody.ts +60 -19
  218. package/src/chain/regen/interface.ts +1 -1
  219. package/src/chain/validation/executionPayloadBid.ts +40 -170
  220. package/src/chain/validation/inclusionList.ts +192 -0
  221. package/src/chain/validation/index.ts +1 -0
  222. package/src/db/beacon.ts +5 -0
  223. package/src/execution/builder/validateBid.ts +23 -2
  224. package/src/execution/engine/blobVersionedHashes.ts +1 -1
  225. package/src/execution/engine/disabled.ts +4 -0
  226. package/src/execution/engine/http.ts +40 -5
  227. package/src/execution/engine/interface.ts +27 -3
  228. package/src/execution/engine/jsonRpcTransport.ts +46 -9
  229. package/src/execution/engine/mock.ts +32 -7
  230. package/src/execution/engine/payloadIdCache.ts +24 -6
  231. package/src/execution/engine/restTransport.ts +15 -1
  232. package/src/execution/engine/transport.ts +7 -2
  233. package/src/execution/engine/types.ts +41 -6
  234. package/src/index.ts +2 -0
  235. package/src/metrics/metrics/beacon.ts +37 -0
  236. package/src/metrics/metrics/lodestar.ts +26 -0
  237. package/src/network/gossip/interface.ts +5 -0
  238. package/src/network/gossip/topic.ts +14 -0
  239. package/src/network/interface.ts +2 -0
  240. package/src/network/network.ts +11 -0
  241. package/src/network/peers/utils/enrSubnetsDeserialize.ts +5 -2
  242. package/src/network/processor/gossipHandlers.ts +87 -21
  243. package/src/network/processor/gossipQueues/index.ts +6 -0
  244. package/src/network/processor/gossipValidatorFn.ts +5 -0
  245. package/src/network/processor/index.ts +33 -24
  246. package/src/network/processor/types.ts +1 -1
  247. package/src/network/reqresp/ReqRespBeaconNode.ts +7 -0
  248. package/src/network/reqresp/handlers/inclusionListsByIndices.ts +44 -0
  249. package/src/network/reqresp/handlers/index.ts +5 -0
  250. package/src/network/reqresp/protocols.ts +6 -0
  251. package/src/network/reqresp/rateLimit.ts +4 -0
  252. package/src/network/reqresp/types.ts +6 -0
  253. package/src/sync/unknownBlock.ts +47 -28
@@ -1,4 +1,4 @@
1
- import { PAYLOAD_BUILDER_VERSION } from "@lodestar/params";
1
+ import { PAYLOAD_BUILDER_VERSION, isForkPostHeze } from "@lodestar/params";
2
2
  import { computeEpochAtSlot, createSingleSignatureSetFromComponents, getExecutionPayloadBidSigningRoot, isActiveBuilder, isGasLimitTargetCompatible, isStartSlotOfEpoch, isStatePostGloas, } from "@lodestar/state-transition";
3
3
  import { byteArrayEquals, toHex, toRootHex } from "@lodestar/utils";
4
4
  import { getShufflingDependentRoot } from "../../util/dependentRoot.js";
@@ -57,150 +57,6 @@ function isBidCompatibleWithHead(chain, head, bidSlot, bidParentBlockRoot, bidPa
57
57
  }
58
58
  return buildsOnParentPayload;
59
59
  }
60
- /**
61
- * Validation for bids submitted via the API by the operator's own builder.
62
- *
63
- * Only non-transient checks are applied: slot later than parent, zero execution payment, blob
64
- * commitment count, builder eligibility, version and balance coverage, prev_randao, and signature.
65
- * Transient gossip rules (head compatibility, first bid per tuple, value increment, proposer
66
- * preferences) are not applied, since those only limit forwarding of peers' messages and the
67
- * builder may legitimately bid on a branch this node does not consider head.
68
- * The parent-payload builder-exit rule is omitted because this endpoint only accepts bids from
69
- * the operator's own builder.
70
- *
71
- * Throws on any failed check. Also throws if the bid's parent block is unknown or its state is
72
- * unavailable, since the checks cannot be evaluated against the parent branch.
73
- */
74
- export async function validateApiExecutionPayloadBid(chain, signedExecutionPayloadBid) {
75
- const bid = signedExecutionPayloadBid.message;
76
- const bidParentBlockRoot = toRootHex(bid.parentBlockRoot);
77
- // [REJECT] `bid.execution_payment` is zero.
78
- if (bid.executionPayment !== 0n) {
79
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
80
- code: ExecutionPayloadBidErrorCode.NON_ZERO_EXECUTION_PAYMENT,
81
- builderIndex: bid.builderIndex,
82
- executionPayment: bid.executionPayment,
83
- });
84
- }
85
- // [REJECT] The bid's block hash is not equal to its parent block hash -- i.e.
86
- // `bid.block_hash != bid.parent_block_hash`.
87
- if (byteArrayEquals(bid.blockHash, bid.parentBlockHash)) {
88
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
89
- code: ExecutionPayloadBidErrorCode.BLOCK_HASH_EQUALS_PARENT_BLOCK_HASH,
90
- blockHash: toRootHex(bid.blockHash),
91
- });
92
- }
93
- // [REJECT] The length of KZG commitments is less than or equal to the limitation defined in the
94
- // consensus layer -- i.e. validate that
95
- // `len(bid.blob_kzg_commitments) <= get_blob_parameters(compute_epoch_at_slot(bid.slot)).max_blobs_per_block`.
96
- const blobKzgCommitmentsLen = bid.blobKzgCommitments.length;
97
- const maxBlobsPerBlock = chain.config.getMaxBlobsPerBlock(computeEpochAtSlot(bid.slot));
98
- if (blobKzgCommitmentsLen > maxBlobsPerBlock) {
99
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
100
- code: ExecutionPayloadBidErrorCode.TOO_MANY_KZG_COMMITMENTS,
101
- blobKzgCommitmentsLen,
102
- commitmentLimit: maxBlobsPerBlock,
103
- });
104
- }
105
- // [IGNORE] `bid.slot` is the current slot, or the next slot (`bid.slot - 1` is current), allowing for `MAXIMUM_GOSSIP_CLOCK_DISPARITY`.
106
- if (!chain.clock.isCurrentSlotGivenGossipDisparity(bid.slot) &&
107
- !chain.clock.isCurrentSlotGivenGossipDisparity(bid.slot - 1)) {
108
- throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
109
- code: ExecutionPayloadBidErrorCode.INVALID_SLOT,
110
- builderIndex: bid.builderIndex,
111
- slot: bid.slot,
112
- });
113
- }
114
- // [IGNORE] `bid.parent_block_root` is the hash tree root of a known beacon block in fork choice.
115
- // Moved earlier than the spec ordering so we can derive the proposer dependent root for the
116
- // proposer-preferences lookup below from a known fork-choice block.
117
- const parentBlock = chain.forkChoice.getBlockHexDefaultStatus(bidParentBlockRoot);
118
- if (parentBlock === null) {
119
- throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
120
- code: ExecutionPayloadBidErrorCode.UNKNOWN_BLOCK_ROOT,
121
- parentBlockRoot: bidParentBlockRoot,
122
- });
123
- }
124
- // [REJECT] The bid is for a higher slot than its parent block -- i.e.
125
- // validate that `bid.slot` is greater than the slot of the block with root
126
- // `bid.parent_block_root`.
127
- if (bid.slot <= parentBlock.slot) {
128
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
129
- code: ExecutionPayloadBidErrorCode.NOT_LATER_THAN_PARENT,
130
- parentSlot: parentBlock.slot,
131
- slot: bid.slot,
132
- });
133
- }
134
- const state = await chain.regen
135
- .getBlockSlotState(parentBlock, bid.slot, { dontTransferCache: true }, RegenCaller.validateApiExecutionPayloadBid)
136
- .catch(() => {
137
- throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
138
- code: ExecutionPayloadBidErrorCode.UNKNOWN_BLOCK_ROOT,
139
- parentBlockRoot: bidParentBlockRoot,
140
- });
141
- });
142
- if (!isStatePostGloas(state)) {
143
- throw new Error(`Expected gloas+ state for execution payload bid validation, got fork=${state.forkName}`);
144
- }
145
- // [REJECT] `bid.builder_index` is within bounds -- i.e. `bid.builder_index < len(state.builders)`.
146
- // `state.getBuilder` returns a lazy SSZ `getReadonly` view that is not bounds-checked eagerly; an
147
- // out-of-range index only throws (`LeafNode has no right node`) on deferred field access (e.g. inside
148
- // `isActiveBuilder`), escaping a try/catch around `getBuilder`. Check the length explicitly instead.
149
- if (bid.builderIndex >= state.getBuildersLength()) {
150
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
151
- code: ExecutionPayloadBidErrorCode.BUILDER_NOT_ELIGIBLE,
152
- builderIndex: bid.builderIndex,
153
- });
154
- }
155
- // [REJECT] `bid.builder_index` is a valid/active builder index -- i.e.
156
- // `is_active_builder(state, bid.builder_index)` returns `True`.
157
- const builder = state.getBuilder(bid.builderIndex);
158
- if (!isActiveBuilder(builder, state.finalizedCheckpoint.epoch)) {
159
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
160
- code: ExecutionPayloadBidErrorCode.BUILDER_NOT_ELIGIBLE,
161
- builderIndex: bid.builderIndex,
162
- });
163
- }
164
- // [REJECT] The builder version is `PAYLOAD_BUILDER_VERSION` -- i.e.
165
- // `state.builders[bid.builder_index].version == PAYLOAD_BUILDER_VERSION`.
166
- if (builder.version !== PAYLOAD_BUILDER_VERSION) {
167
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
168
- code: ExecutionPayloadBidErrorCode.INVALID_BUILDER_VERSION,
169
- builderIndex: bid.builderIndex,
170
- version: builder.version,
171
- expectedVersion: PAYLOAD_BUILDER_VERSION,
172
- });
173
- }
174
- // [IGNORE] `bid.value` is less or equal than the builder's excess balance --
175
- // i.e. `can_builder_cover_bid(state, builder_index, amount)` returns `True`.
176
- if (!state.canBuilderCoverBid(bid.builderIndex, bid.value)) {
177
- throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
178
- code: ExecutionPayloadBidErrorCode.BID_TOO_HIGH,
179
- bidValue: bid.value,
180
- builderBalance: builder.balance,
181
- });
182
- }
183
- // [REJECT] `bid.prev_randao` is the correct RANDAO mix -- i.e. validate that
184
- // `bid.prev_randao == get_randao_mix(parent_state, get_current_epoch(parent_state))`.
185
- const randaoMix = state.getRandaoMix(computeEpochAtSlot(state.slot));
186
- if (!byteArrayEquals(bid.prevRandao, randaoMix)) {
187
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
188
- code: ExecutionPayloadBidErrorCode.INVALID_PREV_RANDAO,
189
- builderIndex: bid.builderIndex,
190
- bidPrevRandao: toHex(bid.prevRandao),
191
- expectedPrevRandao: toHex(randaoMix),
192
- });
193
- }
194
- // [REJECT] `signed_execution_payload_bid.signature` is valid with respect to the `bid.builder_index`.
195
- const signatureSet = createSingleSignatureSetFromComponents(builder.pubkey, getExecutionPayloadBidSigningRoot(chain.config, bid), signedExecutionPayloadBid.signature);
196
- if (!(await chain.bls.verifySignatureSets([signatureSet]))) {
197
- throw new ExecutionPayloadBidError(GossipAction.REJECT, {
198
- code: ExecutionPayloadBidErrorCode.INVALID_SIGNATURE,
199
- builderIndex: bid.builderIndex,
200
- slot: bid.slot,
201
- });
202
- }
203
- }
204
60
  export async function validateGossipExecutionPayloadBid(chain, signedExecutionPayloadBid) {
205
61
  return validateExecutionPayloadBid(chain, signedExecutionPayloadBid);
206
62
  }
@@ -245,6 +101,15 @@ async function validateExecutionPayloadBid(chain, signedExecutionPayloadBid) {
245
101
  slot: bid.slot,
246
102
  });
247
103
  }
104
+ // [IGNORE] The bid is received after the inclusion list deadline of `bid.slot - 1`
105
+ if (isForkPostHeze(chain.config.getForkName(bid.slot)) &&
106
+ chain.clock.msFromSlot(bid.slot - 1) < chain.config.getInclusionListDueMs(chain.config.getForkName(bid.slot - 1))) {
107
+ throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
108
+ code: ExecutionPayloadBidErrorCode.BEFORE_INCLUSION_LIST_DEADLINE,
109
+ builderIndex: bid.builderIndex,
110
+ slot: bid.slot,
111
+ });
112
+ }
248
113
  // [IGNORE] The bid is compatible with the current head branch.
249
114
  const head = chain.forkChoice.getHead();
250
115
  if (!isBidCompatibleWithHead(chain, head, bid.slot, bidParentBlockRoot, bidParentBlockHash)) {
@@ -289,6 +154,20 @@ async function validateExecutionPayloadBid(chain, signedExecutionPayloadBid) {
289
154
  slot: bid.slot,
290
155
  });
291
156
  }
157
+ // [IGNORE] bid.inclusionListBits is inclusive of our timely inclusion lists for
158
+ // (bid.slot - 1, get_shuffling_dependent_root(store, bid.parent_block_root, epoch)).
159
+ if (isForkPostHeze(chain.config.getForkName(bid.slot))) {
160
+ const { inclusionListBits } = bid;
161
+ const inclusionListSlot = bid.slot - 1;
162
+ const inclusionListDependentRoot = getShufflingDependentRoot(chain.forkChoice, computeEpochAtSlot(inclusionListSlot), computeEpochAtSlot(parentBlock.slot), parentBlock);
163
+ if (!chain.inclusionListStore.isInclusionListBitsInclusive(inclusionListSlot, inclusionListDependentRoot, inclusionListBits)) {
164
+ throw new ExecutionPayloadBidError(GossipAction.IGNORE, {
165
+ code: ExecutionPayloadBidErrorCode.INCLUSION_LIST_BITS_NOT_INCLUSIVE,
166
+ builderIndex: bid.builderIndex,
167
+ slot: bid.slot,
168
+ });
169
+ }
170
+ }
292
171
  // [IGNORE] A `SignedProposerPreferences` matching `bid.slot` and the bid's branch has been
293
172
  // seen — i.e. `proposal_slot == bid.slot` AND `dependent_root ==
294
173
  // get_proposer_dependent_root(parent_state, compute_epoch_at_slot(bid.slot))`.
@@ -1 +1 @@
1
- {"version":3,"file":"executionPayloadBid.js","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadBid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executionPayloadBid.js","sourceRoot":"","sources":["../../../src/chain/validation/executionPayloadBid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { heze } from "@lodestar/types";
2
+ import { IBeaconChain } from "../interface.js";
3
+ export type InclusionListValidationResult = {
4
+ /** Positions of `validator_index` in `get_inclusion_list_committee(state, slot)`, several when the committee cycles */
5
+ committeeIndices: number[];
6
+ /** Sum of the byte lengths of `message.transactions` */
7
+ totalBytes: number;
8
+ };
9
+ /**
10
+ * Gossip validation for the `inclusion_list` topic, in spec rule order. Also applied to inclusion lists
11
+ * submitted over the API before they are published.
12
+ */
13
+ export declare function validateGossipInclusionList(chain: IBeaconChain, signedInclusionList: heze.SignedInclusionList): Promise<InclusionListValidationResult>;
14
+ //# sourceMappingURL=inclusionList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inclusionList.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/inclusionList.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAIrD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAI7C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,uHAAuH;IACvH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,YAAY,EACnB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,GAC5C,OAAO,CAAC,6BAA6B,CAAC,CAqIxC"}
@@ -0,0 +1,150 @@
1
+ import { GENESIS_SLOT, MIN_SEED_LOOKAHEAD, isForkPostHeze } from "@lodestar/params";
2
+ import { computeEpochAtSlot, computeStartSlotAtEpoch, getInclusionListCommittee, getInclusionListSignatureSet, } from "@lodestar/state-transition";
3
+ import { toRootHex } from "@lodestar/utils";
4
+ import { InclusionListError, InclusionListErrorCode } from "../errors/inclusionList.js";
5
+ import { GossipAction } from "../errors/index.js";
6
+ import { RegenCaller } from "../regen/index.js";
7
+ import { isValidDependentRoot } from "./proposerPreferences.js";
8
+ /**
9
+ * Gossip validation for the `inclusion_list` topic, in spec rule order. Also applied to inclusion lists
10
+ * submitted over the API before they are published.
11
+ */
12
+ export async function validateGossipInclusionList(chain, signedInclusionList) {
13
+ const { slot, validatorIndex, transactions, dependentRoot } = signedInclusionList.message;
14
+ let totalBytes = 0;
15
+ for (let i = 0; i < transactions.length; i++) {
16
+ totalBytes += transactions.getSize(i);
17
+ }
18
+ // A pre-heze slot has no inclusion list committee to validate against
19
+ if (!isForkPostHeze(chain.config.getForkName(slot))) {
20
+ throw new InclusionListError(GossipAction.IGNORE, {
21
+ code: InclusionListErrorCode.PRE_HEZE_SLOT,
22
+ inclusionListSlot: slot,
23
+ });
24
+ }
25
+ // [IGNORE] The message is either the first or second valid message received from validatorIndex
26
+ // for (message.slot, message.dependent_root)
27
+ const dependentRootHex = toRootHex(dependentRoot);
28
+ if (chain.inclusionListStore.seenTwice(slot, dependentRootHex, validatorIndex)) {
29
+ throw new InclusionListError(GossipAction.IGNORE, {
30
+ code: InclusionListErrorCode.MORE_THAN_TWO,
31
+ validatorIndex,
32
+ });
33
+ }
34
+ // [IGNORE] message.slot is equal to the current slot, with a MAXIMUM_GOSSIP_CLOCK_DISPARITY allowance
35
+ if (!chain.clock.isCurrentSlotGivenGossipDisparity(slot)) {
36
+ throw new InclusionListError(GossipAction.IGNORE, {
37
+ code: InclusionListErrorCode.INVALID_SLOT,
38
+ inclusionListSlot: slot,
39
+ currentSlot: chain.clock.currentSlot,
40
+ });
41
+ }
42
+ // [IGNORE] The size of message.transactions is greater than 0
43
+ if (totalBytes === 0) {
44
+ throw new InclusionListError(GossipAction.IGNORE, { code: InclusionListErrorCode.EMPTY_TRANSACTIONS });
45
+ }
46
+ // [REJECT] The size of message.transactions is within upperbound MAX_TRANSACTIONS_BYTES_PER_INCLUSION_LIST
47
+ if (totalBytes > chain.config.MAX_TRANSACTIONS_BYTES_PER_INCLUSION_LIST) {
48
+ throw new InclusionListError(GossipAction.REJECT, {
49
+ code: InclusionListErrorCode.MAXIMUM_SIZE_EXCEEDED,
50
+ totalBytes,
51
+ maxBytes: chain.config.MAX_TRANSACTIONS_BYTES_PER_INCLUSION_LIST,
52
+ });
53
+ }
54
+ // [REJECT] Every transaction in message.transactions is non-empty
55
+ let emptyTransactionIndex = -1;
56
+ for (let i = 0; i < transactions.length; i++) {
57
+ if (transactions.getSize(i) === 0) {
58
+ emptyTransactionIndex = i;
59
+ break;
60
+ }
61
+ }
62
+ if (emptyTransactionIndex !== -1) {
63
+ throw new InclusionListError(GossipAction.REJECT, {
64
+ code: InclusionListErrorCode.EMPTY_TRANSACTION,
65
+ transactionIndex: emptyTransactionIndex,
66
+ });
67
+ }
68
+ // [IGNORE] The block with root message.dependent_root has been seen
69
+ const dependentBlock = chain.forkChoice.getBlockHexDefaultStatus(dependentRootHex);
70
+ if (dependentBlock === null) {
71
+ throw new InclusionListError(GossipAction.IGNORE, {
72
+ code: InclusionListErrorCode.UNKNOWN_DEPENDENT_ROOT,
73
+ dependentRoot: dependentRootHex,
74
+ });
75
+ }
76
+ // [REJECT] The slot of the block with root message.dependent_root is strictly less than
77
+ // compute_start_slot_at_epoch(compute_epoch_at_slot(message.slot) - MIN_SEED_LOOKAHEAD),
78
+ // clamped to genesis like compute_shuffling_dependent_slot
79
+ const epoch = computeEpochAtSlot(slot);
80
+ const dependentEpoch = epoch - MIN_SEED_LOOKAHEAD;
81
+ const maxDependentSlot = Math.max(GENESIS_SLOT, computeStartSlotAtEpoch(dependentEpoch) - 1);
82
+ if (dependentBlock.slot > maxDependentSlot) {
83
+ throw new InclusionListError(GossipAction.REJECT, {
84
+ code: InclusionListErrorCode.INVALID_DEPENDENT_ROOT_SLOT,
85
+ dependentRoot: dependentRootHex,
86
+ dependentSlot: dependentBlock.slot,
87
+ maxSlot: maxDependentSlot,
88
+ });
89
+ }
90
+ // [IGNORE] is_valid_dependent_root(store, message.dependent_root, epoch - MIN_SEED_LOOKAHEAD)
91
+ if (!isValidDependentRoot(chain.forkChoice, dependentBlock, dependentEpoch)) {
92
+ throw new InclusionListError(GossipAction.IGNORE, {
93
+ code: InclusionListErrorCode.INVALID_DEPENDENT_ROOT,
94
+ dependentRoot: dependentRootHex,
95
+ epoch: dependentEpoch,
96
+ });
97
+ }
98
+ // [REJECT] validatorIndex is in get_inclusion_list_committee(state, message.slot), where state is the
99
+ // state of the block with root message.dependent_root, i.e. the shuffling of `epoch` keyed by `dependent_root`
100
+ const shuffling = await getShuffling(chain, epoch, dependentRootHex, dependentBlock);
101
+ if (shuffling === null) {
102
+ throw new InclusionListError(GossipAction.IGNORE, {
103
+ code: InclusionListErrorCode.MISSING_SHUFFLING,
104
+ dependentRoot: dependentRootHex,
105
+ epoch,
106
+ });
107
+ }
108
+ const committeeIndices = getInclusionListCommittee(shuffling, slot).getCommitteeIndices(validatorIndex);
109
+ if (committeeIndices.length === 0) {
110
+ throw new InclusionListError(GossipAction.REJECT, {
111
+ code: InclusionListErrorCode.VALIDATOR_NOT_IN_COMMITTEE,
112
+ validatorIndex,
113
+ });
114
+ }
115
+ // [REJECT] The signature is valid with respect to the validator's public key
116
+ // Domain from the list's own slot, so a list for the first Heze slot verifies while the clock is still in Gloas
117
+ const signatureSet = getInclusionListSignatureSet(chain.config, slot, signedInclusionList);
118
+ // With only 16 inclusion list committee members per slot, batching can delay gossip by 100ms.
119
+ // Verify without batching so inclusion lists can be forwarded sooner.
120
+ if (!(await chain.bls.verifySignatureSets([signatureSet], { batchable: false }))) {
121
+ throw new InclusionListError(GossipAction.REJECT, { code: InclusionListErrorCode.INVALID_SIGNATURE });
122
+ }
123
+ // Check again after the async validation so concurrent lists of the same validator cannot all pass
124
+ if (chain.inclusionListStore.seenTwice(slot, dependentRootHex, validatorIndex)) {
125
+ throw new InclusionListError(GossipAction.IGNORE, {
126
+ code: InclusionListErrorCode.MORE_THAN_TWO,
127
+ validatorIndex,
128
+ });
129
+ }
130
+ chain.inclusionListStore.markSeen(slot, dependentRootHex, validatorIndex);
131
+ return { committeeIndices, totalBytes };
132
+ }
133
+ /**
134
+ * The shuffling of `epoch` on the branch of `dependentBlock`. Usually cached from the head state; when the
135
+ * dependent block is the head across empty epochs that state has not reached the lookahead start slot, so
136
+ * the spec's `process_slots` step is a state regen
137
+ */
138
+ async function getShuffling(chain, epoch, dependentRootHex, dependentBlock) {
139
+ const cached = await chain.shufflingCache.get(epoch, dependentRootHex);
140
+ if (cached !== null) {
141
+ return cached;
142
+ }
143
+ try {
144
+ return await chain.regenStateForAttestationVerification(epoch, dependentRootHex, dependentBlock, RegenCaller.validateGossipInclusionList);
145
+ }
146
+ catch {
147
+ return null;
148
+ }
149
+ }
150
+ //# sourceMappingURL=inclusionList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inclusionList.js","sourceRoot":"","sources":["../../../src/chain/validation/inclusionList.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export * from "./attestation.js";
3
3
  export * from "./attesterSlashing.js";
4
4
  export * from "./block.js";
5
5
  export * from "./blsToExecutionChange.js";
6
+ export * from "./inclusionList.js";
6
7
  export * from "./proposerSlashing.js";
7
8
  export * from "./syncCommittee.js";
8
9
  export * from "./syncCommitteeContributionAndProof.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oBAAoB,CAAC"}
@@ -3,6 +3,7 @@ export * from "./attestation.js";
3
3
  export * from "./attesterSlashing.js";
4
4
  export * from "./block.js";
5
5
  export * from "./blsToExecutionChange.js";
6
+ export * from "./inclusionList.js";
6
7
  export * from "./proposerSlashing.js";
7
8
  export * from "./syncCommittee.js";
8
9
  export * from "./syncCommitteeContributionAndProof.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,wBAAwB,EAAY,MAAM,cAAc,CAAC;AACrE,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,KAAK,gBAAgB,EAAwB,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAC,+BAA+B,EAAC,MAAM,yCAAyC,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,yCAAyC,EACzC,kCAAkC,EAClC,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,qBAAa,QAAS,YAAW,SAAS;IAkCtC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE;IAjC3B,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,sBAAsB,CAAC;IAErC,YAAY,EAAE,sBAAsB,CAAC;IACrC,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,wBAAwB,EAAE,kCAAkC,CAAC;IAE7D,wBAAwB,EAAE,kCAAkC,CAAC;IAC7D,+BAA+B,EAAE,yCAAyC,CAAC;IAE3E,YAAY,EAAE,sBAAsB,CAAC;IACrC,eAAe,EAAE,yBAAyB,CAAC;IAC3C,qBAAqB,EAAE,+BAA+B,CAAC;IAEvD,aAAa,EAAE,uBAAuB,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,oBAAoB,EAAE,8BAA8B,CAAC;IAGrD,qBAAqB,EAAE,+BAA+B,CAAC;IACvD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,aAAa,EAAE,uBAAuB,CAAC;IACvC,oBAAoB,EAAE,8BAA8B,CAAC;IAErD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,YACE,MAAM,EAAE,eAAe,EACJ,EAAE,EAAE,EAAE,EACzB,IAAI,EAAE,YAAY,EAoCnB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAI1B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,GAAE,oBAAoB,GAAG,IAAW,GAAG,IAAI,CAG5G;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAQhC;IAEK,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAa9C;YAEa,gBAAgB;CAoB/B"}
1
+ {"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAE,wBAAwB,EAAY,MAAM,cAAc,CAAC;AACrE,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,KAAK,gBAAgB,EAAwB,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAC,+BAA+B,EAAC,MAAM,yCAAyC,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,yCAAyC,EACzC,kCAAkC,EAClC,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,qBAAa,QAAS,YAAW,SAAS;IAkCtC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE;IAjC3B,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,sBAAsB,CAAC;IAErC,YAAY,EAAE,sBAAsB,CAAC;IACrC,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,wBAAwB,EAAE,kCAAkC,CAAC;IAE7D,wBAAwB,EAAE,kCAAkC,CAAC;IAC7D,+BAA+B,EAAE,yCAAyC,CAAC;IAE3E,YAAY,EAAE,sBAAsB,CAAC;IACrC,eAAe,EAAE,yBAAyB,CAAC;IAC3C,qBAAqB,EAAE,+BAA+B,CAAC;IAEvD,aAAa,EAAE,uBAAuB,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,mBAAmB,EAAE,6BAA6B,CAAC;IACnD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,oBAAoB,EAAE,8BAA8B,CAAC;IAGrD,qBAAqB,EAAE,+BAA+B,CAAC;IACvD,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,aAAa,EAAE,uBAAuB,CAAC;IACvC,oBAAoB,EAAE,8BAA8B,CAAC;IAErD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,YACE,MAAM,EAAE,eAAe,EACJ,EAAE,EAAE,EAAE,EACzB,IAAI,EAAE,YAAY,EAoCnB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAI1B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED,UAAU,CAAC,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,GAAE,oBAAoB,GAAG,IAAW,GAAG,IAAI,CAG5G;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAahC;IAEK,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAa9C;YAEa,gBAAgB;CAoB/B"}
package/lib/db/beacon.js CHANGED
@@ -76,6 +76,8 @@ export class BeaconDb {
76
76
  await this.blobSidecars.batchDelete(await this.blobSidecars.keys());
77
77
  // New columns are persisted in flat files, so this bucket only contains legacy hot data.
78
78
  await this.deleteBucketData(Bucket.allForks_dataColumnSidecars);
79
+ // Compact even if empty to reclaim tombstones left by previous startups.
80
+ await this.db.compactRange(encodeKey(Bucket.allForks_dataColumnSidecars, Buffer.alloc(0)), encodeKey(Bucket.allForks_dataColumnSidecars + 1, Buffer.alloc(0)));
79
81
  // Prune all hot blocks
80
82
  // TODO: Enable once it's deemed safe
81
83
  // await this.block.batchDelete(await this.block.keys());
@@ -1 +1 @@
1
- {"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,SAAS,EAAC,MAAM,cAAc,CAAC;AAGrE,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAwB,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAC,aAAa,EAAC,MAAM,kCAAkC,CAAC;AAG/D,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAC,+BAA+B,EAAC,MAAM,yCAAyC,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,yCAAyC,EACzC,kCAAkC,EAClC,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAQjC,MAAM,OAAO,QAAQ;IAkCE,EAAE;IAjCvB,KAAK,CAAkB;IACvB,YAAY,CAAyB;IAErC,YAAY,CAAyB;IACrC,mBAAmB,CAAgC;IACnD,iBAAiB,CAA8B;IAC/C,wBAAwB,CAAqC;IAE7D,wBAAwB,CAAqC;IAC7D,+BAA+B,CAA4C;IAE3E,YAAY,CAAyB;IACrC,eAAe,CAA4B;IAC3C,qBAAqB,CAAkC;IAEvD,aAAa,CAA0B;IACvC,gBAAgB,CAA6B;IAC7C,mBAAmB,CAAgC;IACnD,gBAAgB,CAA6B;IAC7C,oBAAoB,CAAiC;IAErD,cAAc;IACd,qBAAqB,CAAkC;IACvD,gBAAgB,CAA6B;IAC7C,aAAa,CAA0B;IACvC,oBAAoB,CAAiC;IAE5C,WAAW,CAAmB;IACvC,qBAAqB,GAAgB,IAAI,CAAC;IACzB,aAAa,CAAgB;IAE9C,YACE,MAAuB,EACJ,EAAM,EACzB,IAAkB;kBADC,EAAE;QAGrB,4IAA4I;QAC5I,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,mBAAmB,GAAG,IAAI,6BAA6B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,IAAI,2BAA2B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,wBAAwB,GAAG,IAAI,kCAAkC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEnF,IAAI,CAAC,wBAAwB,GAAG,IAAI,kCAAkC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,+BAA+B,GAAG,IAAI,yCAAyC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEjG,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,qBAAqB,GAAG,IAAI,+BAA+B,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,GAAG,IAAI,8BAA8B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAA0B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,mBAAmB,GAAG,IAAI,6BAA6B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAA0B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEnE,cAAc;QACd,IAAI,CAAC,qBAAqB,GAAG,IAAI,+BAA+B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAA0B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,GAAG,IAAI,8BAA8B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9F,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,CAC1C,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,wBAAwB,EAC7B,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,qBAAqB,GAAG,aAAa,EAAE,MAAM,IAAI,IAAI,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,OAAiC,EAAE,oBAAoB,GAAgC,IAAI;QACpG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,sBAAsB;QACtB,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,yFAAyF;QACzF,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAChE,yEAAyE;QACzE,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CACxB,SAAS,CAAC,MAAM,CAAC,2BAA2B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9D,SAAS,CAAC,MAAM,CAAC,2BAA2B,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC;QACF,uBAAuB;QACvB,qCAAqC;QACrC,yDAAyD;IAC3D,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,MAAM,iBAAiB,GAAG;YACxB,MAAM,CAAC,eAAe;YACtB,MAAM,CAAC,qBAAqB;YAC5B,MAAM,CAAC,kBAAkB;YACzB,MAAM,CAAC,mBAAmB;YAC1B,MAAM,CAAC,sBAAsB;YAC7B,MAAM,CAAC,wCAAwC;SAChD,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAc;QAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,6DAA6D;QAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC;QAC/B,IAAI,SAAS,GAAiB,EAAE,CAAC;QAEjC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAC,CAAC,EAAE,CAAC;YACtE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,SAAS,CAAC,MAAM,IAAI,iBAAiB,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACrC,SAAS,GAAG,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateBid.d.ts","sourceRoot":"","sources":["../../../src/execution/builder/validateBid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAUjD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAIlD,uEAAuE;AACvE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAE1G;AAED;;;;;;;GAOG;AACH,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAC1D,OAAO,EAAE;IACP,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;IACrC,0BAA0B,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;CACpE,GACA,OAAO,CAAC,IAAI,CAAC,CA+If"}
1
+ {"version":3,"file":"validateBid.d.ts","sourceRoot":"","sources":["../../../src/execution/builder/validateBid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAUjD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAO,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAIlD,uEAAuE;AACvE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAE1G;AAED;;;;;;;GAOG;AACH,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAC1D,OAAO,EAAE;IACP,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;IACrC,0BAA0B,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;CACpE,GACA,OAAO,CAAC,IAAI,CAAC,CAoKf"}
@@ -1,4 +1,4 @@
1
- import { MAX_EXECUTION_PAYMENT, PAYLOAD_BUILDER_VERSION } from "@lodestar/params";
1
+ import { MAX_EXECUTION_PAYMENT, PAYLOAD_BUILDER_VERSION, isForkPostHeze } from "@lodestar/params";
2
2
  import { computeEpochAtSlot, createSingleSignatureSetFromComponents, getExecutionPayloadBidSigningRoot, isActiveBuilder, isGasLimitTargetCompatible, isStatePostGloas, } from "@lodestar/state-transition";
3
3
  import { bigIntMin, byteArrayEquals, prettyGweiToEth, toHex, toRootHex } from "@lodestar/utils";
4
4
  import { RegenCaller } from "../../chain/regen/index.js";
@@ -17,6 +17,7 @@ export function getBuilderBidTotalGwei(bid, maxExecutionPayment) {
17
17
  */
18
18
  export async function validateBuilderApiExecutionPayloadBid(chain, signedExecutionPayloadBid, request) {
19
19
  const bid = signedExecutionPayloadBid.message;
20
+ const fork = chain.config.getForkName(bid.slot);
20
21
  const { slot, parentBlock, parentBlockHash, parentBlockRoot, entry, getParentExecutionRequests } = request;
21
22
  if (bid.slot !== slot) {
22
23
  throw Error(`Bid slot=${bid.slot} does not match requested slot=${slot}`);
@@ -42,6 +43,18 @@ export async function validateBuilderApiExecutionPayloadBid(chain, signedExecuti
42
43
  `executionPayment=${prettyGweiToEth(bid.executionPayment)}) ` +
43
44
  `is below minBid=${prettyGweiToEth(entry.minBid)}`);
44
45
  }
46
+ // Same check as bid gossip (only_timely=True), not the proposer's full view from validator.md: a list released
47
+ // after the deadline would void every bid, and a high bid that went stale after gossip could crowd out the rest unpaid
48
+ if (isForkPostHeze(fork)) {
49
+ const { inclusionListBits } = bid;
50
+ const inclusionListSlot = bid.slot - 1;
51
+ const dependentRoot = getShufflingDependentRoot(chain.forkChoice, computeEpochAtSlot(inclusionListSlot), computeEpochAtSlot(parentBlock.slot), parentBlock);
52
+ if (!chain.inclusionListStore.isInclusionListBitsInclusive(inclusionListSlot, dependentRoot, inclusionListBits)) {
53
+ const expectedBits = chain.inclusionListStore.getInclusionListBits(inclusionListSlot, dependentRoot);
54
+ throw Error(`Bid inclusionListBits=${toHex(inclusionListBits.uint8Array)} is not inclusive of ` +
55
+ `timely inclusion lists expected=${toHex(expectedBits.uint8Array)}`);
56
+ }
57
+ }
45
58
  const state = await chain.regen
46
59
  .getBlockSlotState(parentBlock, slot, { dontTransferCache: true }, RegenCaller.validateGossipExecutionPayloadBid)
47
60
  .catch((e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"validateBid.js","sourceRoot":"","sources":["../../../src/execution/builder/validateBid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateBid.js","sourceRoot":"","sources":["../../../src/execution/builder/validateBid.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,5 @@ import { VersionedHashes } from "./interface.js";
5
5
  * Skip unrelated fields without decoding or copying them, including untrusted nested access lists.
6
6
  * The EL remains responsible for the other transaction validity checks.
7
7
  */
8
- export declare function isValidBlobVersionedHashes(transactions: Uint8Array[], expected: VersionedHashes): boolean;
8
+ export declare function isValidBlobVersionedHashes(transactions: Iterable<Uint8Array>, expected: VersionedHashes): boolean;
9
9
  //# sourceMappingURL=blobVersionedHashes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blobVersionedHashes.d.ts","sourceRoot":"","sources":["../../../src/execution/engine/blobVersionedHashes.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAiCzG"}
1
+ {"version":3,"file":"blobVersionedHashes.d.ts","sourceRoot":"","sources":["../../../src/execution/engine/blobVersionedHashes.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAiCjH"}
@@ -1 +1 @@
1
- {"version":3,"file":"blobVersionedHashes.js","sourceRoot":"","sources":["../../../src/execution/engine/blobVersionedHashes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blobVersionedHashes.js","sourceRoot":"","sources":["../../../src/execution/engine/blobVersionedHashes.ts"],"names":[],"mappings":"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"}