@lodestar/beacon-node 1.23.0-dev.58dea7543c → 1.23.0-dev.5adb4ef364
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.js +15 -19
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/blocks/utils.js +1 -1
- package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +13 -23
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.d.ts +1 -1
- package/lib/api/impl/beacon/state/index.js +40 -4
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts +2 -6
- package/lib/api/impl/beacon/state/utils.js +24 -36
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/config/constants.js +0 -1
- package/lib/api/impl/config/constants.js.map +1 -1
- package/lib/api/impl/debug/index.js +30 -0
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/errors.d.ts +8 -0
- package/lib/api/impl/errors.js +7 -0
- package/lib/api/impl/errors.js.map +1 -1
- package/lib/api/impl/events/index.js +1 -2
- package/lib/api/impl/events/index.js.map +1 -1
- package/lib/api/impl/lodestar/index.js +3 -3
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/node/index.js +2 -4
- package/lib/api/impl/node/index.js.map +1 -1
- package/lib/api/impl/node/utils.js +1 -0
- package/lib/api/impl/node/utils.js.map +1 -1
- package/lib/api/impl/validator/index.js +88 -85
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/rest/activeSockets.js +1 -1
- package/lib/api/rest/activeSockets.js.map +1 -1
- package/lib/api/rest/base.d.ts +1 -0
- package/lib/api/rest/base.js +31 -4
- package/lib/api/rest/base.js.map +1 -1
- package/lib/api/rest/index.js +1 -0
- package/lib/api/rest/index.js.map +1 -1
- package/lib/api/rest/swaggerUI.js +1 -4
- package/lib/api/rest/swaggerUI.js.map +1 -1
- package/lib/chain/archiver/archiveStates.d.ts +3 -2
- package/lib/chain/archiver/archiveStates.js +8 -4
- package/lib/chain/archiver/archiveStates.js.map +1 -1
- package/lib/chain/archiver/index.d.ts +3 -1
- package/lib/chain/archiver/index.js +3 -2
- package/lib/chain/archiver/index.js.map +1 -1
- package/lib/chain/balancesCache.js +1 -1
- package/lib/chain/balancesCache.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +2 -1
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/index.js +3 -5
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +2 -2
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksSanityChecks.js +5 -13
- package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.js +3 -3
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/bls/multithread/poolSize.js +1 -1
- package/lib/chain/bls/multithread/poolSize.js.map +1 -1
- package/lib/chain/bls/multithread/worker.js +1 -1
- package/lib/chain/bls/multithread/worker.js.map +1 -1
- package/lib/chain/chain.d.ts +4 -2
- package/lib/chain/chain.js +34 -37
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +1 -1
- package/lib/chain/emitter.js +1 -1
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts +4 -0
- package/lib/chain/forkChoice/index.js +5 -0
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/genesis/genesis.js +2 -6
- package/lib/chain/genesis/genesis.js.map +1 -1
- package/lib/chain/historicalState/getHistoricalState.d.ts +2 -1
- package/lib/chain/historicalState/getHistoricalState.js +3 -0
- package/lib/chain/historicalState/getHistoricalState.js.map +1 -1
- package/lib/chain/historicalState/worker.js +1 -1
- package/lib/chain/historicalState/worker.js.map +1 -1
- package/lib/chain/initState.d.ts +1 -1
- package/lib/chain/initState.js +1 -1
- package/lib/chain/initState.js.map +1 -1
- package/lib/chain/interface.d.ts +4 -2
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/lightClient/index.js +3 -5
- package/lib/chain/lightClient/index.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +32 -36
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/attestationPool.js +3 -5
- package/lib/chain/opPools/attestationPool.js.map +1 -1
- package/lib/chain/opPools/opPool.js +2 -4
- package/lib/chain/opPools/opPool.js.map +1 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.js +3 -5
- package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
- package/lib/chain/opPools/syncContributionAndProofPool.js +2 -4
- package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
- package/lib/chain/options.js +1 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +2 -1
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +11 -16
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.js +1 -1
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/rewards/attestationsRewards.d.ts +1 -1
- package/lib/chain/rewards/attestationsRewards.js +3 -2
- package/lib/chain/rewards/attestationsRewards.js.map +1 -1
- package/lib/chain/rewards/blockRewards.js +1 -3
- package/lib/chain/rewards/blockRewards.js.map +1 -1
- package/lib/chain/rewards/syncCommitteeRewards.js +1 -3
- package/lib/chain/rewards/syncCommitteeRewards.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.js +21 -25
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/serializeState.js +63 -10
- package/lib/chain/serializeState.js.map +1 -1
- package/lib/chain/shufflingCache.js +11 -11
- package/lib/chain/shufflingCache.js.map +1 -1
- package/lib/chain/stateCache/datastore/file.js.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts +7 -2
- package/lib/chain/stateCache/fifoBlockStateCache.js +7 -2
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +4 -3
- package/lib/chain/stateCache/persistentCheckpointsCache.js +25 -20
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/validation/aggregateAndProof.d.ts +1 -1
- package/lib/chain/validation/aggregateAndProof.js.map +1 -1
- package/lib/chain/validation/attestation.d.ts +3 -17
- package/lib/chain/validation/attestation.js +28 -53
- package/lib/chain/validation/attestation.js.map +1 -1
- package/lib/chain/validation/attesterSlashing.d.ts +1 -1
- package/lib/chain/validation/blsToExecutionChange.d.ts +1 -1
- package/lib/chain/validation/lightClientFinalityUpdate.js +1 -1
- package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
- package/lib/chain/validation/lightClientOptimisticUpdate.js +1 -1
- package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
- package/lib/chain/validation/proposerSlashing.d.ts +1 -1
- package/lib/chain/validation/voluntaryExit.d.ts +1 -1
- package/lib/db/buckets.js +3 -5
- package/lib/db/buckets.js.map +1 -1
- package/lib/db/repositories/backfilledRanges.d.ts +1 -1
- package/lib/db/repositories/backfilledRanges.js +1 -2
- package/lib/db/repositories/backfilledRanges.js.map +1 -1
- package/lib/db/repositories/blockArchive.js +1 -1
- package/lib/db/repositories/blockArchive.js.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.js +1 -1
- package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
- package/lib/db/repositories/checkpointState.js +0 -1
- package/lib/db/repositories/checkpointState.js.map +1 -1
- package/lib/db/repositories/depositDataRoot.d.ts +1 -1
- package/lib/db/repositories/depositDataRoot.js +2 -3
- package/lib/db/repositories/depositDataRoot.js.map +1 -1
- package/lib/db/repositories/eth1Data.d.ts +1 -1
- package/lib/db/repositories/eth1Data.js +1 -2
- package/lib/db/repositories/eth1Data.js.map +1 -1
- package/lib/db/repositories/stateArchive.js +1 -1
- package/lib/db/repositories/stateArchive.js.map +1 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +1 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.js +1 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
- package/lib/eth1/eth1DataCache.js +1 -1
- package/lib/eth1/eth1DataCache.js.map +1 -1
- package/lib/eth1/eth1DepositDataTracker.js +9 -13
- package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
- package/lib/eth1/eth1DepositsCache.js +2 -2
- package/lib/eth1/eth1DepositsCache.js.map +1 -1
- package/lib/eth1/eth1MergeBlockTracker.js +40 -50
- package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
- package/lib/eth1/index.js +4 -8
- package/lib/eth1/index.js.map +1 -1
- package/lib/eth1/provider/eth1Provider.js.map +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.js +6 -12
- package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
- package/lib/eth1/provider/jwt.js +0 -1
- package/lib/eth1/provider/jwt.js.map +1 -1
- package/lib/eth1/provider/utils.js +1 -1
- package/lib/eth1/provider/utils.js.map +1 -1
- package/lib/eth1/utils/deposits.js +1 -1
- package/lib/eth1/utils/deposits.js.map +1 -1
- package/lib/eth1/utils/eth1Vote.js +3 -5
- package/lib/eth1/utils/eth1Vote.js.map +1 -1
- package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js +1 -3
- package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js.map +1 -1
- package/lib/execution/builder/http.js +6 -1
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/execution/builder/index.js +1 -0
- package/lib/execution/builder/index.js.map +1 -1
- package/lib/execution/engine/http.d.ts +2 -2
- package/lib/execution/engine/http.js +4 -8
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/index.js +1 -0
- package/lib/execution/engine/index.js.map +1 -1
- package/lib/execution/engine/mock.js +8 -11
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/execution/engine/utils.js +1 -1
- package/lib/execution/engine/utils.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +1 -1
- package/lib/metrics/metrics/beacon.js +2 -3
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +3 -1
- package/lib/metrics/metrics/lodestar.js +6 -6
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/metrics/validatorMonitor.js +37 -49
- package/lib/metrics/validatorMonitor.js.map +1 -1
- package/lib/monitoring/properties.js +2 -4
- package/lib/monitoring/properties.js.map +1 -1
- package/lib/monitoring/service.js +3 -5
- package/lib/monitoring/service.js.map +1 -1
- package/lib/monitoring/system.js +0 -1
- package/lib/monitoring/system.js.map +1 -1
- package/lib/network/core/metrics.js +0 -2
- package/lib/network/core/metrics.js.map +1 -1
- package/lib/network/core/networkCore.d.ts +3 -3
- package/lib/network/core/networkCore.js +16 -5
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorker.js +5 -4
- package/lib/network/core/networkCoreWorker.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +2 -2
- package/lib/network/core/networkCoreWorkerHandler.js +4 -4
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/core/types.d.ts +1 -1
- package/lib/network/discv5/index.d.ts +3 -4
- package/lib/network/discv5/index.js +5 -6
- package/lib/network/discv5/index.js.map +1 -1
- package/lib/network/discv5/types.d.ts +1 -1
- package/lib/network/discv5/worker.js +7 -7
- package/lib/network/discv5/worker.js.map +1 -1
- package/lib/network/events.js +1 -1
- package/lib/network/events.js.map +1 -1
- package/lib/network/forks.js +0 -1
- package/lib/network/forks.js.map +1 -1
- package/lib/network/gossip/encoding.js +1 -3
- package/lib/network/gossip/encoding.js.map +1 -1
- package/lib/network/gossip/gossipsub.js +10 -7
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +8 -6
- package/lib/network/gossip/interface.js.map +1 -1
- package/lib/network/gossip/metrics.js +0 -1
- package/lib/network/gossip/metrics.js.map +1 -1
- package/lib/network/gossip/scoringParameters.js +0 -1
- package/lib/network/gossip/scoringParameters.js.map +1 -1
- package/lib/network/gossip/topic.js +3 -4
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/interface.d.ts +3 -2
- package/lib/network/libp2p/index.d.ts +2 -2
- package/lib/network/libp2p/index.js +9 -9
- package/lib/network/libp2p/index.js.map +1 -1
- package/lib/network/network.d.ts +4 -4
- package/lib/network/network.js +7 -5
- package/lib/network/network.js.map +1 -1
- package/lib/network/options.js +0 -2
- package/lib/network/options.js.map +1 -1
- package/lib/network/peers/datastore.d.ts +2 -1
- package/lib/network/peers/datastore.js +2 -3
- package/lib/network/peers/datastore.js.map +1 -1
- package/lib/network/peers/discover.d.ts +2 -0
- package/lib/network/peers/discover.js +10 -16
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.d.ts +2 -1
- package/lib/network/peers/peerManager.js +11 -8
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/utils/getConnectedPeerIds.js +2 -2
- package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts +0 -2
- package/lib/network/processor/gossipHandlers.js +15 -62
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/index.d.ts +1 -1
- package/lib/network/processor/gossipQueues/index.js +7 -22
- package/lib/network/processor/gossipQueues/index.js.map +1 -1
- package/lib/network/processor/gossipQueues/indexed.js +1 -3
- package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
- package/lib/network/processor/gossipQueues/linear.js +5 -7
- package/lib/network/processor/gossipQueues/linear.js.map +1 -1
- package/lib/network/processor/gossipQueues/types.d.ts +1 -2
- package/lib/network/processor/gossipQueues/types.js +0 -6
- package/lib/network/processor/gossipQueues/types.js.map +1 -1
- package/lib/network/processor/index.js +4 -2
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +5 -5
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/lightClientBootstrap.js +1 -3
- package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
- package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js +6 -8
- package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
- package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js +6 -8
- package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js +1 -3
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
- package/lib/network/reqresp/protocols.js +0 -1
- package/lib/network/reqresp/protocols.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +1 -1
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/score.js +0 -1
- package/lib/network/reqresp/score.js.map +1 -1
- package/lib/network/reqresp/types.js +3 -7
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/network/util.d.ts +4 -1
- package/lib/network/util.js +2 -2
- package/lib/network/util.js.map +1 -1
- package/lib/node/nodejs.d.ts +3 -3
- package/lib/node/nodejs.js +3 -3
- package/lib/node/nodejs.js.map +1 -1
- package/lib/node/notifier.js +16 -26
- package/lib/node/notifier.js.map +1 -1
- package/lib/sync/backfill/backfill.d.ts +2 -2
- package/lib/sync/backfill/backfill.js +4 -2
- package/lib/sync/backfill/backfill.js.map +1 -1
- package/lib/sync/range/range.d.ts +1 -1
- package/lib/sync/range/range.js +3 -7
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/batches.js +1 -3
- package/lib/sync/range/utils/batches.js.map +1 -1
- package/lib/sync/sync.js +24 -24
- package/lib/sync/sync.js.map +1 -1
- package/lib/sync/unknownBlock.js +2 -6
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/remoteSyncType.js +25 -36
- package/lib/sync/utils/remoteSyncType.js.map +1 -1
- package/lib/util/asyncIterableToEvents.js +0 -2
- package/lib/util/asyncIterableToEvents.js.map +1 -1
- package/lib/util/binarySearch.js +1 -1
- package/lib/util/binarySearch.js.map +1 -1
- package/lib/util/bitArray.js +1 -2
- package/lib/util/bitArray.js.map +1 -1
- package/lib/util/kzg.js +1 -4
- package/lib/util/kzg.js.map +1 -1
- package/lib/util/map.js +0 -1
- package/lib/util/map.js.map +1 -1
- package/lib/util/peerId.js +1 -1
- package/lib/util/peerId.js.map +1 -1
- package/lib/util/profile.js +1 -1
- package/lib/util/profile.js.map +1 -1
- package/lib/util/queue/errors.d.ts +0 -1
- package/lib/util/queue/errors.js +0 -3
- package/lib/util/queue/errors.js.map +1 -1
- package/lib/util/queue/fnQueue.js +1 -1
- package/lib/util/queue/fnQueue.js.map +1 -1
- package/lib/util/queue/itemQueue.js +1 -1
- package/lib/util/queue/itemQueue.js.map +1 -1
- package/package.json +34 -34
- package/lib/network/processor/gossipQueues/indexedAvgTime.d.ts +0 -31
- package/lib/network/processor/gossipQueues/indexedAvgTime.js +0 -115
- package/lib/network/processor/gossipQueues/indexedAvgTime.js.map +0 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ExecutionStatus } from "@lodestar/fork-choice";
|
|
2
|
+
import { ZERO_HASH_HEX } from "@lodestar/params";
|
|
1
3
|
import { getStateResponseWithRegen } from "../beacon/state/utils.js";
|
|
2
4
|
import { isOptimisticBlock } from "../../../util/forkChoice.js";
|
|
3
5
|
import { getStateSlotFromBytes } from "../../../util/multifork.js";
|
|
@@ -13,6 +15,34 @@ export function getDebugApi({ chain, config, }) {
|
|
|
13
15
|
})),
|
|
14
16
|
};
|
|
15
17
|
},
|
|
18
|
+
async getDebugForkChoice() {
|
|
19
|
+
return {
|
|
20
|
+
data: {
|
|
21
|
+
justifiedCheckpoint: chain.forkChoice.getJustifiedCheckpoint(),
|
|
22
|
+
finalizedCheckpoint: chain.forkChoice.getFinalizedCheckpoint(),
|
|
23
|
+
forkChoiceNodes: chain.forkChoice.getAllNodes().map((node) => ({
|
|
24
|
+
slot: node.slot,
|
|
25
|
+
blockRoot: node.blockRoot,
|
|
26
|
+
parentRoot: node.parentRoot,
|
|
27
|
+
justifiedEpoch: node.justifiedEpoch,
|
|
28
|
+
finalizedEpoch: node.finalizedEpoch,
|
|
29
|
+
weight: node.weight,
|
|
30
|
+
validity: (() => {
|
|
31
|
+
switch (node.executionStatus) {
|
|
32
|
+
case ExecutionStatus.Valid:
|
|
33
|
+
return "valid";
|
|
34
|
+
case ExecutionStatus.Invalid:
|
|
35
|
+
return "invalid";
|
|
36
|
+
case ExecutionStatus.Syncing:
|
|
37
|
+
case ExecutionStatus.PreMerge:
|
|
38
|
+
return "optimistic";
|
|
39
|
+
}
|
|
40
|
+
})(),
|
|
41
|
+
executionBlockHash: node.executionPayloadBlockHash ?? ZERO_HASH_HEX,
|
|
42
|
+
})),
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
},
|
|
16
46
|
async getProtoArrayNodes() {
|
|
17
47
|
const nodes = chain.forkChoice.getAllNodes().map((node) => ({
|
|
18
48
|
// if node has executionPayloadNumber, it will overwrite the below default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/debug/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/debug/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,MAAM,GAC+B;IACrC,OAAO;QACL,KAAK,CAAC,oBAAoB;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,SAAS;oBACrB,mBAAmB,EAAE,iBAAiB,CAAC,KAAK,CAAC;iBAC9C,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,kBAAkB;YACtB,OAAO;gBACL,IAAI,EAAE;oBACJ,mBAAmB,EAAE,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE;oBAC9D,mBAAmB,EAAE,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE;oBAC9D,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC7D,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,QAAQ,EAAE,CAAC,GAAG,EAAE;4BACd,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;gCAC7B,KAAK,eAAe,CAAC,KAAK;oCACxB,OAAO,OAAO,CAAC;gCACjB,KAAK,eAAe,CAAC,OAAO;oCAC1B,OAAO,SAAS,CAAC;gCACnB,KAAK,eAAe,CAAC,OAAO,CAAC;gCAC7B,KAAK,eAAe,CAAC,QAAQ;oCAC3B,OAAO,YAAY,CAAC;4BACxB,CAAC;wBACH,CAAC,CAAC,EAAE;wBACJ,kBAAkB,EAAE,IAAI,CAAC,yBAAyB,IAAI,aAAa;qBACpE,CAAC,CAAC;iBACJ;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,kBAAkB;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1D,0EAA0E;gBAC1E,sBAAsB,EAAE,CAAC;gBACzB,GAAG,IAAI;gBACP,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,IAAI,EAAE;gBAC/D,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC3B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;aAC5C,CAAC,CAAC,CAAC;YACJ,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,EAAC,OAAO,EAAC,EAAE,OAAO;YACjC,MAAM,EAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAC,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChG,IAAI,IAAY,EAAE,IAA8B,CAAC;YACjD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;gBAChC,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,GAAG,KAAK,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBAClB,IAAI,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACpE,CAAC;YACD,OAAO;gBACL,IAAI;gBACJ,IAAI,EAAE;oBACJ,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;oBACjC,mBAAmB;oBACnB,SAAS;iBACV;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/lib/api/impl/errors.d.ts
CHANGED
|
@@ -16,4 +16,12 @@ export declare class NodeIsSyncing extends ApiError {
|
|
|
16
16
|
export declare class OnlySupportedByDVT extends ApiError {
|
|
17
17
|
constructor();
|
|
18
18
|
}
|
|
19
|
+
export declare class IndexedError extends ApiError {
|
|
20
|
+
failures: FailureList;
|
|
21
|
+
constructor(message: string, failures: FailureList);
|
|
22
|
+
}
|
|
23
|
+
export type FailureList = {
|
|
24
|
+
index: number;
|
|
25
|
+
message: string;
|
|
26
|
+
}[];
|
|
19
27
|
//# sourceMappingURL=errors.d.ts.map
|
package/lib/api/impl/errors.js
CHANGED
|
@@ -29,4 +29,11 @@ export class OnlySupportedByDVT extends ApiError {
|
|
|
29
29
|
super(501, "Only supported by distributed validator middleware clients");
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
// Error thrown when processing multiple items failed - https://github.com/ethereum/beacon-APIs/blob/e7f7d70423b0abfe9d9f33b701be2ec03e44eb02/types/http.yaml#L175
|
|
33
|
+
export class IndexedError extends ApiError {
|
|
34
|
+
constructor(message, failures) {
|
|
35
|
+
super(400, message);
|
|
36
|
+
this.failures = failures.sort((a, b) => a.index - b.index);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
32
39
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/api/impl/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAC,QAAQ,EAAC,CAAC;AAElB,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACzC;QACE,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAChC,CAAC;CACF;AACD,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C;QACE,KAAK,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAE3C,YAAY,OAAgB,EAAE,QAAiB;QAC7C,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,gIAAgI;AAChI,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACzC,YAAY,SAAiB;QAC3B,KAAK,CAAC,GAAG,EAAE,qBAAqB,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,uGAAuG;AACvG,oJAAoJ;AACpJ,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C;QACE,KAAK,CAAC,GAAG,EAAE,4DAA4D,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/api/impl/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAC,QAAQ,EAAC,CAAC;AAElB,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACzC;QACE,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAChC,CAAC;CACF;AACD,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C;QACE,KAAK,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAE3C,YAAY,OAAgB,EAAE,QAAiB;QAC7C,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,gIAAgI;AAChI,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACzC,YAAY,SAAiB;QAC3B,KAAK,CAAC,GAAG,EAAE,qBAAqB,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,uGAAuG;AACvG,oJAAoJ;AACpJ,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C;QACE,KAAK,CAAC,GAAG,EAAE,4DAA4D,CAAC,CAAC;IAC3E,CAAC;CACF;AAED,kKAAkK;AAClK,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAGxC,YAAY,OAAe,EAAE,QAAqB;QAChD,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;CACF"}
|
|
@@ -3,10 +3,9 @@ export function getEventsApi({ chain, }) {
|
|
|
3
3
|
async eventstream({ topics, signal, onEvent }) {
|
|
4
4
|
const onAbortFns = [];
|
|
5
5
|
for (const topic of topics) {
|
|
6
|
-
//
|
|
6
|
+
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
7
7
|
const handler = (data) => {
|
|
8
8
|
// TODO: What happens if this handler throws? Does it break the other chain.emitter listeners?
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
10
9
|
onEvent({ type: topic, message: data });
|
|
11
10
|
};
|
|
12
11
|
chain.emitter.on(topic, handler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/events/index.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,GACgC;IACrC,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC;YACzC,MAAM,UAAU,GAAmB,EAAE,CAAC;YAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/events/index.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,GACgC;IACrC,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC;YACzC,MAAM,UAAU,GAAmB,EAAE,CAAC;YAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,4DAA4D;gBAC5D,MAAM,OAAO,GAAG,CAAC,IAAS,EAAQ,EAAE;oBAClC,8FAA8F;oBAE9F,OAAO,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;gBACxC,CAAC,CAAC;gBAEF,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;gBACH,KAAK,MAAM,OAAO,IAAI,UAAU;oBAAE,OAAO,EAAE,CAAC;YAC9C,CAAC,EACD,EAAC,IAAI,EAAE,IAAI,EAAC,CACb,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -87,6 +87,7 @@ export function getLodestarApi({ chain, config, db, network, sync, }) {
|
|
|
87
87
|
},
|
|
88
88
|
async getBlockProcessorQueueItems() {
|
|
89
89
|
return {
|
|
90
|
+
// biome-ignore lint/complexity/useLiteralKeys: The `blockProcessor` is a protected attribute
|
|
90
91
|
data: chain["blockProcessor"].jobQueue.getItems().map((item) => {
|
|
91
92
|
const [blockInputs, opts] = item.args;
|
|
92
93
|
return {
|
|
@@ -138,6 +139,7 @@ export function getLodestarApi({ chain, config, db, network, sync, }) {
|
|
|
138
139
|
async dumpDbBucketKeys({ bucket }) {
|
|
139
140
|
for (const repo of Object.values(db)) {
|
|
140
141
|
if (repo instanceof Repository) {
|
|
142
|
+
// biome-ignore lint/complexity/useLiteralKeys: `bucket` is protected and `bucketId` is private
|
|
141
143
|
if (String(repo["bucket"]) === bucket || repo["bucketId"] === bucket) {
|
|
142
144
|
return { data: stringifyKeys(await repo.keys()) };
|
|
143
145
|
}
|
|
@@ -177,9 +179,7 @@ function stringifyKeys(keys) {
|
|
|
177
179
|
if (key instanceof Uint8Array) {
|
|
178
180
|
return toHex(key);
|
|
179
181
|
}
|
|
180
|
-
|
|
181
|
-
return `${key}`;
|
|
182
|
-
}
|
|
182
|
+
return `${key}`;
|
|
183
183
|
});
|
|
184
184
|
}
|
|
185
185
|
//# sourceMappingURL=index.js.map
|
|
@@ -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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"}
|
|
@@ -56,10 +56,8 @@ export function getNodeApi(opts, { network, sync }) {
|
|
|
56
56
|
// 206: Node is syncing but can serve incomplete data
|
|
57
57
|
return { status: syncingStatus ?? routes.node.NodeHealth.SYNCING };
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return { status: routes.node.NodeHealth.READY };
|
|
62
|
-
}
|
|
59
|
+
// 200: Node is ready
|
|
60
|
+
return { status: routes.node.NodeHealth.READY };
|
|
63
61
|
// else {
|
|
64
62
|
// 503: Node not initialized or having issues
|
|
65
63
|
// NOTE: Lodestar does not start its API until fully initialized, so this status can never be served
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAErC,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAItC,MAAM,UAAU,UAAU,CACxB,IAAgB,EAChB,EAAC,OAAO,EAAE,IAAI,EAAuC;IAErD,OAAO;QACL,KAAK,CAAC,kBAAkB;YACtB,OAAO;gBACL,IAAI,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE;aACzC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,EAAC,MAAM,EAAC;YACpB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,EAAC,KAAK,EAAE,SAAS,EAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAC9C,CAAC,QAAQ,EAAE,EAAE,CACX,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAC3G,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAC;aAC5B,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,YAAY;YAChB,4DAA4D;YAC5D,MAAM,IAAI,GAAG;gBACX,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,CAAC;aACjB,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,CAAC;YAED,OAAO;gBACL,IAAI;aACL,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,cAAc;YAClB,OAAO;gBACL,IAAI,EAAE;oBACJ,OAAO,EAAE,YAAY,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE;iBAC7C;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,gBAAgB;YACpB,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,EAAC,CAAC;QACtC,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,EAAC,aAAa,EAAC;YAC7B,IAAI,aAAa,IAAI,IAAI,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC1E,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,gCAAgC,aAAa,EAAE,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,EAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAElE,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;gBAC3C,qDAAqD;gBACrD,OAAO,EAAC,MAAM,EAAE,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAC,CAAC;YACnE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/node/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/api/impl/node/utils.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,WAAyB;IACzE,MAAM,IAAI,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEhD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QACrD,0CAA0C;QAC1C,GAAG,EAAE,EAAE;QACP,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;QAC1D,SAAS,EAAE,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,SAAuC,CAAC,CAAC,CAAC,IAAI;QACtE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc;KACzD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAyB;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC3F,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,MAAoB;IACxC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,eAAe,CAAC;QACzB,KAAK,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/api/impl/node/utils.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,WAAyB;IACzE,MAAM,IAAI,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEhD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QACrD,0CAA0C;QAC1C,GAAG,EAAE,EAAE;QACP,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;QAC1D,SAAS,EAAE,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,SAAuC,CAAC,CAAC,CAAC,IAAI;QACtE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc;KACzD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAyB;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC3F,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,MAAoB;IACxC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,eAAe,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC;QACxB;YACE,OAAO,cAAc,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { PubkeyIndexMap } from "@chainsafe/pubkey-index-map";
|
|
1
2
|
import { routes } from "@lodestar/api";
|
|
2
|
-
import { computeStartSlotAtEpoch, calculateCommitteeAssignments, proposerShufflingDecisionRoot, attesterShufflingDecisionRoot, getBlockRootAtSlot, computeEpochAtSlot, getCurrentSlot, beaconBlockToBlinded, } from "@lodestar/state-transition";
|
|
3
|
+
import { computeStartSlotAtEpoch, calculateCommitteeAssignments, proposerShufflingDecisionRoot, attesterShufflingDecisionRoot, getBlockRootAtSlot, computeEpochAtSlot, getCurrentSlot, beaconBlockToBlinded, createCachedBeaconState, loadState, } from "@lodestar/state-transition";
|
|
3
4
|
import { GENESIS_SLOT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, SYNC_COMMITTEE_SUBNET_SIZE, isForkBlobs, isForkExecution, ForkSeq, isForkPostElectra, } from "@lodestar/params";
|
|
4
5
|
import { MAX_BUILDER_BOOST_FACTOR } from "@lodestar/validator";
|
|
5
|
-
import { ssz, ProducedBlockSource, isBlindedBeaconBlock, isBlockContents, } from "@lodestar/types";
|
|
6
|
+
import { ssz, ProducedBlockSource, isBlindedBeaconBlock, isBlockContents, getValidatorStatus, } from "@lodestar/types";
|
|
6
7
|
import { ExecutionStatus, DataAvailabilityStatus } from "@lodestar/fork-choice";
|
|
7
8
|
import { fromHex, toHex, resolveOrRacePromises, prettyWeiToEth, toRootHex } from "@lodestar/utils";
|
|
8
9
|
import { AttestationError, AttestationErrorCode, GossipAction, SyncCommitteeError, SyncCommitteeErrorCode, } from "../../../chain/errors/index.js";
|
|
@@ -14,7 +15,7 @@ import { getDefaultGraffiti, toGraffitiBuffer } from "../../../util/graffiti.js"
|
|
|
14
15
|
import { ApiError, NodeIsSyncing, OnlySupportedByDVT } from "../errors.js";
|
|
15
16
|
import { validateSyncCommitteeGossipContributionAndProof } from "../../../chain/validation/syncCommitteeContributionAndProof.js";
|
|
16
17
|
import { RegenCaller } from "../../../chain/regen/index.js";
|
|
17
|
-
import {
|
|
18
|
+
import { getStateResponseWithRegen } from "../beacon/state/utils.js";
|
|
18
19
|
import { validateGossipFnRetryUnknownRoot } from "../../../network/processor/gossipHandlers.js";
|
|
19
20
|
import { SCHEDULER_LOOKAHEAD_FACTOR } from "../../../chain/prepareNextSlot.js";
|
|
20
21
|
import { ChainEvent } from "../../../chain/index.js";
|
|
@@ -35,7 +36,7 @@ import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices, selectBlockProd
|
|
|
35
36
|
*/
|
|
36
37
|
export const SYNC_TOLERANCE_EPOCHS = 1;
|
|
37
38
|
/**
|
|
38
|
-
* Cutoff time to wait for execution and builder block production apis to resolve
|
|
39
|
+
* Cutoff time to wait from start of the slot for execution and builder block production apis to resolve
|
|
39
40
|
* Post this time, race execution and builder to pick whatever resolves first
|
|
40
41
|
*
|
|
41
42
|
* Empirically the builder block resolves in ~1.5+ seconds, and execution should resolve <1 sec.
|
|
@@ -90,7 +91,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
90
91
|
if (msToSlot > MAX_API_CLOCK_DISPARITY_MS) {
|
|
91
92
|
throw Error(`Requested slot ${slot} is in the future`);
|
|
92
93
|
}
|
|
93
|
-
|
|
94
|
+
if (msToSlot > 0) {
|
|
94
95
|
await chain.clock.waitForSlot(slot);
|
|
95
96
|
}
|
|
96
97
|
// else, clock already in slot or slot is in the past
|
|
@@ -129,20 +130,18 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
129
130
|
blockTotalValue: prettyWeiToEth(totalValue),
|
|
130
131
|
};
|
|
131
132
|
}
|
|
132
|
-
|
|
133
|
+
if (source === ProducedBlockSource.builder) {
|
|
133
134
|
return {
|
|
134
135
|
builderExecutionPayloadValue: prettyWeiToEth(executionValue),
|
|
135
136
|
builderConsensusBlockValue: prettyWeiToEth(consensusValue),
|
|
136
137
|
builderBlockTotalValue: prettyWeiToEth(totalValue),
|
|
137
138
|
};
|
|
138
139
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
};
|
|
145
|
-
}
|
|
140
|
+
return {
|
|
141
|
+
engineExecutionPayloadValue: prettyWeiToEth(executionValue),
|
|
142
|
+
engineConsensusBlockValue: prettyWeiToEth(consensusValue),
|
|
143
|
+
engineBlockTotalValue: prettyWeiToEth(totalValue),
|
|
144
|
+
};
|
|
146
145
|
}
|
|
147
146
|
/**
|
|
148
147
|
* This function is called 1s before next epoch, usually at that time PrepareNextSlotScheduler finishes
|
|
@@ -204,9 +203,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
204
203
|
if (currentSlot - headSlot > SYNC_TOLERANCE_EPOCHS * SLOTS_PER_EPOCH) {
|
|
205
204
|
throw new NodeIsSyncing(`headSlot ${headSlot} currentSlot ${currentSlot}`);
|
|
206
205
|
}
|
|
207
|
-
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
206
|
+
return;
|
|
210
207
|
}
|
|
211
208
|
case SyncState.Synced:
|
|
212
209
|
return;
|
|
@@ -269,10 +266,6 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
269
266
|
if (skipHeadChecksAndUpdate !== true) {
|
|
270
267
|
notWhileSyncing();
|
|
271
268
|
await waitForSlot(slot); // Must never request for a future slot > currentSlot
|
|
272
|
-
// Process the queued attestations in the forkchoice for correct head estimation
|
|
273
|
-
// forkChoice.updateTime() might have already been called by the onSlot clock
|
|
274
|
-
// handler, in which case this should just return.
|
|
275
|
-
chain.forkChoice.updateTime(slot);
|
|
276
269
|
parentBlockRoot = fromHex(chain.getProposerHead(slot).blockRoot);
|
|
277
270
|
}
|
|
278
271
|
else {
|
|
@@ -314,10 +307,6 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
314
307
|
if (skipHeadChecksAndUpdate !== true) {
|
|
315
308
|
notWhileSyncing();
|
|
316
309
|
await waitForSlot(slot); // Must never request for a future slot > currentSlot
|
|
317
|
-
// Process the queued attestations in the forkchoice for correct head estimation
|
|
318
|
-
// forkChoice.updateTime() might have already been called by the onSlot clock
|
|
319
|
-
// handler, in which case this should just return.
|
|
320
|
-
chain.forkChoice.updateTime(slot);
|
|
321
310
|
parentBlockRoot = fromHex(chain.getProposerHead(slot).blockRoot);
|
|
322
311
|
}
|
|
323
312
|
else {
|
|
@@ -367,9 +356,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
367
356
|
shouldOverrideBuilder,
|
|
368
357
|
};
|
|
369
358
|
}
|
|
370
|
-
|
|
371
|
-
return { data: block, version, executionPayloadValue, consensusBlockValue, shouldOverrideBuilder };
|
|
372
|
-
}
|
|
359
|
+
return { data: block, version, executionPayloadValue, consensusBlockValue, shouldOverrideBuilder };
|
|
373
360
|
}
|
|
374
361
|
finally {
|
|
375
362
|
if (timer)
|
|
@@ -381,10 +368,6 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
381
368
|
_skipRandaoVerification, builderBoostFactor, { feeRecipient, builderSelection, strictFeeRecipientCheck } = {}) {
|
|
382
369
|
notWhileSyncing();
|
|
383
370
|
await waitForSlot(slot); // Must never request for a future slot > currentSlot
|
|
384
|
-
// Process the queued attestations in the forkchoice for correct head estimation
|
|
385
|
-
// forkChoice.updateTime() might have already been called by the onSlot clock
|
|
386
|
-
// handler, in which case this should just return.
|
|
387
|
-
chain.forkChoice.updateTime(slot);
|
|
388
371
|
const parentBlockRoot = fromHex(chain.getProposerHead(slot).blockRoot);
|
|
389
372
|
notOnOutOfRangeData(parentBlockRoot);
|
|
390
373
|
const fork = config.getForkName(slot);
|
|
@@ -470,7 +453,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
470
453
|
})
|
|
471
454
|
: Promise.reject(new Error("Engine disabled"));
|
|
472
455
|
const [builder, engine] = await resolveOrRacePromises([builderPromise, enginePromise], {
|
|
473
|
-
resolveTimeoutMs: BLOCK_PRODUCTION_RACE_CUTOFF_MS,
|
|
456
|
+
resolveTimeoutMs: Math.max(0, BLOCK_PRODUCTION_RACE_CUTOFF_MS - Math.round(chain.clock.secFromSlot(slot) * 1000)),
|
|
474
457
|
raceTimeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
|
|
475
458
|
signal: controller.signal,
|
|
476
459
|
});
|
|
@@ -539,13 +522,11 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
539
522
|
executionPayloadSource,
|
|
540
523
|
};
|
|
541
524
|
}
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
};
|
|
548
|
-
}
|
|
525
|
+
return {
|
|
526
|
+
...builder.value,
|
|
527
|
+
executionPayloadBlinded: true,
|
|
528
|
+
executionPayloadSource,
|
|
529
|
+
};
|
|
549
530
|
}
|
|
550
531
|
throw Error("Unreachable error occurred during the builder and execution block production");
|
|
551
532
|
}
|
|
@@ -560,27 +541,21 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
560
541
|
if (meta.executionPayloadBlinded) {
|
|
561
542
|
return { data, meta };
|
|
562
543
|
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
};
|
|
571
|
-
}
|
|
572
|
-
else {
|
|
573
|
-
const blindedBlock = beaconBlockToBlinded(config, data);
|
|
574
|
-
return {
|
|
575
|
-
data: blindedBlock,
|
|
576
|
-
meta: { ...meta, executionPayloadBlinded: true },
|
|
577
|
-
};
|
|
578
|
-
}
|
|
544
|
+
if (isBlockContents(data)) {
|
|
545
|
+
const { block } = data;
|
|
546
|
+
const blindedBlock = beaconBlockToBlinded(config, block);
|
|
547
|
+
return {
|
|
548
|
+
data: blindedBlock,
|
|
549
|
+
meta: { ...meta, executionPayloadBlinded: true },
|
|
550
|
+
};
|
|
579
551
|
}
|
|
552
|
+
const blindedBlock = beaconBlockToBlinded(config, data);
|
|
553
|
+
return {
|
|
554
|
+
data: blindedBlock,
|
|
555
|
+
meta: { ...meta, executionPayloadBlinded: true },
|
|
556
|
+
};
|
|
580
557
|
}
|
|
581
|
-
|
|
582
|
-
return { data, meta };
|
|
583
|
-
}
|
|
558
|
+
return { data, meta };
|
|
584
559
|
},
|
|
585
560
|
async produceBlindedBlock({ slot, randaoReveal, graffiti }) {
|
|
586
561
|
const { data, version } = await produceEngineOrBuilderBlock(slot, randaoReveal, graffiti);
|
|
@@ -592,13 +567,11 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
592
567
|
const blindedBlock = beaconBlockToBlinded(config, block);
|
|
593
568
|
return { data: blindedBlock, meta: { version } };
|
|
594
569
|
}
|
|
595
|
-
|
|
570
|
+
if (isBlindedBeaconBlock(data)) {
|
|
596
571
|
return { data, meta: { version } };
|
|
597
572
|
}
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
return { data: blindedBlock, meta: { version } };
|
|
601
|
-
}
|
|
573
|
+
const blindedBlock = beaconBlockToBlinded(config, data);
|
|
574
|
+
return { data: blindedBlock, meta: { version } };
|
|
602
575
|
},
|
|
603
576
|
async produceAttestationData({ committeeIndex, slot }) {
|
|
604
577
|
notWhileSyncing();
|
|
@@ -674,14 +647,15 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
674
647
|
},
|
|
675
648
|
async getProposerDuties({ epoch }) {
|
|
676
649
|
notWhileSyncing();
|
|
677
|
-
// Early check that epoch is
|
|
650
|
+
// Early check that epoch is no more than current_epoch + 1, or allow for pre-genesis
|
|
678
651
|
const currentEpoch = currentEpochWithDisparity();
|
|
679
652
|
const nextEpoch = currentEpoch + 1;
|
|
680
|
-
if (currentEpoch >= 0 && epoch
|
|
681
|
-
throw
|
|
653
|
+
if (currentEpoch >= 0 && epoch > nextEpoch) {
|
|
654
|
+
throw new ApiError(400, `Requested epoch ${epoch} must not be more than one epoch in the future`);
|
|
682
655
|
}
|
|
683
656
|
const head = chain.forkChoice.getHead();
|
|
684
657
|
let state = undefined;
|
|
658
|
+
const startSlot = computeStartSlotAtEpoch(epoch);
|
|
685
659
|
const slotMs = config.SECONDS_PER_SLOT * 1000;
|
|
686
660
|
const prepareNextSlotLookAheadMs = slotMs / SCHEDULER_LOOKAHEAD_FACTOR;
|
|
687
661
|
const toNextEpochMs = msToNextEpoch();
|
|
@@ -699,28 +673,59 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
699
673
|
}
|
|
700
674
|
}
|
|
701
675
|
if (!state) {
|
|
702
|
-
|
|
676
|
+
if (epoch >= currentEpoch - 1) {
|
|
677
|
+
// Cached beacon state stores proposers for previous, current and next epoch. The
|
|
678
|
+
// requested epoch is within that range, we can use the head state at current epoch
|
|
679
|
+
state = await chain.getHeadStateAtCurrentEpoch(RegenCaller.getDuties);
|
|
680
|
+
}
|
|
681
|
+
else {
|
|
682
|
+
const res = await getStateResponseWithRegen(chain, startSlot);
|
|
683
|
+
const stateViewDU = res.state instanceof Uint8Array
|
|
684
|
+
? loadState(config, chain.getHeadState(), res.state).state
|
|
685
|
+
: res.state.clone();
|
|
686
|
+
state = createCachedBeaconState(stateViewDU, {
|
|
687
|
+
config: chain.config,
|
|
688
|
+
// Not required to compute proposers
|
|
689
|
+
pubkey2index: new PubkeyIndexMap(),
|
|
690
|
+
index2pubkey: [],
|
|
691
|
+
}, { skipSyncPubkeys: true, skipSyncCommitteeCache: true });
|
|
692
|
+
if (state.epochCtx.epoch !== epoch) {
|
|
693
|
+
throw Error(`Loaded state epoch ${state.epochCtx.epoch} does not match requested epoch ${epoch}`);
|
|
694
|
+
}
|
|
695
|
+
}
|
|
703
696
|
}
|
|
704
697
|
const stateEpoch = state.epochCtx.epoch;
|
|
705
698
|
let indexes = [];
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
699
|
+
switch (epoch) {
|
|
700
|
+
case stateEpoch:
|
|
701
|
+
indexes = state.epochCtx.getBeaconProposers();
|
|
702
|
+
break;
|
|
703
|
+
case stateEpoch + 1:
|
|
704
|
+
// make sure shuffling is calculated and ready for next call to calculate nextProposers
|
|
705
|
+
await chain.shufflingCache.get(state.epochCtx.nextEpoch, state.epochCtx.nextDecisionRoot);
|
|
706
|
+
// Requesting duties for next epoch is allowed since they can be predicted with high probabilities.
|
|
707
|
+
// @see `epochCtx.getBeaconProposersNextEpoch` JSDocs for rationale.
|
|
708
|
+
indexes = state.epochCtx.getBeaconProposersNextEpoch();
|
|
709
|
+
break;
|
|
710
|
+
case stateEpoch - 1: {
|
|
711
|
+
const indexesPrevEpoch = state.epochCtx.getBeaconProposersPrevEpoch();
|
|
712
|
+
if (indexesPrevEpoch === null) {
|
|
713
|
+
// Should not happen as previous proposer duties should be initialized for head state
|
|
714
|
+
// and if we load state from `Uint8Array` it will always be the state of requested epoch
|
|
715
|
+
throw Error(`Proposer duties for previous epoch ${epoch} not yet initialized`);
|
|
716
|
+
}
|
|
717
|
+
indexes = indexesPrevEpoch;
|
|
718
|
+
break;
|
|
719
|
+
}
|
|
720
|
+
default:
|
|
721
|
+
// Should never happen, epoch is checked to be in bounds above
|
|
722
|
+
throw Error(`Proposer duties for epoch ${epoch} not supported, current epoch ${stateEpoch}`);
|
|
717
723
|
}
|
|
718
724
|
// NOTE: this is the fastest way of getting compressed pubkeys.
|
|
719
725
|
// See benchmark -> packages/lodestar/test/perf/api/impl/validator/attester.test.ts
|
|
720
726
|
// After dropping the flat caches attached to the CachedBeaconState it's no longer available.
|
|
721
727
|
// TODO: Add a flag to just send 0x00 as pubkeys since the Lodestar validator does not need them.
|
|
722
728
|
const pubkeys = getPubkeysForIndices(state.validators, indexes);
|
|
723
|
-
const startSlot = computeStartSlotAtEpoch(epoch);
|
|
724
729
|
const duties = [];
|
|
725
730
|
for (let i = 0; i < SLOTS_PER_EPOCH; i++) {
|
|
726
731
|
duties.push({ slot: startSlot + i, validatorIndex: indexes[i], pubkey: pubkeys[i] });
|
|
@@ -873,7 +878,6 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
873
878
|
await Promise.all(signedAggregateAndProofs.map(async (signedAggregateAndProof, i) => {
|
|
874
879
|
try {
|
|
875
880
|
// TODO: Validate in batch
|
|
876
|
-
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
877
881
|
const validateFn = () => validateApiAggregateAndProof(fork, chain, signedAggregateAndProof);
|
|
878
882
|
const { slot, beaconBlockRoot } = signedAggregateAndProof.message.aggregate.data;
|
|
879
883
|
// when a validator is configured with multiple beacon node urls, this attestation may come from another beacon node
|
|
@@ -903,7 +907,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
903
907
|
if (errors.length > 1) {
|
|
904
908
|
throw Error("Multiple errors on publishAggregateAndProofs\n" + errors.map((e) => e.message).join("\n"));
|
|
905
909
|
}
|
|
906
|
-
|
|
910
|
+
if (errors.length === 1) {
|
|
907
911
|
throw errors[0];
|
|
908
912
|
}
|
|
909
913
|
},
|
|
@@ -945,7 +949,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
945
949
|
if (errors.length > 1) {
|
|
946
950
|
throw Error("Multiple errors on publishContributionAndProofs\n" + errors.map((e) => e.message).join("\n"));
|
|
947
951
|
}
|
|
948
|
-
|
|
952
|
+
if (errors.length === 1) {
|
|
949
953
|
throw errors[0];
|
|
950
954
|
}
|
|
951
955
|
},
|
|
@@ -1036,12 +1040,11 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
|
|
|
1036
1040
|
const filteredRegistrations = registrations.filter((registration) => {
|
|
1037
1041
|
const { pubkey } = registration.message;
|
|
1038
1042
|
const validatorIndex = headState.epochCtx.pubkey2index.get(pubkey);
|
|
1039
|
-
if (validatorIndex ===
|
|
1043
|
+
if (validatorIndex === null)
|
|
1040
1044
|
return false;
|
|
1041
1045
|
const validator = headState.validators.getReadonly(validatorIndex);
|
|
1042
1046
|
const status = getValidatorStatus(validator, currentEpoch);
|
|
1043
|
-
return (status === "
|
|
1044
|
-
status === "active_exiting" ||
|
|
1047
|
+
return (status === "active_exiting" ||
|
|
1045
1048
|
status === "active_ongoing" ||
|
|
1046
1049
|
status === "active_slashed" ||
|
|
1047
1050
|
status === "pending_initialized" ||
|