@lodestar/beacon-node 1.45.0 → 1.46.0-dev.18a1510f34

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 (268) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +186 -57
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/config/constants.d.ts +1 -0
  5. package/lib/api/impl/config/constants.d.ts.map +1 -1
  6. package/lib/api/impl/config/constants.js +2 -1
  7. package/lib/api/impl/config/constants.js.map +1 -1
  8. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  9. package/lib/api/impl/lodestar/index.js +2 -3
  10. package/lib/api/impl/lodestar/index.js.map +1 -1
  11. package/lib/api/impl/validator/index.d.ts.map +1 -1
  12. package/lib/api/impl/validator/index.js +173 -89
  13. package/lib/api/impl/validator/index.js.map +1 -1
  14. package/lib/api/rest/base.d.ts.map +1 -1
  15. package/lib/api/rest/base.js +6 -3
  16. package/lib/api/rest/base.js.map +1 -1
  17. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  18. package/lib/chain/archiveStore/archiveStore.js +17 -3
  19. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  20. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  21. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -1
  22. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  23. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  24. package/lib/chain/blocks/importBlock.js +2 -17
  25. package/lib/chain/blocks/importBlock.js.map +1 -1
  26. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  27. package/lib/chain/blocks/utils/chainSegment.js +13 -5
  28. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  29. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +1 -1
  30. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  31. package/lib/chain/blocks/verifyBlocksSanityChecks.js +1 -1
  32. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  33. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +3 -3
  34. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
  35. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  36. package/lib/chain/bls/multithread/index.js +0 -1
  37. package/lib/chain/bls/multithread/index.js.map +1 -1
  38. package/lib/chain/chain.d.ts.map +1 -1
  39. package/lib/chain/chain.js +44 -2
  40. package/lib/chain/chain.js.map +1 -1
  41. package/lib/chain/errors/blockError.d.ts +48 -6
  42. package/lib/chain/errors/blockError.d.ts.map +1 -1
  43. package/lib/chain/errors/blockError.js +25 -4
  44. package/lib/chain/errors/blockError.js.map +1 -1
  45. package/lib/chain/errors/executionPayloadBid.d.ts +11 -4
  46. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  47. package/lib/chain/errors/executionPayloadBid.js +1 -0
  48. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  49. package/lib/chain/errors/executionPayloadEnvelope.d.ts +11 -0
  50. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  51. package/lib/chain/errors/executionPayloadEnvelope.js +2 -0
  52. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  53. package/lib/chain/errors/proposerPreferences.d.ts +14 -1
  54. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -1
  55. package/lib/chain/errors/proposerPreferences.js +2 -0
  56. package/lib/chain/errors/proposerPreferences.js.map +1 -1
  57. package/lib/chain/lightClient/index.d.ts.map +1 -1
  58. package/lib/chain/lightClient/index.js +11 -6
  59. package/lib/chain/lightClient/index.js.map +1 -1
  60. package/lib/chain/lightClient/proofs.d.ts.map +1 -1
  61. package/lib/chain/lightClient/proofs.js +28 -2
  62. package/lib/chain/lightClient/proofs.js.map +1 -1
  63. package/lib/chain/lightClient/types.d.ts +3 -1
  64. package/lib/chain/lightClient/types.d.ts.map +1 -1
  65. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  66. package/lib/chain/opPools/aggregatedAttestationPool.js +2 -1
  67. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  68. package/lib/chain/opPools/proposerPreferencesPool.d.ts +1 -1
  69. package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
  70. package/lib/chain/opPools/proposerPreferencesPool.js +1 -1
  71. package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
  72. package/lib/chain/prepareNextSlot.js +1 -1
  73. package/lib/chain/prepareNextSlot.js.map +1 -1
  74. package/lib/chain/produceBlock/produceBlockBody.js +4 -4
  75. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  76. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts +6 -5
  77. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -1
  78. package/lib/chain/seenCache/seenExecutionPayloadBids.js +16 -8
  79. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -1
  80. package/lib/chain/validation/aggregateAndProof.js +10 -6
  81. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  82. package/lib/chain/validation/attestation.d.ts.map +1 -1
  83. package/lib/chain/validation/attestation.js +10 -6
  84. package/lib/chain/validation/attestation.js.map +1 -1
  85. package/lib/chain/validation/blobSidecar.js +1 -1
  86. package/lib/chain/validation/block.d.ts.map +1 -1
  87. package/lib/chain/validation/block.js +53 -4
  88. package/lib/chain/validation/block.js.map +1 -1
  89. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  90. package/lib/chain/validation/executionPayloadBid.js +100 -26
  91. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  92. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  93. package/lib/chain/validation/executionPayloadEnvelope.js +29 -0
  94. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  95. package/lib/chain/validation/proposerPreferences.d.ts +9 -2
  96. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -1
  97. package/lib/chain/validation/proposerPreferences.js +65 -13
  98. package/lib/chain/validation/proposerPreferences.js.map +1 -1
  99. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +1 -1
  100. package/lib/chain/validation/signatureSets/aggregateAndProof.js +2 -3
  101. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  102. package/lib/chain/validatorMonitor.js +1 -1
  103. package/lib/chain/validatorMonitor.js.map +1 -1
  104. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  105. package/lib/db/repositories/lightclientSyncCommitteeWitness.js +42 -7
  106. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  107. package/lib/execution/engine/interface.d.ts +1 -1
  108. package/lib/execution/engine/types.js +1 -1
  109. package/lib/execution/engine/types.js.map +1 -1
  110. package/lib/metrics/nodeJsMetrics.js +1 -1
  111. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  112. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  113. package/lib/network/core/networkCoreWorkerHandler.js +2 -7
  114. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  115. package/lib/network/discv5/index.d.ts.map +1 -1
  116. package/lib/network/discv5/index.js +1 -4
  117. package/lib/network/discv5/index.js.map +1 -1
  118. package/lib/network/gossip/encoding.d.ts +2 -2
  119. package/lib/network/gossip/encoding.d.ts.map +1 -1
  120. package/lib/network/gossip/encoding.js +15 -9
  121. package/lib/network/gossip/encoding.js.map +1 -1
  122. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  123. package/lib/network/gossip/gossipsub.js +2 -2
  124. package/lib/network/gossip/gossipsub.js.map +1 -1
  125. package/lib/network/gossip/topic.d.ts +79 -236
  126. package/lib/network/gossip/topic.d.ts.map +1 -1
  127. package/lib/network/gossip/topic.js +24 -1
  128. package/lib/network/gossip/topic.js.map +1 -1
  129. package/lib/network/interface.d.ts +4 -1
  130. package/lib/network/interface.d.ts.map +1 -1
  131. package/lib/network/libp2p/index.d.ts.map +1 -1
  132. package/lib/network/libp2p/index.js +2 -9
  133. package/lib/network/libp2p/index.js.map +1 -1
  134. package/lib/network/network.d.ts +4 -1
  135. package/lib/network/network.d.ts.map +1 -1
  136. package/lib/network/network.js +19 -11
  137. package/lib/network/network.js.map +1 -1
  138. package/lib/network/peers/datastore.d.ts +1 -1
  139. package/lib/network/peers/datastore.d.ts.map +1 -1
  140. package/lib/network/peers/datastore.js +1 -1
  141. package/lib/network/peers/datastore.js.map +1 -1
  142. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  143. package/lib/network/processor/gossipHandlers.js +12 -6
  144. package/lib/network/processor/gossipHandlers.js.map +1 -1
  145. package/lib/network/processor/index.d.ts.map +1 -1
  146. package/lib/network/processor/index.js +2 -1
  147. package/lib/network/processor/index.js.map +1 -1
  148. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
  149. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +4 -2
  150. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
  151. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  152. package/lib/network/reqresp/handlers/index.js +20 -11
  153. package/lib/network/reqresp/handlers/index.js.map +1 -1
  154. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js +1 -1
  155. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  156. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js +1 -1
  157. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  158. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +1 -1
  159. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js +6 -2
  160. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  161. package/lib/network/util.d.ts +1 -0
  162. package/lib/network/util.d.ts.map +1 -1
  163. package/lib/network/util.js +4 -0
  164. package/lib/network/util.js.map +1 -1
  165. package/lib/sync/constants.d.ts +6 -5
  166. package/lib/sync/constants.d.ts.map +1 -1
  167. package/lib/sync/constants.js +6 -5
  168. package/lib/sync/constants.js.map +1 -1
  169. package/lib/sync/range/batch.d.ts +10 -1
  170. package/lib/sync/range/batch.d.ts.map +1 -1
  171. package/lib/sync/range/batch.js +28 -10
  172. package/lib/sync/range/batch.js.map +1 -1
  173. package/lib/sync/range/chain.d.ts.map +1 -1
  174. package/lib/sync/range/chain.js +30 -15
  175. package/lib/sync/range/chain.js.map +1 -1
  176. package/lib/sync/range/utils/batches.d.ts +18 -0
  177. package/lib/sync/range/utils/batches.d.ts.map +1 -1
  178. package/lib/sync/range/utils/batches.js +39 -0
  179. package/lib/sync/range/utils/batches.js.map +1 -1
  180. package/lib/sync/sync.d.ts.map +1 -1
  181. package/lib/sync/sync.js +7 -0
  182. package/lib/sync/sync.js.map +1 -1
  183. package/lib/sync/unknownBlock.d.ts.map +1 -1
  184. package/lib/sync/unknownBlock.js +7 -2
  185. package/lib/sync/unknownBlock.js.map +1 -1
  186. package/lib/util/execution.js +1 -1
  187. package/lib/util/execution.js.map +1 -1
  188. package/lib/util/profile.d.ts +3 -0
  189. package/lib/util/profile.d.ts.map +1 -1
  190. package/lib/util/profile.js +1 -27
  191. package/lib/util/profile.js.map +1 -1
  192. package/lib/util/sszBytes.js +1 -1
  193. package/package.json +29 -38
  194. package/src/api/impl/beacon/blocks/index.ts +221 -63
  195. package/src/api/impl/config/constants.ts +2 -0
  196. package/src/api/impl/lodestar/index.ts +2 -3
  197. package/src/api/impl/validator/index.ts +207 -99
  198. package/src/api/rest/base.ts +8 -3
  199. package/src/chain/archiveStore/archiveStore.ts +20 -3
  200. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +0 -1
  201. package/src/chain/blocks/importBlock.ts +0 -17
  202. package/src/chain/blocks/utils/chainSegment.ts +16 -5
  203. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +1 -1
  204. package/src/chain/blocks/verifyBlocksSanityChecks.ts +1 -1
  205. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +3 -3
  206. package/src/chain/bls/multithread/index.ts +0 -1
  207. package/src/chain/chain.ts +61 -2
  208. package/src/chain/errors/blockError.ts +44 -7
  209. package/src/chain/errors/executionPayloadBid.ts +12 -4
  210. package/src/chain/errors/executionPayloadEnvelope.ts +9 -0
  211. package/src/chain/errors/proposerPreferences.ts +16 -1
  212. package/src/chain/lightClient/index.ts +12 -7
  213. package/src/chain/lightClient/proofs.ts +36 -1
  214. package/src/chain/lightClient/types.ts +3 -1
  215. package/src/chain/opPools/aggregatedAttestationPool.ts +4 -2
  216. package/src/chain/opPools/proposerPreferencesPool.ts +1 -1
  217. package/src/chain/prepareNextSlot.ts +1 -1
  218. package/src/chain/produceBlock/produceBlockBody.ts +5 -5
  219. package/src/chain/seenCache/seenExecutionPayloadBids.ts +22 -9
  220. package/src/chain/validation/aggregateAndProof.ts +12 -6
  221. package/src/chain/validation/attestation.ts +12 -6
  222. package/src/chain/validation/blobSidecar.ts +1 -1
  223. package/src/chain/validation/block.ts +69 -4
  224. package/src/chain/validation/executionPayloadBid.ts +119 -28
  225. package/src/chain/validation/executionPayloadEnvelope.ts +37 -0
  226. package/src/chain/validation/proposerPreferences.ts +75 -13
  227. package/src/chain/validation/signatureSets/aggregateAndProof.ts +3 -3
  228. package/src/chain/validatorMonitor.ts +1 -1
  229. package/src/db/repositories/lightclientSyncCommitteeWitness.ts +57 -9
  230. package/src/execution/engine/interface.ts +1 -1
  231. package/src/execution/engine/types.ts +1 -1
  232. package/src/metrics/nodeJsMetrics.ts +1 -1
  233. package/src/network/core/networkCoreWorkerHandler.ts +2 -6
  234. package/src/network/discv5/index.ts +1 -4
  235. package/src/network/gossip/encoding.ts +13 -7
  236. package/src/network/gossip/gossipsub.ts +7 -2
  237. package/src/network/gossip/topic.ts +30 -0
  238. package/src/network/interface.ts +3 -1
  239. package/src/network/libp2p/index.ts +2 -10
  240. package/src/network/network.ts +24 -15
  241. package/src/network/peers/datastore.ts +1 -1
  242. package/src/network/processor/gossipHandlers.ts +12 -6
  243. package/src/network/processor/index.ts +2 -1
  244. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +4 -2
  245. package/src/network/reqresp/handlers/index.ts +21 -12
  246. package/src/network/reqresp/handlers/lightClientFinalityUpdate.ts +1 -1
  247. package/src/network/reqresp/handlers/lightClientOptimisticUpdate.ts +1 -1
  248. package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +6 -2
  249. package/src/network/util.ts +5 -0
  250. package/src/sync/constants.ts +6 -5
  251. package/src/sync/range/batch.ts +31 -10
  252. package/src/sync/range/chain.ts +36 -16
  253. package/src/sync/range/utils/batches.ts +44 -0
  254. package/src/sync/sync.ts +10 -0
  255. package/src/sync/unknownBlock.ts +8 -2
  256. package/src/util/execution.ts +1 -1
  257. package/src/util/profile.ts +1 -31
  258. package/src/util/sszBytes.ts +1 -1
  259. package/lib/bun-wrappers/prometheus-gc-stats.d.ts +0 -2
  260. package/lib/bun-wrappers/prometheus-gc-stats.d.ts.map +0 -1
  261. package/lib/bun-wrappers/prometheus-gc-stats.js +0 -8
  262. package/lib/bun-wrappers/prometheus-gc-stats.js.map +0 -1
  263. package/lib/network/peers/datastore_bun.d.ts +0 -3
  264. package/lib/network/peers/datastore_bun.d.ts.map +0 -1
  265. package/lib/network/peers/datastore_bun.js +0 -3
  266. package/lib/network/peers/datastore_bun.js.map +0 -1
  267. package/src/bun-wrappers/prometheus-gc-stats.ts +0 -7
  268. package/src/network/peers/datastore_bun.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/lodestar/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/lodestar/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA+BxD,OAAO,EAQL,mBAAmB,EAUpB,MAAM,iBAAiB,CAAC;AAsCzB,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAgCvC;;GAEG;AACH,oBAAY,0BAA0B;IACpC,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,YAAY,mBAAmB;IAC/B,iBAAiB,uBAAuB;IACxC,UAAU,gBAAgB;IAC1B,eAAe,qBAAqB;CACrC;AAED;;GAEG;AACH,oBAAY,2BAA2B;IACrC,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,UAAU,gBAAgB;IAC1B,gBAAgB,sBAAsB;CACvC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,0BAA0B,CAAC;CACpC,GACD;IACE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;IACpC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEN;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,UAAU,GAC1D,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CA0nDhD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA+BxD,OAAO,EAQL,mBAAmB,EAUpB,MAAM,iBAAiB,CAAC;AAuCzB,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAgCvC;;GAEG;AACH,oBAAY,0BAA0B;IACpC,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,YAAY,mBAAmB;IAC/B,iBAAiB,uBAAuB;IACxC,UAAU,gBAAgB;IAC1B,eAAe,qBAAqB;CACrC;AAED;;GAEG;AACH,oBAAY,2BAA2B;IACrC,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,UAAU,gBAAgB;IAC1B,gBAAgB,sBAAsB;CACvC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,0BAA0B,CAAC;CACpC,GACD;IACE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;IACpC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEN;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,UAAU,GAC1D,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAquDhD"}
