@lodestar/beacon-node 1.50.0-dev.fef46df5ba → 1.50.0-rc.0
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.
- package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/blocks/index.js +6 -1
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/index.js +13 -0
- package/lib/api/impl/beacon/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +4 -4
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/index.js +28 -6
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/debug/index.d.ts.map +1 -1
- package/lib/api/impl/debug/index.js +26 -18
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts +1 -0
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +49 -1
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts +5 -0
- package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js +14 -24
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +2 -2
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js +5 -7
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/types.d.ts +2 -2
- package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
- package/lib/chain/archiveStore/interface.d.ts +1 -1
- package/lib/chain/archiveStore/interface.d.ts.map +1 -1
- package/lib/chain/archiveStore/utils/pruneHistory.d.ts +1 -1
- package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +1 -1
- package/lib/chain/archiveStore/utils/pruneHistory.js +2 -1
- package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
- package/lib/chain/beaconProposerCache.d.ts +6 -0
- package/lib/chain/beaconProposerCache.d.ts.map +1 -1
- package/lib/chain/beaconProposerCache.js +16 -0
- package/lib/chain/beaconProposerCache.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +18 -8
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +2 -1
- package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlock.js +7 -7
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +2 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +5 -4
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
- package/lib/chain/chain.d.ts +10 -5
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +105 -36
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +7 -1
- package/lib/chain/emitter.d.ts.map +1 -1
- package/lib/chain/emitter.js +5 -0
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/envelopeReconstructionError.d.ts +5 -0
- package/lib/chain/errors/envelopeReconstructionError.d.ts.map +1 -1
- package/lib/chain/errors/envelopeReconstructionError.js +2 -0
- package/lib/chain/errors/envelopeReconstructionError.js.map +1 -1
- package/lib/chain/errors/gossipValidation.d.ts +3 -1
- package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
- package/lib/chain/errors/gossipValidation.js +2 -0
- package/lib/chain/errors/gossipValidation.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +2 -0
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/interface.d.ts +5 -2
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -2
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +30 -8
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/opPool.d.ts +5 -4
- package/lib/chain/opPools/opPool.d.ts.map +1 -1
- package/lib/chain/opPools/opPool.js +60 -38
- package/lib/chain/opPools/opPool.js.map +1 -1
- package/lib/chain/opPools/proposerPreferencesPool.d.ts +8 -4
- package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
- package/lib/chain/opPools/proposerPreferencesPool.js +27 -12
- package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
- package/lib/chain/opPools/utils.d.ts +15 -1
- package/lib/chain/opPools/utils.d.ts.map +1 -1
- package/lib/chain/opPools/utils.js +33 -1
- package/lib/chain/opPools/utils.js.map +1 -1
- package/lib/chain/options.d.ts +2 -1
- package/lib/chain/options.d.ts.map +1 -1
- package/lib/chain/options.js +1 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +16 -5
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +11 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +46 -30
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/regen.d.ts +2 -0
- package/lib/chain/regen/regen.d.ts.map +1 -1
- package/lib/chain/regen/regen.js +10 -4
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -0
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.js +21 -0
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +9 -2
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +23 -13
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
- package/lib/chain/shufflingCache.d.ts +18 -8
- package/lib/chain/shufflingCache.d.ts.map +1 -1
- package/lib/chain/shufflingCache.js +72 -18
- package/lib/chain/shufflingCache.js.map +1 -1
- package/lib/chain/validation/attesterSlashing.d.ts +4 -4
- package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
- package/lib/chain/validation/attesterSlashing.js +3 -0
- package/lib/chain/validation/attesterSlashing.js.map +1 -1
- package/lib/chain/validation/proposerSlashing.d.ts +3 -3
- package/lib/chain/validation/proposerSlashing.d.ts.map +1 -1
- package/lib/chain/validation/proposerSlashing.js +3 -0
- package/lib/chain/validation/proposerSlashing.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts +5 -1
- package/lib/chain/validatorMonitor.d.ts.map +1 -1
- package/lib/chain/validatorMonitor.js +64 -54
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/db/beacon.d.ts +4 -1
- package/lib/db/beacon.d.ts.map +1 -1
- package/lib/db/beacon.js +6 -1
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/buckets.d.ts +3 -1
- package/lib/db/buckets.d.ts.map +1 -1
- package/lib/db/buckets.js +2 -0
- package/lib/db/buckets.js.map +1 -1
- package/lib/db/interface.d.ts +4 -1
- package/lib/db/interface.d.ts.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
- package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
- package/lib/db/repositories/earliestAvailableSlot.d.ts +11 -0
- package/lib/db/repositories/earliestAvailableSlot.d.ts.map +1 -0
- package/lib/db/repositories/earliestAvailableSlot.js +19 -0
- package/lib/db/repositories/earliestAvailableSlot.js.map +1 -0
- package/lib/db/repositories/index.d.ts +1 -0
- package/lib/db/repositories/index.d.ts.map +1 -1
- package/lib/db/repositories/index.js +1 -0
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/db/repositories/proposerPreferences.d.ts +14 -0
- package/lib/db/repositories/proposerPreferences.d.ts.map +1 -0
- package/lib/db/repositories/proposerPreferences.js +21 -0
- package/lib/db/repositories/proposerPreferences.js.map +1 -0
- package/lib/db/repositories/proposerSlashing.d.ts +1 -0
- package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
- package/lib/db/repositories/proposerSlashing.js +5 -1
- package/lib/db/repositories/proposerSlashing.js.map +1 -1
- package/lib/execution/engine/blobVersionedHashes.d.ts +9 -0
- package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -0
- package/lib/execution/engine/blobVersionedHashes.js +74 -0
- package/lib/execution/engine/blobVersionedHashes.js.map +1 -0
- package/lib/execution/engine/disabled.d.ts +0 -2
- package/lib/execution/engine/disabled.d.ts.map +1 -1
- package/lib/execution/engine/disabled.js +0 -6
- package/lib/execution/engine/disabled.js.map +1 -1
- package/lib/execution/engine/http.d.ts +46 -16
- package/lib/execution/engine/http.d.ts.map +1 -1
- package/lib/execution/engine/http.js +236 -213
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/index.d.ts +3 -2
- package/lib/execution/engine/index.d.ts.map +1 -1
- package/lib/execution/engine/index.js +33 -8
- package/lib/execution/engine/index.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -4
- package/lib/execution/engine/interface.d.ts.map +1 -1
- package/lib/execution/engine/jsonRpcTransport.d.ts +25 -0
- package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -0
- package/lib/execution/engine/jsonRpcTransport.js +158 -0
- package/lib/execution/engine/jsonRpcTransport.js.map +1 -0
- package/lib/execution/engine/mock.d.ts +0 -2
- package/lib/execution/engine/mock.d.ts.map +1 -1
- package/lib/execution/engine/mock.js +0 -8
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/restHttpClient.d.ts +71 -0
- package/lib/execution/engine/restHttpClient.d.ts.map +1 -0
- package/lib/execution/engine/restHttpClient.js +201 -0
- package/lib/execution/engine/restHttpClient.js.map +1 -0
- package/lib/execution/engine/restTransport.d.ts +46 -0
- package/lib/execution/engine/restTransport.d.ts.map +1 -0
- package/lib/execution/engine/restTransport.js +399 -0
- package/lib/execution/engine/restTransport.js.map +1 -0
- package/lib/execution/engine/sszTypes.d.ts +1261 -0
- package/lib/execution/engine/sszTypes.d.ts.map +1 -0
- package/lib/execution/engine/sszTypes.js +216 -0
- package/lib/execution/engine/sszTypes.js.map +1 -0
- package/lib/execution/engine/transport.d.ts +39 -0
- package/lib/execution/engine/transport.d.ts.map +1 -0
- package/lib/execution/engine/transport.js +2 -0
- package/lib/execution/engine/transport.js.map +1 -0
- package/lib/execution/engine/types.d.ts +2 -8
- package/lib/execution/engine/types.d.ts.map +1 -1
- package/lib/execution/engine/types.js +24 -57
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/execution/engine/utils.d.ts.map +1 -1
- package/lib/execution/engine/utils.js +9 -2
- package/lib/execution/engine/utils.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +10 -0
- package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
- package/lib/metrics/metrics/lodestar.js +22 -0
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/metrics/metrics.d.ts +7 -3
- package/lib/metrics/metrics.d.ts.map +1 -1
- package/lib/metrics/metrics.js +4 -4
- package/lib/metrics/metrics.js.map +1 -1
- package/lib/network/core/events.d.ts +5 -1
- package/lib/network/core/events.d.ts.map +1 -1
- package/lib/network/core/events.js +8 -0
- package/lib/network/core/events.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +67 -68
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipValidatorFn.d.ts +7 -3
- package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
- package/lib/network/processor/gossipValidatorFn.js +7 -3
- package/lib/network/processor/gossipValidatorFn.js.map +1 -1
- package/lib/network/processor/index.d.ts +9 -0
- package/lib/network/processor/index.d.ts.map +1 -1
- package/lib/network/processor/index.js +77 -10
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -1
- package/lib/node/nodejs.d.ts +3 -1
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +27 -4
- package/lib/node/nodejs.js.map +1 -1
- package/lib/node/options.d.ts +3 -2
- package/lib/node/options.d.ts.map +1 -1
- package/lib/node/options.js +2 -2
- package/lib/node/options.js.map +1 -1
- package/lib/sync/range/batch.d.ts +11 -5
- package/lib/sync/range/batch.d.ts.map +1 -1
- package/lib/sync/range/batch.js +21 -17
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +4 -4
- package/lib/sync/range/chain.d.ts.map +1 -1
- package/lib/sync/range/chain.js +12 -6
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts.map +1 -1
- package/lib/sync/range/range.js +75 -29
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +5 -2
- package/lib/sync/unknownBlock.d.ts.map +1 -1
- package/lib/sync/unknownBlock.js +49 -24
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/downloadByRange.d.ts +38 -14
- package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
- package/lib/sync/utils/downloadByRange.js +84 -39
- package/lib/sync/utils/downloadByRange.js.map +1 -1
- package/lib/util/asyncIterableToEvents.d.ts +10 -2
- package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
- package/lib/util/asyncIterableToEvents.js +29 -3
- package/lib/util/asyncIterableToEvents.js.map +1 -1
- package/lib/util/execution.d.ts +9 -11
- package/lib/util/execution.d.ts.map +1 -1
- package/lib/util/execution.js +5 -1
- package/lib/util/execution.js.map +1 -1
- package/lib/util/metadata.d.ts.map +1 -1
- package/lib/util/metadata.js +2 -1
- package/lib/util/metadata.js.map +1 -1
- package/package.json +18 -17
- package/src/api/impl/beacon/blocks/index.ts +7 -4
- package/src/api/impl/beacon/index.ts +15 -0
- package/src/api/impl/beacon/pool/index.ts +4 -4
- package/src/api/impl/beacon/state/index.ts +43 -6
- package/src/api/impl/debug/index.ts +28 -19
- package/src/api/impl/validator/index.ts +61 -2
- package/src/chain/archiveStore/archiveStore.ts +19 -25
- package/src/chain/archiveStore/historicalState/getHistoricalState.ts +5 -7
- package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +1 -1
- package/src/chain/archiveStore/historicalState/types.ts +2 -2
- package/src/chain/archiveStore/historicalState/worker.ts +1 -2
- package/src/chain/archiveStore/interface.ts +1 -1
- package/src/chain/archiveStore/utils/pruneHistory.ts +4 -1
- package/src/chain/beaconProposerCache.ts +19 -1
- package/src/chain/blocks/importBlock.ts +21 -7
- package/src/chain/blocks/payloadEnvelopeInput/types.ts +2 -1
- package/src/chain/blocks/verifyBlock.ts +8 -6
- package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -3
- package/src/chain/chain.ts +135 -38
- package/src/chain/emitter.ts +7 -1
- package/src/chain/errors/envelopeReconstructionError.ts +3 -0
- package/src/chain/errors/gossipValidation.ts +2 -0
- package/src/chain/forkChoice/index.ts +2 -0
- package/src/chain/interface.ts +5 -2
- package/src/chain/opPools/aggregatedAttestationPool.ts +34 -10
- package/src/chain/opPools/opPool.ts +89 -46
- package/src/chain/opPools/proposerPreferencesPool.ts +34 -11
- package/src/chain/opPools/utils.ts +62 -3
- package/src/chain/options.ts +3 -3
- package/src/chain/prepareNextSlot.ts +21 -6
- package/src/chain/produceBlock/computeNewStateRoot.ts +1 -1
- package/src/chain/produceBlock/produceBlockBody.ts +76 -35
- package/src/chain/regen/regen.ts +12 -4
- package/src/chain/seenCache/seenGossipBlockInput.ts +23 -0
- package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +31 -13
- package/src/chain/shufflingCache.ts +84 -22
- package/src/chain/validation/attesterSlashing.ts +7 -4
- package/src/chain/validation/proposerSlashing.ts +7 -4
- package/src/chain/validatorMonitor.ts +75 -57
- package/src/db/beacon.ts +6 -0
- package/src/db/buckets.ts +2 -0
- package/src/db/interface.ts +4 -0
- package/src/db/repositories/earliestAvailableSlot.ts +19 -0
- package/src/db/repositories/index.ts +1 -0
- package/src/db/repositories/proposerPreferences.ts +23 -0
- package/src/db/repositories/proposerSlashing.ts +6 -1
- package/src/execution/engine/blobVersionedHashes.ts +72 -0
- package/src/execution/engine/disabled.ts +0 -8
- package/src/execution/engine/http.ts +304 -300
- package/src/execution/engine/index.ts +41 -7
- package/src/execution/engine/interface.ts +2 -6
- package/src/execution/engine/jsonRpcTransport.ts +247 -0
- package/src/execution/engine/mock.ts +1 -19
- package/src/execution/engine/restHttpClient.ts +269 -0
- package/src/execution/engine/restTransport.ts +544 -0
- package/src/execution/engine/sszTypes.ts +354 -0
- package/src/execution/engine/transport.ts +61 -0
- package/src/execution/engine/types.ts +34 -84
- package/src/execution/engine/utils.ts +12 -2
- package/src/metrics/metrics/lodestar.ts +23 -0
- package/src/metrics/metrics.ts +21 -6
- package/src/network/core/events.ts +16 -1
- package/src/network/processor/gossipHandlers.ts +98 -81
- package/src/network/processor/gossipValidatorFn.ts +13 -3
- package/src/network/processor/index.ts +89 -10
- package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +1 -1
- package/src/node/nodejs.ts +35 -3
- package/src/node/options.ts +10 -1
- package/src/sync/range/batch.ts +25 -19
- package/src/sync/range/chain.ts +15 -8
- package/src/sync/range/range.ts +76 -30
- package/src/sync/unknownBlock.ts +62 -25
- package/src/sync/utils/downloadByRange.ts +123 -58
- package/src/util/asyncIterableToEvents.ts +44 -5
- package/src/util/execution.ts +16 -8
- package/src/util/metadata.ts +2 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { byteArrayEquals } from "@lodestar/utils";
|
|
2
|
+
/**
|
|
3
|
+
* Preserve Deneb's is_valid_versioned_hashes check when the REST envelope omits expected hashes.
|
|
4
|
+
* EIP-4844 encodes blob_versioned_hashes at index 10 of the signed type-3 transaction's RLP list.
|
|
5
|
+
* Skip unrelated fields without decoding or copying them, including untrusted nested access lists.
|
|
6
|
+
* The EL remains responsible for the other transaction validity checks.
|
|
7
|
+
*/
|
|
8
|
+
export function isValidBlobVersionedHashes(transactions, expected) {
|
|
9
|
+
let index = 0;
|
|
10
|
+
for (const transaction of transactions) {
|
|
11
|
+
if (transaction.length === 0)
|
|
12
|
+
return false;
|
|
13
|
+
if (transaction[0] !== 0x03)
|
|
14
|
+
continue;
|
|
15
|
+
const outer = readRlpItem(transaction, 1, transaction.length);
|
|
16
|
+
if (!outer?.isList || outer.end !== transaction.length)
|
|
17
|
+
return false;
|
|
18
|
+
let offset = outer.start;
|
|
19
|
+
for (let fieldIndex = 0; fieldIndex < 14; fieldIndex++) {
|
|
20
|
+
const field = readRlpItem(transaction, offset, outer.end);
|
|
21
|
+
if (field === null)
|
|
22
|
+
return false;
|
|
23
|
+
if (fieldIndex === 10) {
|
|
24
|
+
if (!field.isList)
|
|
25
|
+
return false;
|
|
26
|
+
// A canonical RLP-encoded Bytes32 is exactly the 0xa0 prefix followed by 32 bytes.
|
|
27
|
+
const count = (field.end - field.start) / 33;
|
|
28
|
+
if (!Number.isInteger(count) || index + count > expected.length)
|
|
29
|
+
return false;
|
|
30
|
+
for (let hashOffset = field.start; hashOffset < field.end; hashOffset += 33) {
|
|
31
|
+
if (transaction[hashOffset] !== 0xa0 ||
|
|
32
|
+
!byteArrayEquals(transaction.subarray(hashOffset + 1, hashOffset + 33), expected[index])) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
index++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
offset = field.end;
|
|
39
|
+
}
|
|
40
|
+
if (offset !== outer.end)
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
return index === expected.length;
|
|
44
|
+
}
|
|
45
|
+
/** Read one RLP item's boundaries without descending into lists. */
|
|
46
|
+
function readRlpItem(bytes, offset, limit) {
|
|
47
|
+
if (offset >= limit)
|
|
48
|
+
return null;
|
|
49
|
+
const prefix = bytes[offset];
|
|
50
|
+
if (prefix < 0x80)
|
|
51
|
+
return { start: offset, end: offset + 1, isList: false };
|
|
52
|
+
const isList = prefix >= 0xc0;
|
|
53
|
+
const lengthCode = prefix - (isList ? 0xc0 : 0x80);
|
|
54
|
+
let start = offset + 1;
|
|
55
|
+
let length = lengthCode;
|
|
56
|
+
if (lengthCode > 55) {
|
|
57
|
+
const lengthBytes = lengthCode - 55;
|
|
58
|
+
start += lengthBytes;
|
|
59
|
+
if (start > limit || bytes[offset + 1] === 0)
|
|
60
|
+
return null;
|
|
61
|
+
length = 0;
|
|
62
|
+
for (let i = offset + 1; i < start; i++) {
|
|
63
|
+
length = length * 256 + bytes[i];
|
|
64
|
+
}
|
|
65
|
+
if (length <= 55)
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
if (length > limit - start)
|
|
69
|
+
return null;
|
|
70
|
+
if (!isList && length === 1 && bytes[start] < 0x80)
|
|
71
|
+
return null;
|
|
72
|
+
return { start, end: start + length, isList };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=blobVersionedHashes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blobVersionedHashes.js","sourceRoot":"","sources":["../../../src/execution/engine/blobVersionedHashes.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,7 @@ export declare class ExecutionEngineDisabled implements IExecutionEngine {
|
|
|
6
6
|
notifyForkchoiceUpdate(): Promise<never>;
|
|
7
7
|
getPayload(): Promise<never>;
|
|
8
8
|
getBlobsBundle(): Promise<never>;
|
|
9
|
-
getPayloadBodiesByHash(): Promise<never>;
|
|
10
9
|
getPayloadBodiesByHashV2(): Promise<never>;
|
|
11
|
-
getPayloadBodiesByRange(): Promise<never>;
|
|
12
10
|
getBlobs(): Promise<never>;
|
|
13
11
|
}
|
|
14
12
|
//# sourceMappingURL=disabled.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disabled.d.ts","sourceRoot":"","sources":["../../../src/execution/engine/disabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAEtF,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,KAAK,uBAAgC;IAErC,QAAQ,CAAC,cAAc,iBAAwB;IAEzC,gBAAgB,IAAI,OAAO,CAAC,KAAK,CAAC,CAEvC;IAEK,sBAAsB,IAAI,OAAO,CAAC,KAAK,CAAC,CAE7C;IAEK,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAEjC;IAEK,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,CAErC;IAED,
|
|
1
|
+
{"version":3,"file":"disabled.d.ts","sourceRoot":"","sources":["../../../src/execution/engine/disabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAEtF,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,KAAK,uBAAgC;IAErC,QAAQ,CAAC,cAAc,iBAAwB;IAEzC,gBAAgB,IAAI,OAAO,CAAC,KAAK,CAAC,CAEvC;IAEK,sBAAsB,IAAI,OAAO,CAAC,KAAK,CAAC,CAE7C;IAEK,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAEjC;IAEK,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,CAErC;IAED,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,CAEzC;IAED,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,CAEzB;CACF"}
|
|
@@ -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,
|
|
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 {
|
|
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
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* -
|
|
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
|
-
*
|
|
53
|
-
*
|
|
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
|
|
74
|
-
private
|
|
75
|
-
|
|
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
|
|
146
|
-
|
|
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":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/execution/engine/http.ts"],"names":[],"mappings":"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"}
|