@lodestar/beacon-node 1.50.0-dev.70314c9caa → 1.50.0-dev.791f801899

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 (298) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +6 -1
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/index.js +13 -0
  6. package/lib/api/impl/beacon/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/state/index.js +28 -6
  9. package/lib/api/impl/beacon/state/index.js.map +1 -1
  10. package/lib/api/impl/debug/index.d.ts.map +1 -1
  11. package/lib/api/impl/debug/index.js +26 -18
  12. package/lib/api/impl/debug/index.js.map +1 -1
  13. package/lib/api/impl/validator/index.d.ts +1 -0
  14. package/lib/api/impl/validator/index.d.ts.map +1 -1
  15. package/lib/api/impl/validator/index.js +23 -1
  16. package/lib/api/impl/validator/index.js.map +1 -1
  17. package/lib/chain/archiveStore/archiveStore.d.ts +5 -0
  18. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  19. package/lib/chain/archiveStore/archiveStore.js +14 -24
  20. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  21. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +2 -2
  22. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  23. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +5 -7
  24. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  25. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -1
  26. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  27. package/lib/chain/archiveStore/historicalState/types.d.ts +2 -2
  28. package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
  29. package/lib/chain/archiveStore/historicalState/worker.js +1 -1
  30. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  31. package/lib/chain/archiveStore/interface.d.ts +1 -1
  32. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  33. package/lib/chain/archiveStore/utils/pruneHistory.d.ts +1 -1
  34. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +1 -1
  35. package/lib/chain/archiveStore/utils/pruneHistory.js +2 -1
  36. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  37. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  38. package/lib/chain/blocks/importBlock.js +13 -6
  39. package/lib/chain/blocks/importBlock.js.map +1 -1
  40. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  41. package/lib/chain/blocks/verifyBlock.js +7 -7
  42. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  43. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +2 -1
  44. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  45. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +5 -4
  46. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  47. package/lib/chain/chain.d.ts +9 -5
  48. package/lib/chain/chain.d.ts.map +1 -1
  49. package/lib/chain/chain.js +89 -33
  50. package/lib/chain/chain.js.map +1 -1
  51. package/lib/chain/emitter.d.ts +7 -1
  52. package/lib/chain/emitter.d.ts.map +1 -1
  53. package/lib/chain/emitter.js +5 -0
  54. package/lib/chain/emitter.js.map +1 -1
  55. package/lib/chain/errors/envelopeReconstructionError.d.ts +5 -0
  56. package/lib/chain/errors/envelopeReconstructionError.d.ts.map +1 -1
  57. package/lib/chain/errors/envelopeReconstructionError.js +2 -0
  58. package/lib/chain/errors/envelopeReconstructionError.js.map +1 -1
  59. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  60. package/lib/chain/forkChoice/index.js +2 -0
  61. package/lib/chain/forkChoice/index.js.map +1 -1
  62. package/lib/chain/interface.d.ts +3 -2
  63. package/lib/chain/interface.d.ts.map +1 -1
  64. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -2
  65. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  66. package/lib/chain/opPools/aggregatedAttestationPool.js +30 -8
  67. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  68. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  69. package/lib/chain/opPools/opPool.js +1 -23
  70. package/lib/chain/opPools/opPool.js.map +1 -1
  71. package/lib/chain/opPools/proposerPreferencesPool.d.ts +8 -4
  72. package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
  73. package/lib/chain/opPools/proposerPreferencesPool.js +27 -12
  74. package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
  75. package/lib/chain/opPools/utils.d.ts +11 -0
  76. package/lib/chain/opPools/utils.d.ts.map +1 -1
  77. package/lib/chain/opPools/utils.js +22 -0
  78. package/lib/chain/opPools/utils.js.map +1 -1
  79. package/lib/chain/options.d.ts +2 -1
  80. package/lib/chain/options.d.ts.map +1 -1
  81. package/lib/chain/options.js +1 -1
  82. package/lib/chain/options.js.map +1 -1
  83. package/lib/chain/produceBlock/computeNewStateRoot.js +1 -1
  84. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  85. package/lib/chain/regen/regen.d.ts +2 -0
  86. package/lib/chain/regen/regen.d.ts.map +1 -1
  87. package/lib/chain/regen/regen.js +10 -4
  88. package/lib/chain/regen/regen.js.map +1 -1
  89. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -0
  90. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  91. package/lib/chain/seenCache/seenGossipBlockInput.js +21 -0
  92. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  93. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +3 -2
  94. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  95. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +13 -13
  96. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  97. package/lib/chain/shufflingCache.d.ts +18 -8
  98. package/lib/chain/shufflingCache.d.ts.map +1 -1
  99. package/lib/chain/shufflingCache.js +72 -18
  100. package/lib/chain/shufflingCache.js.map +1 -1
  101. package/lib/chain/validatorMonitor.d.ts +5 -1
  102. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  103. package/lib/chain/validatorMonitor.js +64 -54
  104. package/lib/chain/validatorMonitor.js.map +1 -1
  105. package/lib/db/beacon.d.ts +4 -1
  106. package/lib/db/beacon.d.ts.map +1 -1
  107. package/lib/db/beacon.js +6 -1
  108. package/lib/db/beacon.js.map +1 -1
  109. package/lib/db/buckets.d.ts +3 -1
  110. package/lib/db/buckets.d.ts.map +1 -1
  111. package/lib/db/buckets.js +2 -0
  112. package/lib/db/buckets.js.map +1 -1
  113. package/lib/db/interface.d.ts +4 -1
  114. package/lib/db/interface.d.ts.map +1 -1
  115. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  116. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  117. package/lib/db/repositories/earliestAvailableSlot.d.ts +11 -0
  118. package/lib/db/repositories/earliestAvailableSlot.d.ts.map +1 -0
  119. package/lib/db/repositories/earliestAvailableSlot.js +19 -0
  120. package/lib/db/repositories/earliestAvailableSlot.js.map +1 -0
  121. package/lib/db/repositories/index.d.ts +1 -0
  122. package/lib/db/repositories/index.d.ts.map +1 -1
  123. package/lib/db/repositories/index.js +1 -0
  124. package/lib/db/repositories/index.js.map +1 -1
  125. package/lib/db/repositories/proposerPreferences.d.ts +14 -0
  126. package/lib/db/repositories/proposerPreferences.d.ts.map +1 -0
  127. package/lib/db/repositories/proposerPreferences.js +21 -0
  128. package/lib/db/repositories/proposerPreferences.js.map +1 -0
  129. package/lib/execution/engine/blobVersionedHashes.d.ts +9 -0
  130. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -0
  131. package/lib/execution/engine/blobVersionedHashes.js +74 -0
  132. package/lib/execution/engine/blobVersionedHashes.js.map +1 -0
  133. package/lib/execution/engine/disabled.d.ts +0 -2
  134. package/lib/execution/engine/disabled.d.ts.map +1 -1
  135. package/lib/execution/engine/disabled.js +0 -6
  136. package/lib/execution/engine/disabled.js.map +1 -1
  137. package/lib/execution/engine/http.d.ts +46 -16
  138. package/lib/execution/engine/http.d.ts.map +1 -1
  139. package/lib/execution/engine/http.js +236 -213
  140. package/lib/execution/engine/http.js.map +1 -1
  141. package/lib/execution/engine/index.d.ts +3 -2
  142. package/lib/execution/engine/index.d.ts.map +1 -1
  143. package/lib/execution/engine/index.js +33 -8
  144. package/lib/execution/engine/index.js.map +1 -1
  145. package/lib/execution/engine/interface.d.ts +2 -4
  146. package/lib/execution/engine/interface.d.ts.map +1 -1
  147. package/lib/execution/engine/jsonRpcTransport.d.ts +25 -0
  148. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -0
  149. package/lib/execution/engine/jsonRpcTransport.js +158 -0
  150. package/lib/execution/engine/jsonRpcTransport.js.map +1 -0
  151. package/lib/execution/engine/mock.d.ts +0 -2
  152. package/lib/execution/engine/mock.d.ts.map +1 -1
  153. package/lib/execution/engine/mock.js +0 -8
  154. package/lib/execution/engine/mock.js.map +1 -1
  155. package/lib/execution/engine/restHttpClient.d.ts +71 -0
  156. package/lib/execution/engine/restHttpClient.d.ts.map +1 -0
  157. package/lib/execution/engine/restHttpClient.js +201 -0
  158. package/lib/execution/engine/restHttpClient.js.map +1 -0
  159. package/lib/execution/engine/restTransport.d.ts +46 -0
  160. package/lib/execution/engine/restTransport.d.ts.map +1 -0
  161. package/lib/execution/engine/restTransport.js +399 -0
  162. package/lib/execution/engine/restTransport.js.map +1 -0
  163. package/lib/execution/engine/sszTypes.d.ts +1261 -0
  164. package/lib/execution/engine/sszTypes.d.ts.map +1 -0
  165. package/lib/execution/engine/sszTypes.js +216 -0
  166. package/lib/execution/engine/sszTypes.js.map +1 -0
  167. package/lib/execution/engine/transport.d.ts +39 -0
  168. package/lib/execution/engine/transport.d.ts.map +1 -0
  169. package/lib/execution/engine/transport.js +2 -0
  170. package/lib/execution/engine/transport.js.map +1 -0
  171. package/lib/execution/engine/types.d.ts +2 -8
  172. package/lib/execution/engine/types.d.ts.map +1 -1
  173. package/lib/execution/engine/types.js +24 -57
  174. package/lib/execution/engine/types.js.map +1 -1
  175. package/lib/execution/engine/utils.d.ts.map +1 -1
  176. package/lib/execution/engine/utils.js +9 -2
  177. package/lib/execution/engine/utils.js.map +1 -1
  178. package/lib/metrics/metrics/lodestar.d.ts +10 -0
  179. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  180. package/lib/metrics/metrics/lodestar.js +22 -0
  181. package/lib/metrics/metrics/lodestar.js.map +1 -1
  182. package/lib/metrics/metrics.d.ts +7 -3
  183. package/lib/metrics/metrics.d.ts.map +1 -1
  184. package/lib/metrics/metrics.js +4 -4
  185. package/lib/metrics/metrics.js.map +1 -1
  186. package/lib/network/core/events.d.ts +5 -1
  187. package/lib/network/core/events.d.ts.map +1 -1
  188. package/lib/network/core/events.js +8 -0
  189. package/lib/network/core/events.js.map +1 -1
  190. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  191. package/lib/network/processor/gossipHandlers.js +59 -63
  192. package/lib/network/processor/gossipHandlers.js.map +1 -1
  193. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +1 -1
  194. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -1
  195. package/lib/node/nodejs.d.ts +3 -1
  196. package/lib/node/nodejs.d.ts.map +1 -1
  197. package/lib/node/nodejs.js +27 -4
  198. package/lib/node/nodejs.js.map +1 -1
  199. package/lib/node/options.d.ts +3 -2
  200. package/lib/node/options.d.ts.map +1 -1
  201. package/lib/node/options.js +2 -2
  202. package/lib/node/options.js.map +1 -1
  203. package/lib/sync/range/batch.d.ts +11 -5
  204. package/lib/sync/range/batch.d.ts.map +1 -1
  205. package/lib/sync/range/batch.js +21 -17
  206. package/lib/sync/range/batch.js.map +1 -1
  207. package/lib/sync/range/chain.d.ts +4 -4
  208. package/lib/sync/range/chain.d.ts.map +1 -1
  209. package/lib/sync/range/chain.js +12 -6
  210. package/lib/sync/range/chain.js.map +1 -1
  211. package/lib/sync/range/range.d.ts.map +1 -1
  212. package/lib/sync/range/range.js +25 -11
  213. package/lib/sync/range/range.js.map +1 -1
  214. package/lib/sync/unknownBlock.d.ts +5 -2
  215. package/lib/sync/unknownBlock.d.ts.map +1 -1
  216. package/lib/sync/unknownBlock.js +44 -20
  217. package/lib/sync/unknownBlock.js.map +1 -1
  218. package/lib/sync/utils/downloadByRange.d.ts +38 -14
  219. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  220. package/lib/sync/utils/downloadByRange.js +84 -39
  221. package/lib/sync/utils/downloadByRange.js.map +1 -1
  222. package/lib/util/asyncIterableToEvents.d.ts +10 -2
  223. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  224. package/lib/util/asyncIterableToEvents.js +29 -3
  225. package/lib/util/asyncIterableToEvents.js.map +1 -1
  226. package/lib/util/execution.d.ts +9 -11
  227. package/lib/util/execution.d.ts.map +1 -1
  228. package/lib/util/execution.js +5 -1
  229. package/lib/util/execution.js.map +1 -1
  230. package/lib/util/metadata.d.ts.map +1 -1
  231. package/lib/util/metadata.js +2 -1
  232. package/lib/util/metadata.js.map +1 -1
  233. package/package.json +18 -17
  234. package/src/api/impl/beacon/blocks/index.ts +7 -4
  235. package/src/api/impl/beacon/index.ts +15 -0
  236. package/src/api/impl/beacon/state/index.ts +43 -6
  237. package/src/api/impl/debug/index.ts +28 -19
  238. package/src/api/impl/validator/index.ts +24 -2
  239. package/src/chain/archiveStore/archiveStore.ts +19 -25
  240. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +5 -7
  241. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +1 -1
  242. package/src/chain/archiveStore/historicalState/types.ts +2 -2
  243. package/src/chain/archiveStore/historicalState/worker.ts +1 -2
  244. package/src/chain/archiveStore/interface.ts +1 -1
  245. package/src/chain/archiveStore/utils/pruneHistory.ts +4 -1
  246. package/src/chain/blocks/importBlock.ts +16 -5
  247. package/src/chain/blocks/verifyBlock.ts +8 -6
  248. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -3
  249. package/src/chain/chain.ts +117 -35
  250. package/src/chain/emitter.ts +7 -1
  251. package/src/chain/errors/envelopeReconstructionError.ts +3 -0
  252. package/src/chain/forkChoice/index.ts +2 -0
  253. package/src/chain/interface.ts +3 -2
  254. package/src/chain/opPools/aggregatedAttestationPool.ts +34 -10
  255. package/src/chain/opPools/opPool.ts +1 -31
  256. package/src/chain/opPools/proposerPreferencesPool.ts +34 -11
  257. package/src/chain/opPools/utils.ts +31 -0
  258. package/src/chain/options.ts +3 -3
  259. package/src/chain/produceBlock/computeNewStateRoot.ts +1 -1
  260. package/src/chain/regen/regen.ts +12 -4
  261. package/src/chain/seenCache/seenGossipBlockInput.ts +23 -0
  262. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +20 -13
  263. package/src/chain/shufflingCache.ts +84 -22
  264. package/src/chain/validatorMonitor.ts +75 -57
  265. package/src/db/beacon.ts +6 -0
  266. package/src/db/buckets.ts +2 -0
  267. package/src/db/interface.ts +4 -0
  268. package/src/db/repositories/earliestAvailableSlot.ts +19 -0
  269. package/src/db/repositories/index.ts +1 -0
  270. package/src/db/repositories/proposerPreferences.ts +23 -0
  271. package/src/execution/engine/blobVersionedHashes.ts +72 -0
  272. package/src/execution/engine/disabled.ts +0 -8
  273. package/src/execution/engine/http.ts +304 -300
  274. package/src/execution/engine/index.ts +41 -7
  275. package/src/execution/engine/interface.ts +2 -6
  276. package/src/execution/engine/jsonRpcTransport.ts +247 -0
  277. package/src/execution/engine/mock.ts +1 -19
  278. package/src/execution/engine/restHttpClient.ts +269 -0
  279. package/src/execution/engine/restTransport.ts +544 -0
  280. package/src/execution/engine/sszTypes.ts +354 -0
  281. package/src/execution/engine/transport.ts +61 -0
  282. package/src/execution/engine/types.ts +34 -84
  283. package/src/execution/engine/utils.ts +12 -2
  284. package/src/metrics/metrics/lodestar.ts +23 -0
  285. package/src/metrics/metrics.ts +21 -6
  286. package/src/network/core/events.ts +16 -1
  287. package/src/network/processor/gossipHandlers.ts +90 -76
  288. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +1 -1
  289. package/src/node/nodejs.ts +35 -3
  290. package/src/node/options.ts +10 -1
  291. package/src/sync/range/batch.ts +25 -19
  292. package/src/sync/range/chain.ts +15 -8
  293. package/src/sync/range/range.ts +26 -12
  294. package/src/sync/unknownBlock.ts +57 -21
  295. package/src/sync/utils/downloadByRange.ts +123 -58
  296. package/src/util/asyncIterableToEvents.ts +44 -5
  297. package/src/util/execution.ts +16 -8
  298. package/src/util/metadata.ts +2 -1