@@ -3,7 +3,7 @@ import { ExecutionStatus, PayloadStatus } from "@lodestar/fork-choice";
3
3
  import { BUILDER_INDEX_SELF_BUILD, ForkName, ForkSeq, GENESIS_SLOT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, SYNC_COMMITTEE_SUBNET_SIZE, isForkPostBellatrix, isForkPostDeneb, isForkPostElectra, isForkPostFulu, isForkPostGloas, } from "@lodestar/params";
4
4
  import { DataAvailabilityStatus, beaconBlockToBlinded, calculateCommitteeAssignments, computeEpochAtSlot, computeStartSlotAtEpoch, computeTimeAtSlot, getCurrentSlot, isStatePostAltair, isStatePostGloas, proposerShufflingDecisionRoot, } from "@lodestar/state-transition";
5
5
  import { ProducedBlockSource, getValidatorStatus, ssz, } from "@lodestar/types";
6
- import { TimeoutError, defer, formatWeiToEth, fromHex, prettyWeiToEth, resolveOrRacePromises, toHex, toRootHex, } from "@lodestar/utils";
6
+ import { GWEI_TO_WEI, TimeoutError, defer, formatWeiToEth, fromHex, prettyWeiToEth, resolveOrRacePromises, toHex, toRootHex, } from "@lodestar/utils";
7
7
  import { MAX_BUILDER_BOOST_FACTOR } from "@lodestar/validator";
