@lodestar/beacon-node 1.50.0-dev.023ad6c012 → 1.50.0-dev.03c05fa09a

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 (349) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +7 -2
  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 +80 -18
  16. package/lib/api/impl/validator/index.js.map +1 -1
  17. package/lib/chain/ColumnReconstructionTracker.d.ts +0 -2
  18. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  19. package/lib/chain/ColumnReconstructionTracker.js +4 -5
  20. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  21. package/lib/chain/archiveStore/archiveStore.d.ts +5 -0
  22. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  23. package/lib/chain/archiveStore/archiveStore.js +14 -24
  24. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  25. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +2 -2
  26. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  27. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +5 -7
  28. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  29. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -1
  30. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  31. package/lib/chain/archiveStore/historicalState/types.d.ts +2 -2
  32. package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
  33. package/lib/chain/archiveStore/historicalState/worker.js +1 -1
  34. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  35. package/lib/chain/archiveStore/interface.d.ts +1 -1
  36. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  37. package/lib/chain/archiveStore/utils/pruneHistory.d.ts +1 -1
  38. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +1 -1
  39. package/lib/chain/archiveStore/utils/pruneHistory.js +2 -1
  40. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  41. package/lib/chain/beaconProposerCache.d.ts +6 -0
  42. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  43. package/lib/chain/beaconProposerCache.js +16 -0
  44. package/lib/chain/beaconProposerCache.js.map +1 -1
  45. package/lib/chain/blocks/blockInput/blockInput.d.ts +1 -1
  46. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  47. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  48. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  49. package/lib/chain/blocks/importBlock.js +21 -12
  50. package/lib/chain/blocks/importBlock.js.map +1 -1
  51. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  52. package/lib/chain/blocks/verifyBlock.js +7 -7
  53. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  54. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +2 -1
  55. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  56. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +5 -4
  57. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  58. package/lib/chain/chain.d.ts +5 -1
  59. package/lib/chain/chain.d.ts.map +1 -1
  60. package/lib/chain/chain.js +94 -22
  61. package/lib/chain/chain.js.map +1 -1
  62. package/lib/chain/emitter.d.ts +7 -1
  63. package/lib/chain/emitter.d.ts.map +1 -1
  64. package/lib/chain/emitter.js +5 -0
  65. package/lib/chain/emitter.js.map +1 -1
  66. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  67. package/lib/chain/forkChoice/index.js +2 -0
  68. package/lib/chain/forkChoice/index.js.map +1 -1
  69. package/lib/chain/interface.d.ts +4 -1
  70. package/lib/chain/interface.d.ts.map +1 -1
  71. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -2
  72. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  73. package/lib/chain/opPools/aggregatedAttestationPool.js +30 -8
  74. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  75. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  76. package/lib/chain/opPools/opPool.js +1 -23
  77. package/lib/chain/opPools/opPool.js.map +1 -1
  78. package/lib/chain/opPools/proposerPreferencesPool.d.ts +8 -4
  79. package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
  80. package/lib/chain/opPools/proposerPreferencesPool.js +27 -12
  81. package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
  82. package/lib/chain/opPools/utils.d.ts +11 -0
  83. package/lib/chain/opPools/utils.d.ts.map +1 -1
  84. package/lib/chain/opPools/utils.js +22 -0
  85. package/lib/chain/opPools/utils.js.map +1 -1
  86. package/lib/chain/options.d.ts +2 -1
  87. package/lib/chain/options.d.ts.map +1 -1
  88. package/lib/chain/options.js +1 -1
  89. package/lib/chain/options.js.map +1 -1
  90. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  91. package/lib/chain/prepareNextSlot.js +15 -6
  92. package/lib/chain/prepareNextSlot.js.map +1 -1
  93. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  94. package/lib/chain/produceBlock/computeNewStateRoot.js +1 -1
  95. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  96. package/lib/chain/produceBlock/produceBlockBody.d.ts +8 -0
  97. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  98. package/lib/chain/produceBlock/produceBlockBody.js +48 -34
  99. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  100. package/lib/chain/regen/regen.d.ts +2 -0
  101. package/lib/chain/regen/regen.d.ts.map +1 -1
  102. package/lib/chain/regen/regen.js +10 -4
  103. package/lib/chain/regen/regen.js.map +1 -1
  104. package/lib/chain/reprocess.d.ts +2 -1
  105. package/lib/chain/reprocess.d.ts.map +1 -1
  106. package/lib/chain/reprocess.js +2 -1
  107. package/lib/chain/reprocess.js.map +1 -1
  108. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -0
  109. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  110. package/lib/chain/seenCache/seenGossipBlockInput.js +22 -1
  111. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  112. package/lib/chain/shufflingCache.d.ts +18 -8
  113. package/lib/chain/shufflingCache.d.ts.map +1 -1
  114. package/lib/chain/shufflingCache.js +72 -18
  115. package/lib/chain/shufflingCache.js.map +1 -1
  116. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  117. package/lib/chain/stateCache/persistentCheckpointsCache.js +1 -1
  118. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  119. package/lib/chain/validatorMonitor.d.ts +5 -1
  120. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  121. package/lib/chain/validatorMonitor.js +70 -58
  122. package/lib/chain/validatorMonitor.js.map +1 -1
  123. package/lib/constants/constants.d.ts +1 -0
  124. package/lib/constants/constants.d.ts.map +1 -1
  125. package/lib/constants/constants.js +1 -0
  126. package/lib/constants/constants.js.map +1 -1
  127. package/lib/db/beacon.d.ts +4 -1
  128. package/lib/db/beacon.d.ts.map +1 -1
  129. package/lib/db/beacon.js +6 -1
  130. package/lib/db/beacon.js.map +1 -1
  131. package/lib/db/buckets.d.ts +3 -1
  132. package/lib/db/buckets.d.ts.map +1 -1
  133. package/lib/db/buckets.js +2 -0
  134. package/lib/db/buckets.js.map +1 -1
  135. package/lib/db/interface.d.ts +4 -1
  136. package/lib/db/interface.d.ts.map +1 -1
  137. package/lib/db/repositories/blockArchive.js +2 -2
  138. package/lib/db/repositories/blockArchive.js.map +1 -1
  139. package/lib/db/repositories/blockArchiveIndex.d.ts +3 -3
  140. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  141. package/lib/db/repositories/blockArchiveIndex.js +1 -2
  142. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  143. package/lib/db/repositories/earliestAvailableSlot.d.ts +11 -0
  144. package/lib/db/repositories/earliestAvailableSlot.d.ts.map +1 -0
  145. package/lib/db/repositories/earliestAvailableSlot.js +19 -0
  146. package/lib/db/repositories/earliestAvailableSlot.js.map +1 -0
  147. package/lib/db/repositories/index.d.ts +1 -0
  148. package/lib/db/repositories/index.d.ts.map +1 -1
  149. package/lib/db/repositories/index.js +1 -0
  150. package/lib/db/repositories/index.js.map +1 -1
  151. package/lib/db/repositories/proposerPreferences.d.ts +14 -0
  152. package/lib/db/repositories/proposerPreferences.d.ts.map +1 -0
  153. package/lib/db/repositories/proposerPreferences.js +21 -0
  154. package/lib/db/repositories/proposerPreferences.js.map +1 -0
  155. package/lib/execution/engine/blobVersionedHashes.d.ts +9 -0
  156. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -0
  157. package/lib/execution/engine/blobVersionedHashes.js +74 -0
  158. package/lib/execution/engine/blobVersionedHashes.js.map +1 -0
  159. package/lib/execution/engine/disabled.d.ts +0 -2
  160. package/lib/execution/engine/disabled.d.ts.map +1 -1
  161. package/lib/execution/engine/disabled.js +0 -6
  162. package/lib/execution/engine/disabled.js.map +1 -1
  163. package/lib/execution/engine/http.d.ts +46 -16
  164. package/lib/execution/engine/http.d.ts.map +1 -1
  165. package/lib/execution/engine/http.js +236 -213
  166. package/lib/execution/engine/http.js.map +1 -1
  167. package/lib/execution/engine/index.d.ts +3 -2
  168. package/lib/execution/engine/index.d.ts.map +1 -1
  169. package/lib/execution/engine/index.js +33 -8
  170. package/lib/execution/engine/index.js.map +1 -1
  171. package/lib/execution/engine/interface.d.ts +2 -4
  172. package/lib/execution/engine/interface.d.ts.map +1 -1
  173. package/lib/execution/engine/jsonRpcTransport.d.ts +25 -0
  174. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -0
  175. package/lib/execution/engine/jsonRpcTransport.js +158 -0
  176. package/lib/execution/engine/jsonRpcTransport.js.map +1 -0
  177. package/lib/execution/engine/mock.d.ts +0 -2
  178. package/lib/execution/engine/mock.d.ts.map +1 -1
  179. package/lib/execution/engine/mock.js +0 -8
  180. package/lib/execution/engine/mock.js.map +1 -1
  181. package/lib/execution/engine/restHttpClient.d.ts +71 -0
  182. package/lib/execution/engine/restHttpClient.d.ts.map +1 -0
  183. package/lib/execution/engine/restHttpClient.js +201 -0
  184. package/lib/execution/engine/restHttpClient.js.map +1 -0
  185. package/lib/execution/engine/restTransport.d.ts +46 -0
  186. package/lib/execution/engine/restTransport.d.ts.map +1 -0
  187. package/lib/execution/engine/restTransport.js +399 -0
  188. package/lib/execution/engine/restTransport.js.map +1 -0
  189. package/lib/execution/engine/sszTypes.d.ts +1261 -0
  190. package/lib/execution/engine/sszTypes.d.ts.map +1 -0
  191. package/lib/execution/engine/sszTypes.js +216 -0
  192. package/lib/execution/engine/sszTypes.js.map +1 -0
  193. package/lib/execution/engine/transport.d.ts +39 -0
  194. package/lib/execution/engine/transport.d.ts.map +1 -0
  195. package/lib/execution/engine/transport.js +2 -0
  196. package/lib/execution/engine/transport.js.map +1 -0
  197. package/lib/execution/engine/types.d.ts +2 -8
  198. package/lib/execution/engine/types.d.ts.map +1 -1
  199. package/lib/execution/engine/types.js +31 -63
  200. package/lib/execution/engine/types.js.map +1 -1
  201. package/lib/execution/engine/utils.d.ts.map +1 -1
  202. package/lib/execution/engine/utils.js +9 -2
  203. package/lib/execution/engine/utils.js.map +1 -1
  204. package/lib/metrics/metrics/lodestar.d.ts +10 -0
  205. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  206. package/lib/metrics/metrics/lodestar.js +22 -0
  207. package/lib/metrics/metrics/lodestar.js.map +1 -1
  208. package/lib/metrics/metrics.d.ts +7 -3
  209. package/lib/metrics/metrics.d.ts.map +1 -1
  210. package/lib/metrics/metrics.js +4 -4
  211. package/lib/metrics/metrics.js.map +1 -1
  212. package/lib/network/core/events.d.ts +5 -1
  213. package/lib/network/core/events.d.ts.map +1 -1
  214. package/lib/network/core/events.js +8 -0
  215. package/lib/network/core/events.js.map +1 -1
  216. package/lib/network/gossip/topic.d.ts +0 -14
  217. package/lib/network/gossip/topic.d.ts.map +1 -1
  218. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  219. package/lib/network/processor/gossipHandlers.js +60 -64
  220. package/lib/network/processor/gossipHandlers.js.map +1 -1
  221. package/lib/network/processor/index.js +3 -3
  222. package/lib/network/processor/index.js.map +1 -1
  223. package/lib/network/reqresp/rateLimit.js +2 -2
  224. package/lib/network/reqresp/rateLimit.js.map +1 -1
  225. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  226. package/lib/network/subnets/attnetsService.js +3 -1
  227. package/lib/network/subnets/attnetsService.js.map +1 -1
  228. package/lib/node/nodejs.d.ts +3 -1
  229. package/lib/node/nodejs.d.ts.map +1 -1
  230. package/lib/node/nodejs.js +27 -4
  231. package/lib/node/nodejs.js.map +1 -1
  232. package/lib/node/notifier.d.ts.map +1 -1
  233. package/lib/node/notifier.js +12 -13
  234. package/lib/node/notifier.js.map +1 -1
  235. package/lib/node/options.d.ts +3 -2
  236. package/lib/node/options.d.ts.map +1 -1
  237. package/lib/node/options.js +2 -2
  238. package/lib/node/options.js.map +1 -1
  239. package/lib/sync/range/batch.d.ts +5 -5
  240. package/lib/sync/range/batch.d.ts.map +1 -1
  241. package/lib/sync/range/batch.js +11 -17
  242. package/lib/sync/range/batch.js.map +1 -1
  243. package/lib/sync/range/chain.d.ts +4 -4
  244. package/lib/sync/range/chain.d.ts.map +1 -1
  245. package/lib/sync/range/chain.js +12 -6
  246. package/lib/sync/range/chain.js.map +1 -1
  247. package/lib/sync/range/range.d.ts.map +1 -1
  248. package/lib/sync/range/range.js +25 -11
  249. package/lib/sync/range/range.js.map +1 -1
  250. package/lib/sync/unknownBlock.d.ts +5 -2
  251. package/lib/sync/unknownBlock.d.ts.map +1 -1
  252. package/lib/sync/unknownBlock.js +47 -22
  253. package/lib/sync/unknownBlock.js.map +1 -1
  254. package/lib/sync/utils/downloadByRange.d.ts +38 -14
  255. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  256. package/lib/sync/utils/downloadByRange.js +84 -39
  257. package/lib/sync/utils/downloadByRange.js.map +1 -1
  258. package/lib/util/asyncIterableToEvents.d.ts +10 -2
  259. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  260. package/lib/util/asyncIterableToEvents.js +29 -3
  261. package/lib/util/asyncIterableToEvents.js.map +1 -1
  262. package/lib/util/clock.d.ts.map +1 -1
  263. package/lib/util/clock.js +3 -4
  264. package/lib/util/clock.js.map +1 -1
  265. package/lib/util/metadata.d.ts.map +1 -1
  266. package/lib/util/metadata.js +2 -1
  267. package/lib/util/metadata.js.map +1 -1
  268. package/lib/util/sszBytes.d.ts +2 -2
  269. package/lib/util/sszBytes.d.ts.map +1 -1
  270. package/lib/util/sszBytes.js +22 -14
  271. package/lib/util/sszBytes.js.map +1 -1
  272. package/package.json +18 -17
  273. package/src/api/impl/beacon/blocks/index.ts +10 -3
  274. package/src/api/impl/beacon/index.ts +15 -0
  275. package/src/api/impl/beacon/state/index.ts +43 -6
  276. package/src/api/impl/debug/index.ts +28 -19
  277. package/src/api/impl/validator/index.ts +102 -21
  278. package/src/chain/ColumnReconstructionTracker.ts +4 -6
  279. package/src/chain/archiveStore/archiveStore.ts +19 -25
  280. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +5 -7
  281. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +1 -1
  282. package/src/chain/archiveStore/historicalState/types.ts +2 -2
  283. package/src/chain/archiveStore/historicalState/worker.ts +1 -2
  284. package/src/chain/archiveStore/interface.ts +1 -1
  285. package/src/chain/archiveStore/utils/pruneHistory.ts +4 -1
  286. package/src/chain/beaconProposerCache.ts +19 -1
  287. package/src/chain/blocks/blockInput/blockInput.ts +1 -1
  288. package/src/chain/blocks/importBlock.ts +25 -11
  289. package/src/chain/blocks/verifyBlock.ts +8 -6
  290. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -3
  291. package/src/chain/chain.ts +121 -21
  292. package/src/chain/emitter.ts +7 -1
  293. package/src/chain/forkChoice/index.ts +2 -0
  294. package/src/chain/interface.ts +5 -1
  295. package/src/chain/opPools/aggregatedAttestationPool.ts +34 -10
  296. package/src/chain/opPools/opPool.ts +1 -31
  297. package/src/chain/opPools/proposerPreferencesPool.ts +34 -11
  298. package/src/chain/opPools/utils.ts +31 -0
  299. package/src/chain/options.ts +3 -3
  300. package/src/chain/prepareNextSlot.ts +22 -6
  301. package/src/chain/produceBlock/computeNewStateRoot.ts +10 -3
  302. package/src/chain/produceBlock/produceBlockBody.ts +78 -39
  303. package/src/chain/regen/regen.ts +12 -4
  304. package/src/chain/reprocess.ts +2 -1
  305. package/src/chain/seenCache/seenGossipBlockInput.ts +25 -1
  306. package/src/chain/shufflingCache.ts +84 -22
  307. package/src/chain/stateCache/persistentCheckpointsCache.ts +4 -1
  308. package/src/chain/validatorMonitor.ts +82 -61
  309. package/src/constants/constants.ts +1 -0
  310. package/src/db/beacon.ts +6 -0
  311. package/src/db/buckets.ts +2 -0
  312. package/src/db/interface.ts +4 -0
  313. package/src/db/repositories/blockArchive.ts +2 -2
  314. package/src/db/repositories/blockArchiveIndex.ts +2 -3
  315. package/src/db/repositories/earliestAvailableSlot.ts +19 -0
  316. package/src/db/repositories/index.ts +1 -0
  317. package/src/db/repositories/proposerPreferences.ts +23 -0
  318. package/src/execution/engine/blobVersionedHashes.ts +72 -0
  319. package/src/execution/engine/disabled.ts +0 -8
  320. package/src/execution/engine/http.ts +304 -300
  321. package/src/execution/engine/index.ts +41 -7
  322. package/src/execution/engine/interface.ts +2 -6
  323. package/src/execution/engine/jsonRpcTransport.ts +247 -0
  324. package/src/execution/engine/mock.ts +1 -19
  325. package/src/execution/engine/restHttpClient.ts +269 -0
  326. package/src/execution/engine/restTransport.ts +544 -0
  327. package/src/execution/engine/sszTypes.ts +354 -0
  328. package/src/execution/engine/transport.ts +61 -0
  329. package/src/execution/engine/types.ts +42 -90
  330. package/src/execution/engine/utils.ts +12 -2
  331. package/src/metrics/metrics/lodestar.ts +23 -0
  332. package/src/metrics/metrics.ts +21 -6
  333. package/src/network/core/events.ts +16 -1
  334. package/src/network/processor/gossipHandlers.ts +91 -77
  335. package/src/network/processor/index.ts +3 -3
  336. package/src/network/reqresp/rateLimit.ts +2 -2
  337. package/src/network/subnets/attnetsService.ts +8 -3
  338. package/src/node/nodejs.ts +35 -3
  339. package/src/node/notifier.ts +14 -13
  340. package/src/node/options.ts +10 -1
  341. package/src/sync/range/batch.ts +14 -19
  342. package/src/sync/range/chain.ts +15 -8
  343. package/src/sync/range/range.ts +26 -12
  344. package/src/sync/unknownBlock.ts +60 -23
  345. package/src/sync/utils/downloadByRange.ts +123 -58
  346. package/src/util/asyncIterableToEvents.ts +44 -5
  347. package/src/util/clock.ts +3 -4
  348. package/src/util/metadata.ts +2 -1
  349. package/src/util/sszBytes.ts +25 -12
@@ -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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"}