@@ -14,15 +14,9 @@ export class ExecutionEngineDisabled {
14
14
  async getBlobsBundle() {
15
15
  throw Error("Execution engine disabled");
16
16
  }
17
- getPayloadBodiesByHash() {
18
- throw Error("Execution engine disabled");
19
- }
20
17
  getPayloadBodiesByHashV2() {
21
18
  throw Error("Execution engine disabled");
22
19
  }
23
- getPayloadBodiesByRange() {
24
- throw Error("Execution engine disabled");
25
- }
26
20
  getBlobs() {
27
21
  throw Error("Execution engine disabled");
28
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"disabled.js","sourceRoot":"","sources":["../../../src/execution/engine/disabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAoB,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAEtF,MAAM,OAAO,uBAAuB;IAClC,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC;IAE5B,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE/C,KAAK,CAAC,gBAAgB;QACpB,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,sBAAsB;QACpB,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,wBAAwB;QACtB,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,uBAAuB;QACrB,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"disabled.js","sourceRoot":"","sources":["../../../src/execution/engine/disabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAoB,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAEtF,MAAM,OAAO,uBAAuB;IAClC,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC;IAE5B,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE/C,KAAK,CAAC,gBAAgB;QACpB,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,wBAAwB;QACtB,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -5,19 +5,29 @@ import { BlobAndProof } from "@lodestar/types/deneb";
5
5
  import { BlobAndProofV2 } from "@lodestar/types/fulu";
6
6
  import { Metrics } from "../../metrics/index.js";
7
7
  import { ClientVersion, ExecutePayloadResponse, ExecutionEngineState, IExecutionEngine, PayloadAttributes, PayloadId, VersionedHashes } from "./interface.js";
8
- import { IJsonRpcHttpClient } from "./jsonRpcHttpClient.js";
9
8
  import { PayloadIdCache } from "./payloadIdCache.js";
10
- import { ExecutionPayloadBody, ExecutionPayloadBodyV2 } from "./types.js";
9
+ import { RestEngineTransport } from "./restTransport.js";
10
+ import { IEngineTransport } from "./transport.js";
11
+ import { ExecutionPayloadBodyV2 } from "./types.js";
11
12
  export type ExecutionEngineModules = {
12
13
  signal: AbortSignal;
13
14
  metrics?: Metrics | null;
14
15
  logger: Logger;
15
16
  };
17
+ /**
18
+ * Engine API transport selection
19
+ * - `auto`: negotiate REST with one execution URL; use JSON-RPC for multiple URLs or unadvertised features
20
+ * - `ssz`: always use the REST API with SSZ encoding
21
+ * - `json-rpc`: always use the legacy JSON-RPC API
22
+ */
23
+ export type EngineApiMode = "auto" | "ssz" | "json-rpc";
24
+ export declare const engineApiModes: EngineApiMode[];
16
25
  export type ExecutionEngineHttpOpts = {
17
26
  urls: string[];
18
27
  retries: number;
19
28
  retryDelay: number;
20
29
  timeout?: number;
30
+ engineApi?: EngineApiMode;
21
31
  /**
22
32
  * 256 bit jwt secret in hex format without the leading 0x. If provided, the execution engine
23
33
  * rpc requests will be bundled by an authorization header having a fresh jwt token on each
@@ -43,17 +53,21 @@ export type ExecutionEngineHttpOpts = {
43
53
  commit?: string;
44
54
  };
45
55
  export declare const defaultExecutionEngineHttpOpts: ExecutionEngineHttpOpts;
56
+ export type ExecutionEngineTransports = {
57
+ jsonRpc: IEngineTransport;
58
+ rest?: RestEngineTransport;
59
+ };
46
60
  /**
47
- * based on Ethereum JSON-RPC API and inherits the following properties of this standard:
48
- * - Supported communication protocols (HTTP and WebSocket)
49
- * - Message format and encoding notation
50
- * - Error codes improvement proposal
61
+ * Drives the execution client over the engine API, either the legacy `engine_*` JSON-RPC methods
62
+ * or the REST API with SSZ encoded bodies.
63
+ * https://github.com/ethereum/execution-apis/tree/main/src/engine
51
64
  *
52
- * Client software MUST expose Engine API at a port independent from JSON-RPC API. The default port for the Engine API is 8550 for HTTP and 8551 for WebSocket.
53
- * https://github.com/ethereum/execution-apis/blob/v1.0.0-alpha.1/src/engine/interop/specification.md
65
+ * In `auto` mode a capabilities response from a server without the REST API, a 4xx other than
66
+ * 401/403, selects JSON-RPC until the EL reconnects. Transient discovery failures use JSON-RPC while
67
+ * awaiting another probe; authentication failures fail visibly, malformed capabilities fall back to
68
+ * JSON-RPC with a warning. Forks and blob revisions the EL does not advertise also use JSON-RPC.
54
69
  */
55
70
  export declare class ExecutionEngineHttp implements IExecutionEngine {
56
- private readonly rpc;
57
71
  private readonly opts?;
58
72
  private logger;
59
73
  private metrics;
@@ -70,9 +84,15 @@ export declare class ExecutionEngineHttp implements IExecutionEngine {
70
84
  * the order of new payloads and fcUs is pretty important to EL, this queue will serialize the calls in the
71
85
  * order with which we make them.
72
86
  */
73
- private readonly rpcFetchQueue;
74
- private jobQueueProcessor;
75
- constructor(rpc: IJsonRpcHttpClient, { metrics, signal, logger }: ExecutionEngineModules, opts?: ExecutionEngineHttpOpts | undefined);
87
+ private readonly queue;
88
+ private readonly jsonRpc;
89
+ private readonly rest;
90
+ private readonly engineApi;
91
+ private restSupport;
92
+ private restProbe;
93
+ private lastRestProbeMs;
94
+ private readonly loggedRestFallbacks;
95
+ constructor({ jsonRpc, rest }: ExecutionEngineTransports, { metrics, signal, logger }: ExecutionEngineModules, opts?: ExecutionEngineHttpOpts | undefined);
76
96
  /**
77
97
  * `engine_newPayloadV1`
78
98
  * From: https://github.com/ethereum/execution-apis/blob/v1.0.0-alpha.6/src/engine/specification.md#engine_newpayloadv1
@@ -137,13 +157,23 @@ export declare class ExecutionEngineHttp implements IExecutionEngine {
137
157
  shouldOverrideBuilder?: boolean;
138
158
  }>;
139
159
  prunePayloadIdCache(): Promise<void>;
140
- getPayloadBodiesByHash(_fork: ForkName, blockHashes: RootHex[]): Promise<(ExecutionPayloadBody | null)[]>;
141
160
  getPayloadBodiesByHashV2(blockHashes: RootHex[]): Promise<(ExecutionPayloadBodyV2 | null)[]>;
142
- getPayloadBodiesByRange(_fork: ForkName, startBlockNumber: number, blockCount: number): Promise<(ExecutionPayloadBody | null)[]>;
143
161
  getBlobs(fork: ForkPostFulu, versionedHashes: VersionedHashes, buffers?: Uint8Array[]): Promise<BlobAndProofV2[] | null>;
144
162
  getBlobs(fork: ForkPreFulu, versionedHashes: VersionedHashes, buffers?: Uint8Array[]): Promise<(BlobAndProof | null)[]>;
145
- private getBlobsV1;
146
- private getBlobsV2;
163
+ private enqueue;
164
+ /**
165
+ * Run a call on the selected transport. An execution client that advertises a fork in its
166
+ * capabilities but rejects it with `unsupported-fork` is not spec compliant, keep the node
167
+ * functional by serving that fork over JSON-RPC from then on.
168
+ */
169
+ private withTransport;
170
+ private disableRestForFork;
171
+ /**
172
+ * Pick the transport for a call. Fork-scoped calls only go over REST if the execution client
173
+ * advertises that fork, blob requests only if it serves the needed `/blobs/vN` revision.
174
+ */
175
+ private getTransport;
176
+ private probeRestSupport;
147
177
  private getClientVersion;
148
178
  private updateEngineState;
149
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/execution/engine/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/execution/engine/http.ts"],"names":[],"mappings":"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"}