8
8
  import { BlockInputSource } from "../../../chain/blocks/blockInput/types.js";
9
9
  import { AttestationError, AttestationErrorCode, GossipAction, ProposerPreferencesError, ProposerPreferencesErrorCode, SyncCommitteeError, SyncCommitteeErrorCode, } from "../../../chain/errors/index.js";
@@ -33,7 +33,7 @@ import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices, selectBlockProd
33
33
  * A cutoff of 2 seconds gives enough time and if there are unexpected delays it ensures we publish
34
34
  * in time as proposals post 4 seconds into the slot will likely be orphaned due to proposer boost reorg.
35
35
  *
36
- * TODO GLOAS: re-evaluate cutoff timing
36
+ * TODO GLOAS: re-evaluate cutoff timing due to attestation deadline changes in gloas
37
37
  */
38
38
  const BLOCK_PRODUCTION_RACE_CUTOFF_MS = 2_000;
39
39
  /** Overall timeout for execution and block production apis */
@@ -364,6 +364,15 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
364
364
  async function produceEngineOrBuilderBlock(slot, randaoReveal, graffiti,
365
365
  // TODO deneb: skip randao verification
366
366
  _skipRandaoVerification, builderBoostFactor, { feeRecipient, builderSelection, strictFeeRecipientCheck } = {}) {
367
+ builderSelection = builderSelection ?? routes.validator.BuilderSelection.MaxProfit;
368
+ if (builderSelection === routes.validator.BuilderSelection.BuilderOnly) {
369
+ logger.warn("Builder selection builderonly is no longer supported, treating as builderalways");
370
+ builderSelection = routes.validator.BuilderSelection.BuilderAlways;
371
+ }
372
+ builderBoostFactor = builderBoostFactor ?? BigInt(100);
373
+ if (builderBoostFactor > MAX_BUILDER_BOOST_FACTOR) {
374
+ throw new ApiError(400, `Invalid builderBoostFactor=${builderBoostFactor} > MAX_BUILDER_BOOST_FACTOR`);
375
+ }
367
376
  notWhileSyncing(chain, sync.state);
368
377
  await waitForSlot(slot); // Must never request for a future slot > currentSlot
369
378
  const parentBlock = chain.getProposerHead(slot);
@@ -372,29 +381,9 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
372
381
  notOnOutOfRangeData(parentBlockRoot);
373
382
  metrics?.blockProductionSlotDelta.set(slot - parentSlot);
374
383
  const fork = config.getForkName(slot);
375
- // set some sensible opts
376
- // builderSelection will be deprecated and will run in mode MaxProfit if builder is enabled
377
- // and the actual selection will be determined using builderBoostFactor passed by the validator
378
- builderSelection = builderSelection ?? routes.validator.BuilderSelection.MaxProfit;
379
- builderBoostFactor = builderBoostFactor ?? BigInt(100);
380
- if (builderBoostFactor > MAX_BUILDER_BOOST_FACTOR) {
381
- throw new ApiError(400, `Invalid builderBoostFactor=${builderBoostFactor} > MAX_BUILDER_BOOST_FACTOR`);
382
- }
383
384
  const isBuilderEnabled = ForkSeq[fork] >= ForkSeq.bellatrix &&
384
385
  chain.executionBuilder !== undefined &&
385
386
  builderSelection !== routes.validator.BuilderSelection.ExecutionOnly;
386
- // At any point either the builder or execution or both flows should be active.
387
- //
388
- // Ideally such a scenario should be prevented on startup, but proposerSettingsFile or keymanager
389
- // configurations could cause a validator pubkey to have builder disabled with builder selection builder only
390
- // (TODO: independently make sure such an options update is not successful for a validator pubkey)
391
- //
392
- // So if builder is disabled ignore builder selection of builder only if caused by user mistake
393
- // https://github.com/ChainSafe/lodestar/issues/6338
394
- const isEngineEnabled = !isBuilderEnabled || builderSelection !== routes.validator.BuilderSelection.BuilderOnly;
395
- if (!isEngineEnabled && !isBuilderEnabled) {
396
- throw Error(`Internal Error: Neither builder nor execution proposal flow activated isBuilderEnabled=${isBuilderEnabled} builderSelection=${builderSelection}`);
397
- }
398
387
  const graffitiBytes = toGraffitiBytes(getBlockGraffiti(graffiti, getLodestarClientVersion(opts), chain.executionEngine.clientVersion, {
399
388
  private: opts.private,
400
389
  graffitiAppend: chain.opts.graffitiAppend,
@@ -406,7 +395,6 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
406
395
  fork,
407
396
  builderSelection,
408
397
  isBuilderEnabled,
409
- isEngineEnabled,
410
398
  strictFeeRecipientCheck,
411
399
  // winston logger doesn't like bigint
412
400
  builderBoostFactor: `${builderBoostFactor}`,
@@ -427,25 +415,23 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
427
415
  parentBlock,
428
416
  })
429
417
  : Promise.reject(new Error("Builder disabled"));
430
- const enginePromise = isEngineEnabled
431
- ? produceEngineBlockContents(slot, randaoReveal, graffitiBytes, {
432
- feeRecipient,
433
- strictFeeRecipientCheck,
434
- commonBlockBodyPromise,
435
- parentBlock,
436
- }).then((engineBlock) => {
437
- // Once the engine returns a block, in the event of either:
438
- // - suspected builder censorship
439
- // - builder boost factor set to 0 or builder selection `executionalways`
440
- // we don't need to wait for builder block as engine block will always be selected
441
- if (engineBlock.shouldOverrideBuilder ||
442
- builderBoostFactor === BigInt(0) ||
443
- builderSelection === routes.validator.BuilderSelection.ExecutionAlways) {
444
- controller.abort();
445
- }
446
- return engineBlock;
447
- })
448
- : Promise.reject(new Error("Engine disabled"));
418
+ const enginePromise = produceEngineBlockContents(slot, randaoReveal, graffitiBytes, {
419
+ feeRecipient,
420
+ strictFeeRecipientCheck,
421
+ commonBlockBodyPromise,
422
+ parentBlock,
423
+ }).then((engineBlock) => {
424
+ // Once the engine returns a block, in the event of either:
425
+ // - suspected builder censorship
426
+ // - builder boost factor set to 0 or builder selection `executionalways`
427
+ // we don't need to wait for builder block as engine block will always be selected
428
+ if (engineBlock.shouldOverrideBuilder ||
429
+ builderBoostFactor === BigInt(0) ||
430
+ builderSelection === routes.validator.BuilderSelection.ExecutionAlways) {
431
+ controller.abort();
432
+ }
433
+ return engineBlock;
434
+ });
449
435
  // Calculate cutoff time based on start of the slot
450
436
  const cutoffMs = Math.max(0, BLOCK_PRODUCTION_RACE_CUTOFF_MS - chain.clock.msFromSlot(slot));
451
437
  logger.verbose("Block production race (builder vs execution) starting", {
@@ -484,25 +470,20 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
484
470
  if (builder.status === "pending" && engine.status === "pending") {
485
471
  throw Error("Builder and engine both failed to produce the block within timeout");
486
472
  }
487
- if (builder.status === "pending" && !isEngineEnabled) {
488
- throw Error("Builder failed to produce the block within timeout");
489
- }
490
473
  if (engine.status === "pending" && !isBuilderEnabled) {
491
474
  throw Error("Engine failed to produce the block within timeout");
492
475
  }
493
- if (isEngineEnabled) {
494
- if (engine.status === "rejected") {
495
- logger.warn("Engine failed to produce the block", {
496
- ...loggerContext,
497
- durationMs: engine.durationMs,
498
- }, engine.reason);
499
- }
500
- else if (engine.status === "pending") {
501
- logger.warn("Engine failed to produce the block within cutoff time", {
502
- ...loggerContext,
503
- cutoffMs,
504
- });
505
- }
476
+ if (engine.status === "rejected") {
477
+ logger.warn("Engine failed to produce the block", {
478
+ ...loggerContext,
479
+ durationMs: engine.durationMs,
480
+ }, engine.reason);
481
+ }
482
+ else if (engine.status === "pending") {
483
+ logger.warn("Engine failed to produce the block within cutoff time", {
484
+ ...loggerContext,
485
+ cutoffMs,
486
+ });
506
487
  }
507
488
  if (isBuilderEnabled) {
508
489
  if (builder.status === "rejected") {
@@ -527,11 +508,11 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
527
508
  }
528
509
  }
529
510
  if (builder.status === "rejected" && engine.status === "rejected") {
530
- throw Error(`${isBuilderEnabled && isEngineEnabled ? "Builder and engine both" : isBuilderEnabled ? "Builder" : "Engine"} failed to produce the block`);
511
+ throw Error(`${isBuilderEnabled ? "Builder and engine both" : "Engine"} failed to produce the block`);
531
512
  }
532
513
  // handle shouldOverrideBuilder separately
533
- if (engine.status === "fulfilled" && engine.value.shouldOverrideBuilder) {
534
- logger.info("Selected engine block: censorship suspected in builder blocks", {
514
+ if (engine.status === "fulfilled" && engine.value.shouldOverrideBuilder && isBuilderEnabled) {
515
+ logger.warn("Selected engine block: censorship suspected in builder blocks", {
535
516
  ...loggerContext,
536
517
  durationMs: engine.durationMs,
537
518
  shouldOverrideBuilder: engine.value.shouldOverrideBuilder,
@@ -544,11 +525,9 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
544
525
  return { ...engine.value, executionPayloadBlinded: false, executionPayloadSource: ProducedBlockSource.engine };
545
526
  }
546
527
  if (builder.status === "fulfilled" && engine.status !== "fulfilled") {
547
- const reason = isEngineEnabled === false
548
- ? BuilderBlockSelectionReason.EngineDisabled
549
- : engine.status === "pending"
550
- ? BuilderBlockSelectionReason.EnginePending
551
- : BuilderBlockSelectionReason.EngineError;
528
+ const reason = engine.status === "pending"
529
+ ? BuilderBlockSelectionReason.EnginePending
530
+ : BuilderBlockSelectionReason.EngineError;
552
531
  logger.info("Selected builder block: no engine block produced", {
553
532
  reason,
554
533
  ...loggerContext,
@@ -632,11 +611,20 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
632
611
  }
633
612
  return { data, meta };
634
613
  },
635
- async produceBlockV4({ slot, randaoReveal, graffiti, feeRecipient }) {
614
+ async produceBlockV4({ slot, randaoReveal, graffiti, feeRecipient, includePayload, builderSelection, builderBoostFactor, }) {
636
615
  const fork = config.getForkName(slot);
637
616
  if (!isForkPostGloas(fork)) {
638
617
  throw new ApiError(400, `produceBlockV4 not supported for pre-gloas fork=${fork}`);
639
618
  }
619
+ builderSelection = builderSelection ?? routes.validator.BuilderSelection.MaxProfit;
620
+ if (builderSelection === routes.validator.BuilderSelection.BuilderOnly) {
621
+ logger.warn("Builder selection builderonly is no longer supported, treating as builderalways");
622
+ builderSelection = routes.validator.BuilderSelection.BuilderAlways;
623
+ }
624
+ builderBoostFactor = builderBoostFactor ?? BigInt(100);
625
+ if (builderBoostFactor > MAX_BUILDER_BOOST_FACTOR) {
626
+ throw new ApiError(400, `Invalid builderBoostFactor=${builderBoostFactor} > MAX_BUILDER_BOOST_FACTOR`);
627
+ }
640
628
  notWhileSyncing(chain, sync.state);
641
629
  await waitForSlot(slot);
642
630
  const parentBlock = chain.getProposerHead(slot);
@@ -648,13 +636,14 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
648
636
  private: opts.private,
649
637
  graffitiAppend: chain.opts.graffitiAppend,
650
638
  }));
651
- // TODO GLOAS: respect builderSelection (MaxProfit, BuilderAlways, ExecutionAlways, etc.) to let
652
- // the user control bid source preferences and value comparison. Also add external builder api
653
- // support when it is implemented.
639
+ // TODO GLOAS: add external builder api support when it is implemented
654
640
  const isBuildingOnFull = chain.forkChoice.shouldBuildOnFull(parentBlock, slot);
655
641
  const bidParentBlockHash = isBuildingOnFull ? parentBlock.executionPayloadBlockHash : parentBlock.parentBlockHash;
642
+ // Bids are only skipped entirely with executiononly or while the circuit breaker is active,
643
+ // other engine-preferring selections still build a block with the best bid as fallback in
644
+ // case local production fails
656
645
  const circuitBreakerActive = chain.builderCircuitBreaker.isActive(slot);
657
- const builderBid = circuitBreakerActive
646
+ const builderBid = builderSelection === routes.validator.BuilderSelection.ExecutionOnly || circuitBreakerActive
658
647
  ? null
659
648
  : chain.executionPayloadBidPool.getBestBid(slot, bidParentBlockHash, parentBlockRootHex);
660
649
  const logCtx = {
@@ -663,6 +652,8 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
663
652
  parentBlockRoot: parentBlockRootHex,
664
653
  parentBlockHash: parentBlock.executionPayloadBlockHash,
665
654
  fork,
655
+ builderSelection,
656
+ builderBoostFactor,
666
657
  circuitBreakerActive,
667
658
  ...(builderBid !== null
668
659
  ? {
@@ -694,32 +685,91 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
694
685
  const t = metrics?.blockProductionTime.startTimer();
695
686
  return fn().finally(() => t?.({ source }));
696
687
  };
697
- // Always build local block. If builder bid available, also build with it in parallel and prefer it.
698
- const [engineResult, bidResult] = await Promise.allSettled([
699
- timed(ProducedBlockSource.engine, () => chain.produceBlock(baseAttrs)),
700
- builderBid !== null
701
- ? timed(ProducedBlockSource.builder, () => chain.produceBlock({ ...baseAttrs, builderBid }))
702
- : Promise.reject(),
703
- ]);
688
+ // Calculate cutoff time based on start of the slot, ensures a slow local payload build does
689
+ // not delay the proposal when a builder bid block is available (and vice versa)
690
+ const cutoffMs = Math.max(0, BLOCK_PRODUCTION_RACE_CUTOFF_MS - chain.clock.msFromSlot(slot));
691
+ // use abort controller to stop waiting for the bid block if the engine block will be selected
692
+ const controller = new AbortController();
693
+ const enginePromise = timed(ProducedBlockSource.engine, () => chain.produceBlock(baseAttrs)).then((engineBlock) => {
694
+ // No need to wait for the bid block if the engine block will always be selected due to
695
+ // suspected builder censorship, a builder boost factor of 0 or executionalways selection
696
+ if (engineBlock.shouldOverrideBuilder ||
697
+ builderBoostFactor === BigInt(0) ||
698
+ builderSelection === routes.validator.BuilderSelection.ExecutionAlways) {
699
+ controller.abort();
700
+ }
701
+ return engineBlock;
702
+ });
703
+ const bidPromise = builderBid !== null
704
+ ? timed(ProducedBlockSource.builder, () => chain.produceBlock({ ...baseAttrs, builderBid }))
705
+ : Promise.reject(new Error("No builder bid available"));
706
+ const [engineResult, bidResult] = await resolveOrRacePromises([enginePromise, bidPromise], {
707
+ resolveTimeoutMs: cutoffMs,
708
+ raceTimeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
709
+ signal: controller.signal,
710
+ });
704
711
  let bestResult = null;
705
712
  let source = ProducedBlockSource.engine;
706
- if (builderBid !== null && bidResult.status === "fulfilled") {
713
+ // handle shouldOverrideBuilder separately
714
+ if (engineResult.status === "fulfilled" && engineResult.value.shouldOverrideBuilder && builderBid !== null) {
715
+ source = ProducedBlockSource.engine;
716
+ bestResult = engineResult;
717
+ metrics?.blockProductionSelectionResults.inc({
718
+ source: ProducedBlockSource.engine,
719
+ reason: EngineBlockSelectionReason.BuilderCensorship,
720
+ });
721
+ logger.warn("Selected local block: censorship suspected in builder bid", logCtx);
722
+ }
723
+ else if (engineResult.status === "fulfilled" && bidResult.status === "fulfilled") {
724
+ const result = selectBlockProductionSource({
725
+ builderSelection,
726
+ builderBoostFactor,
727
+ engineExecutionPayloadValue: engineResult.value.executionPayloadValue,
728
+ // The bid value is the payment to the proposer, in Gwei
729
+ builderExecutionPayloadValue: BigInt(builderBid?.message.value ?? 0) * GWEI_TO_WEI,
730
+ });
731
+ source = result.source;
732
+ metrics?.blockProductionSelectionResults.inc(result);
733
+ logger.info(`Selected ${source} block`, { reason: result.reason, ...logCtx });
734
+ bestResult = source === ProducedBlockSource.builder ? bidResult : engineResult;
735
+ }
736
+ else if (bidResult.status === "fulfilled") {
707
737
  source = ProducedBlockSource.builder;
708
738
  bestResult = bidResult;
709
- logger.info("Selected builder bid block", logCtx);
739
+ const reason = engineResult.status === "pending"
740
+ ? BuilderBlockSelectionReason.EnginePending
741
+ : BuilderBlockSelectionReason.EngineError;
742
+ metrics?.blockProductionSelectionResults.inc({ source: ProducedBlockSource.builder, reason });
743
+ logger.info("Selected builder bid block: no local block produced", {
744
+ reason,
745
+ ...logCtx,
746
+ error: engineResult.status === "rejected" ? engineResult.reason.message : undefined,
747
+ });
710
748
  }
711
749
  else if (engineResult.status === "fulfilled") {
712
750
  source = ProducedBlockSource.engine;
713
751
  bestResult = engineResult;
714
- if (builderBid !== null) {
715
- logger.warn("Builder bid block production failed, using local block", logCtx);
716
- }
752
+ const reason = builderBid === null
753
+ ? EngineBlockSelectionReason.BuilderNoBid
754
+ : bidResult.status === "pending"
755
+ ? EngineBlockSelectionReason.BuilderPending
756
+ : EngineBlockSelectionReason.BuilderError;
757
+ metrics?.blockProductionSelectionResults.inc({ source: ProducedBlockSource.engine, reason });
758
+ logger.info("Selected local block: no builder bid block produced", {
759
+ reason,
760
+ ...logCtx,
761
+ error: bidResult.status === "rejected" ? bidResult.reason.message : undefined,
762
+ });
717
763
  }
718
764
  if (bestResult === null || bestResult.status !== "fulfilled") {
719
- const engineReason = engineResult.status === "rejected" ? engineResult.reason : undefined;
720
- const bidReason = builderBid !== null && bidResult.status === "rejected" ? bidResult.reason : undefined;
721
- logger.error("Block production failed", { ...logCtx, engineReason, bidReason });
722
- throw Error(`Block production failed: engine=${engineReason ?? "n/a"} builder=${bidReason ?? "n/a"}`);
765
+ const engineReason = engineResult.status === "rejected" ? engineResult.reason : engineResult.status;
766
+ const bidReason = bidResult.status === "rejected" ? bidResult.reason : bidResult.status;
767
+ logger.error("Block production failed", {
768
+ ...logCtx,
769
+ engineReason: String(engineReason),
770
+ bidReason: String(bidReason),
771
+ });
772
+ throw Error(`Block production failed: engine=${String(engineReason)} builder=${String(bidReason)}`);
723
773
  }
724
774
  const { block, executionPayloadValue, consensusBlockValue } = bestResult.value;
725
775
  metrics?.blockProductionSuccess.inc({ source });
@@ -736,9 +786,36 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
736
786
  if (chain.opts.persistProducedBlocks) {
737
787
  void chain.persistBlock(block, "produced_engine_block");
738
788
  }
789
+ // Include the payload for self-builds unless disabled (stateless flow)
790
+ const isSelfBuild = source === ProducedBlockSource.engine;
791
+ if (isSelfBuild && includePayload) {
792
+ const produceResult = chain.blockProductionCache.get(blockRoot);
793
+ if (produceResult === undefined ||
794
+ !isForkPostGloas(produceResult.fork) ||
795
+ produceResult.type !== BlockType.Full) {
796
+ throw Error(`Missing cached block production result for produced block slot=${slot} blockRoot=${blockRoot}`);
797
+ }
798
+ const { executionPayload, executionRequests, blobsBundle, parentBlockRoot } = produceResult;
799
+ const blockContents = {
800
+ block: block,
801
+ executionPayloadEnvelope: {
802
+ payload: executionPayload,
803
+ executionRequests,
804
+ builderIndex: BUILDER_INDEX_SELF_BUILD,
805
+ beaconBlockRoot: fromHex(blockRoot),
806
+ parentBeaconBlockRoot: parentBlockRoot,
807
+ },
808
+ kzgProofs: blobsBundle.proofs,
809
+ blobs: blobsBundle.blobs,
810
+ };
811
+ return {
812
+ data: blockContents,
813
+ meta: { version: fork, consensusBlockValue, executionPayloadValue, executionPayloadIncluded: true },
814
+ };
815
+ }
739
816
  return {
740
817
  data: block,
741
- meta: { version: fork, consensusBlockValue },
818
+ meta: { version: fork, consensusBlockValue, executionPayloadValue, executionPayloadIncluded: false },
742
819
  };
743
820
  },
744
821
  async produceAttestationData({ committeeIndex, slot }) {
@@ -1320,7 +1397,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
1320
1397
  const filteredRegistrations = registrations.filter((registration) => {
1321
1398
  const { pubkey } = registration.message;
1322
1399
  const validatorIndex = chain.pubkeyCache.getIndex(pubkey);
1323
- if (validatorIndex === null)
1400
+ if (validatorIndex === null || validatorIndex >= headState.validatorCount)
1324
1401
  return false;
1325
1402
  const validator = headState.getValidator(validatorIndex);
1326
1403
  const status = getValidatorStatus(validator, currentEpoch);
@@ -1388,6 +1465,13 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
1388
1465
  throw Error("Cached block production result is not full block");
1389
1466
  }
1390
1467
  const { executionPayload, executionRequests, parentBlockRoot } = produceResult;
1468
+ if (executionPayload === undefined) {
1469
+ // Blocks committing to a builder bid are cached as full but without payload data
1470
+ throw new ApiError(404, `No local execution payload cached for block root ${blockRootHex}`);
1471
+ }
1472
+ if (executionPayload.slotNumber !== slot) {
1473
+ throw new ApiError(404, `Cached execution payload is for slot=${executionPayload.slotNumber}, requested slot=${slot}`);
1474
+ }
1391
1475
  const envelope = {
1392
1476
  payload: executionPayload,
1393
1477
  executionRequests: executionRequests,