@lodestar/beacon-node 1.35.0-dev.fcf8d024ea → 1.35.0-dev.feed916580
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/config/constants.d.ts +0 -5
- package/lib/api/impl/config/constants.js +1 -6
- package/lib/api/impl/config/constants.js.map +1 -1
- package/lib/api/impl/validator/index.js +3 -5
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.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/blocks/blockInput/blockInput.js +1 -1
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +3 -4
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +1 -8
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +7 -1
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.js +0 -1
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/chain.js +3 -2
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +2 -2
- package/lib/chain/opPools/attestationPool.d.ts +3 -2
- package/lib/chain/opPools/attestationPool.js +5 -3
- package/lib/chain/opPools/attestationPool.js.map +1 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.d.ts +2 -3
- package/lib/chain/opPools/syncCommitteeMessagePool.js +5 -6
- package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
- package/lib/chain/opPools/types.d.ts +1 -1
- package/lib/chain/opPools/types.js +1 -1
- package/lib/chain/opPools/types.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts +3 -3
- package/lib/chain/prepareNextSlot.js +8 -8
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +8 -9
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/validation/lightClientFinalityUpdate.js +3 -4
- package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
- package/lib/chain/validation/lightClientOptimisticUpdate.d.ts +4 -6
- package/lib/chain/validation/lightClientOptimisticUpdate.js +11 -11
- package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
- package/lib/chain/validatorMonitor.js +14 -20
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/db/buckets.d.ts +4 -4
- package/lib/db/buckets.js +4 -4
- package/lib/db/buckets.js.map +1 -1
- package/lib/db/repositories/blobSidecars.js +1 -1
- package/lib/db/repositories/blobSidecars.js.map +1 -1
- package/lib/db/repositories/blobSidecarsArchive.js +1 -1
- package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
- package/lib/db/repositories/dataColumnSidecar.js +1 -1
- package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
- package/lib/db/repositories/dataColumnSidecarArchive.js +1 -1
- package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +1 -1
- package/lib/metrics/metrics/lodestar.js +3 -3
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.js +3 -9
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/discv5/index.js +1 -4
- package/lib/network/discv5/index.js.map +1 -1
- package/lib/network/gossip/gossipsub.d.ts +0 -1
- package/lib/network/gossip/gossipsub.js +16 -35
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/metrics.d.ts +7 -15
- package/lib/network/gossip/metrics.js +6 -16
- package/lib/network/gossip/metrics.js.map +1 -1
- package/lib/network/libp2p/index.js +1 -9
- package/lib/network/libp2p/index.js.map +1 -1
- package/lib/network/metadata.js +1 -2
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +1 -1
- package/lib/network/network.js +13 -11
- package/lib/network/network.js.map +1 -1
- package/lib/network/peers/datastore.d.ts +2 -2
- package/lib/network/peers/datastore.js +2 -2
- package/lib/network/peers/datastore.js.map +1 -1
- package/lib/network/processor/index.d.ts +1 -1
- package/lib/network/processor/index.js +3 -2
- package/lib/network/processor/index.js.map +1 -1
- package/lib/sync/types.d.ts +1 -0
- package/lib/sync/types.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +1 -0
- package/lib/sync/unknownBlock.js +19 -17
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/downloadByRoot.d.ts +1 -3
- package/lib/sync/utils/downloadByRoot.js +9 -36
- package/lib/sync/utils/downloadByRoot.js.map +1 -1
- package/lib/util/blobs.js +3 -5
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/clock.d.ts +0 -5
- package/lib/util/clock.js +0 -3
- package/lib/util/clock.js.map +1 -1
- package/lib/util/dataColumns.js +1 -1
- package/lib/util/dataColumns.js.map +1 -1
- package/lib/util/execution.js +2 -19
- package/lib/util/execution.js.map +1 -1
- package/package.json +22 -32
- package/lib/api/impl/api.d.ts.map +0 -1
- package/lib/api/impl/beacon/blocks/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/blocks/utils.d.ts.map +0 -1
- package/lib/api/impl/beacon/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/pool/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/rewards/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/state/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/state/utils.d.ts.map +0 -1
- package/lib/api/impl/config/constants.d.ts.map +0 -1
- package/lib/api/impl/config/index.d.ts.map +0 -1
- package/lib/api/impl/debug/index.d.ts.map +0 -1
- package/lib/api/impl/errors.d.ts.map +0 -1
- package/lib/api/impl/events/index.d.ts.map +0 -1
- package/lib/api/impl/index.d.ts.map +0 -1
- package/lib/api/impl/lightclient/index.d.ts.map +0 -1
- package/lib/api/impl/lodestar/index.d.ts.map +0 -1
- package/lib/api/impl/node/index.d.ts.map +0 -1
- package/lib/api/impl/node/utils.d.ts.map +0 -1
- package/lib/api/impl/proof/index.d.ts.map +0 -1
- package/lib/api/impl/types.d.ts.map +0 -1
- package/lib/api/impl/utils.d.ts.map +0 -1
- package/lib/api/impl/validator/index.d.ts.map +0 -1
- package/lib/api/impl/validator/utils.d.ts.map +0 -1
- package/lib/api/index.d.ts.map +0 -1
- package/lib/api/options.d.ts.map +0 -1
- package/lib/api/rest/activeSockets.d.ts.map +0 -1
- package/lib/api/rest/base.d.ts.map +0 -1
- package/lib/api/rest/index.d.ts.map +0 -1
- package/lib/api/rest/swaggerUI.d.ts.map +0 -1
- package/lib/bun-wrappers/prometheus-gc-stats.d.ts.map +0 -1
- package/lib/chain/ColumnReconstructionTracker.d.ts.map +0 -1
- package/lib/chain/GetBlobsTracker.d.ts.map +0 -1
- package/lib/chain/archiveStore/archiveStore.d.ts.map +0 -1
- package/lib/chain/archiveStore/constants.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/types.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/worker.d.ts.map +0 -1
- package/lib/chain/archiveStore/index.d.ts.map +0 -1
- package/lib/chain/archiveStore/interface.d.ts.map +0 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +0 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +0 -1
- package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +0 -1
- package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts.map +0 -1
- package/lib/chain/balancesCache.d.ts.map +0 -1
- package/lib/chain/beaconProposerCache.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/errors.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/index.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/types.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/utils.d.ts.map +0 -1
- package/lib/chain/blocks/importBlock.d.ts.map +0 -1
- package/lib/chain/blocks/index.d.ts.map +0 -1
- package/lib/chain/blocks/types.d.ts.map +0 -1
- package/lib/chain/blocks/utils/blowfishBanner.d.ts.map +0 -1
- package/lib/chain/blocks/utils/chainSegment.d.ts.map +0 -1
- package/lib/chain/blocks/utils/checkpoint.d.ts.map +0 -1
- package/lib/chain/blocks/utils/giraffeBanner.d.ts.map +0 -1
- package/lib/chain/blocks/utils/ownBanner.d.ts.map +0 -1
- package/lib/chain/blocks/utils/pandaMergeTransitionBanner.d.ts.map +0 -1
- package/lib/chain/blocks/utils/zebraBanner.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlock.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +0 -1
- package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +0 -1
- package/lib/chain/bls/index.d.ts.map +0 -1
- package/lib/chain/bls/interface.d.ts.map +0 -1
- package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
- package/lib/chain/bls/multithread/index.d.ts.map +0 -1
- package/lib/chain/bls/multithread/jobItem.d.ts.map +0 -1
- package/lib/chain/bls/multithread/poolSize.d.ts.map +0 -1
- package/lib/chain/bls/multithread/types.d.ts.map +0 -1
- package/lib/chain/bls/multithread/utils.d.ts.map +0 -1
- package/lib/chain/bls/multithread/worker.d.ts.map +0 -1
- package/lib/chain/bls/singleThread.d.ts.map +0 -1
- package/lib/chain/bls/utils.d.ts.map +0 -1
- package/lib/chain/chain.d.ts.map +0 -1
- package/lib/chain/emitter.d.ts.map +0 -1
- package/lib/chain/errors/attestationError.d.ts.map +0 -1
- package/lib/chain/errors/attesterSlashingError.d.ts.map +0 -1
- package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
- package/lib/chain/errors/blockError.d.ts.map +0 -1
- package/lib/chain/errors/blsToExecutionChangeError.d.ts.map +0 -1
- package/lib/chain/errors/dataColumnSidecarError.d.ts.map +0 -1
- package/lib/chain/errors/gossipValidation.d.ts.map +0 -1
- package/lib/chain/errors/index.d.ts.map +0 -1
- package/lib/chain/errors/lightClientError.d.ts.map +0 -1
- package/lib/chain/errors/proposerSlashingError.d.ts.map +0 -1
- package/lib/chain/errors/syncCommitteeError.d.ts.map +0 -1
- package/lib/chain/errors/voluntaryExitError.d.ts.map +0 -1
- package/lib/chain/forkChoice/index.d.ts.map +0 -1
- package/lib/chain/genesis/genesis.d.ts.map +0 -1
- package/lib/chain/genesis/interface.d.ts.map +0 -1
- package/lib/chain/index.d.ts.map +0 -1
- package/lib/chain/initState.d.ts.map +0 -1
- package/lib/chain/interface.d.ts.map +0 -1
- package/lib/chain/lightClient/index.d.ts.map +0 -1
- package/lib/chain/lightClient/proofs.d.ts.map +0 -1
- package/lib/chain/lightClient/types.d.ts.map +0 -1
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +0 -1
- package/lib/chain/opPools/attestationPool.d.ts.map +0 -1
- package/lib/chain/opPools/index.d.ts.map +0 -1
- package/lib/chain/opPools/opPool.d.ts.map +0 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +0 -1
- package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +0 -1
- package/lib/chain/opPools/types.d.ts.map +0 -1
- package/lib/chain/opPools/utils.d.ts.map +0 -1
- package/lib/chain/options.d.ts.map +0 -1
- package/lib/chain/prepareNextSlot.d.ts.map +0 -1
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +0 -1
- package/lib/chain/produceBlock/index.d.ts.map +0 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +0 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts.map +0 -1
- package/lib/chain/regen/errors.d.ts.map +0 -1
- package/lib/chain/regen/index.d.ts.map +0 -1
- package/lib/chain/regen/interface.d.ts.map +0 -1
- package/lib/chain/regen/queued.d.ts.map +0 -1
- package/lib/chain/regen/regen.d.ts.map +0 -1
- package/lib/chain/reprocess.d.ts.map +0 -1
- package/lib/chain/rewards/attestationsRewards.d.ts.map +0 -1
- package/lib/chain/rewards/blockRewards.d.ts.map +0 -1
- package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +0 -1
- package/lib/chain/seenCache/index.d.ts.map +0 -1
- package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +0 -1
- package/lib/chain/seenCache/seenAttestationData.d.ts.map +0 -1
- package/lib/chain/seenCache/seenAttesters.d.ts.map +0 -1
- package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +0 -1
- package/lib/chain/seenCache/seenBlockProposers.d.ts.map +0 -1
- package/lib/chain/seenCache/seenCommittee.d.ts.map +0 -1
- package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +0 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +0 -1
- package/lib/chain/serializeState.d.ts.map +0 -1
- package/lib/chain/shufflingCache.d.ts.map +0 -1
- package/lib/chain/stateCache/blockStateCacheImpl.d.ts.map +0 -1
- package/lib/chain/stateCache/datastore/db.d.ts.map +0 -1
- package/lib/chain/stateCache/datastore/file.d.ts.map +0 -1
- package/lib/chain/stateCache/datastore/index.d.ts.map +0 -1
- package/lib/chain/stateCache/datastore/types.d.ts.map +0 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +0 -1
- package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts.map +0 -1
- package/lib/chain/stateCache/index.d.ts.map +0 -1
- package/lib/chain/stateCache/mapMetrics.d.ts.map +0 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +0 -1
- package/lib/chain/stateCache/types.d.ts.map +0 -1
- package/lib/chain/validation/aggregateAndProof.d.ts.map +0 -1
- package/lib/chain/validation/attestation.d.ts.map +0 -1
- package/lib/chain/validation/attesterSlashing.d.ts.map +0 -1
- package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
- package/lib/chain/validation/block.d.ts.map +0 -1
- package/lib/chain/validation/blsToExecutionChange.d.ts.map +0 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts.map +0 -1
- package/lib/chain/validation/index.d.ts.map +0 -1
- package/lib/chain/validation/lightClientFinalityUpdate.d.ts.map +0 -1
- package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +0 -1
- package/lib/chain/validation/proposerSlashing.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/index.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +0 -1
- package/lib/chain/validation/syncCommittee.d.ts.map +0 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +0 -1
- package/lib/chain/validation/voluntaryExit.d.ts.map +0 -1
- package/lib/chain/validatorMonitor.d.ts.map +0 -1
- package/lib/constants/constants.d.ts.map +0 -1
- package/lib/constants/index.d.ts.map +0 -1
- package/lib/constants/network.d.ts.map +0 -1
- package/lib/db/beacon.d.ts.map +0 -1
- package/lib/db/buckets.d.ts.map +0 -1
- package/lib/db/index.d.ts.map +0 -1
- package/lib/db/interface.d.ts.map +0 -1
- package/lib/db/options.d.ts.map +0 -1
- package/lib/db/repositories/attesterSlashing.d.ts.map +0 -1
- package/lib/db/repositories/backfilledRanges.d.ts.map +0 -1
- package/lib/db/repositories/blobSidecars.d.ts.map +0 -1
- package/lib/db/repositories/blobSidecarsArchive.d.ts.map +0 -1
- package/lib/db/repositories/block.d.ts.map +0 -1
- package/lib/db/repositories/blockArchive.d.ts.map +0 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts.map +0 -1
- package/lib/db/repositories/blsToExecutionChange.d.ts.map +0 -1
- package/lib/db/repositories/checkpointState.d.ts.map +0 -1
- package/lib/db/repositories/dataColumnSidecar.d.ts.map +0 -1
- package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +0 -1
- package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
- package/lib/db/repositories/depositEvent.d.ts.map +0 -1
- package/lib/db/repositories/eth1Data.d.ts.map +0 -1
- package/lib/db/repositories/index.d.ts.map +0 -1
- package/lib/db/repositories/lightclientBestUpdate.d.ts.map +0 -1
- package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +0 -1
- package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +0 -1
- package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +0 -1
- package/lib/db/repositories/proposerSlashing.d.ts.map +0 -1
- package/lib/db/repositories/stateArchive.d.ts.map +0 -1
- package/lib/db/repositories/stateArchiveIndex.d.ts.map +0 -1
- package/lib/db/repositories/voluntaryExit.d.ts.map +0 -1
- package/lib/db/single/index.d.ts.map +0 -1
- package/lib/db/single/preGenesisState.d.ts.map +0 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
- package/lib/eth1/errors.d.ts.map +0 -1
- package/lib/eth1/eth1DataCache.d.ts.map +0 -1
- package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
- package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
- package/lib/eth1/eth1MergeBlockTracker.d.ts.map +0 -1
- package/lib/eth1/index.d.ts.map +0 -1
- package/lib/eth1/interface.d.ts.map +0 -1
- package/lib/eth1/options.d.ts.map +0 -1
- package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
- package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
- package/lib/eth1/provider/jwt.d.ts.map +0 -1
- package/lib/eth1/provider/utils.d.ts.map +0 -1
- package/lib/eth1/stream.d.ts.map +0 -1
- package/lib/eth1/utils/depositContract.d.ts.map +0 -1
- package/lib/eth1/utils/deposits.d.ts.map +0 -1
- package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
- package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
- package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
- package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
- package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
- package/lib/execution/builder/cache.d.ts.map +0 -1
- package/lib/execution/builder/http.d.ts.map +0 -1
- package/lib/execution/builder/index.d.ts.map +0 -1
- package/lib/execution/builder/interface.d.ts.map +0 -1
- package/lib/execution/builder/utils.d.ts.map +0 -1
- package/lib/execution/engine/disabled.d.ts.map +0 -1
- package/lib/execution/engine/http.d.ts.map +0 -1
- package/lib/execution/engine/index.d.ts.map +0 -1
- package/lib/execution/engine/interface.d.ts.map +0 -1
- package/lib/execution/engine/mock.d.ts.map +0 -1
- package/lib/execution/engine/payloadIdCache.d.ts.map +0 -1
- package/lib/execution/engine/types.d.ts.map +0 -1
- package/lib/execution/engine/utils.d.ts.map +0 -1
- package/lib/execution/index.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/metrics/index.d.ts.map +0 -1
- package/lib/metrics/metrics/beacon.d.ts.map +0 -1
- package/lib/metrics/metrics/lodestar.d.ts.map +0 -1
- package/lib/metrics/metrics.d.ts.map +0 -1
- package/lib/metrics/nodeJsMetrics.d.ts.map +0 -1
- package/lib/metrics/options.d.ts.map +0 -1
- package/lib/metrics/server/http.d.ts.map +0 -1
- package/lib/metrics/server/index.d.ts.map +0 -1
- package/lib/metrics/utils/avgMinMax.d.ts.map +0 -1
- package/lib/metrics/utils/gauge.d.ts.map +0 -1
- package/lib/metrics/utils/registryMetricCreator.d.ts.map +0 -1
- package/lib/monitoring/clientStats.d.ts.map +0 -1
- package/lib/monitoring/index.d.ts.map +0 -1
- package/lib/monitoring/options.d.ts.map +0 -1
- package/lib/monitoring/properties.d.ts.map +0 -1
- package/lib/monitoring/service.d.ts.map +0 -1
- package/lib/monitoring/system.d.ts.map +0 -1
- package/lib/monitoring/types.d.ts.map +0 -1
- package/lib/network/core/events.d.ts.map +0 -1
- package/lib/network/core/index.d.ts.map +0 -1
- package/lib/network/core/metrics.d.ts.map +0 -1
- package/lib/network/core/networkCore.d.ts.map +0 -1
- package/lib/network/core/networkCoreWorker.d.ts.map +0 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts.map +0 -1
- package/lib/network/core/types.d.ts.map +0 -1
- package/lib/network/discv5/index.d.ts.map +0 -1
- package/lib/network/discv5/types.d.ts.map +0 -1
- package/lib/network/discv5/utils.d.ts.map +0 -1
- package/lib/network/discv5/worker.d.ts.map +0 -1
- package/lib/network/events.d.ts.map +0 -1
- package/lib/network/forks.d.ts.map +0 -1
- package/lib/network/gossip/constants.d.ts.map +0 -1
- package/lib/network/gossip/encoding.d.ts.map +0 -1
- package/lib/network/gossip/errors.d.ts.map +0 -1
- package/lib/network/gossip/gossipsub.d.ts.map +0 -1
- package/lib/network/gossip/index.d.ts.map +0 -1
- package/lib/network/gossip/interface.d.ts.map +0 -1
- package/lib/network/gossip/metrics.d.ts.map +0 -1
- package/lib/network/gossip/scoringParameters.d.ts.map +0 -1
- package/lib/network/gossip/topic.d.ts.map +0 -1
- package/lib/network/index.d.ts.map +0 -1
- package/lib/network/interface.d.ts.map +0 -1
- package/lib/network/libp2p/error.d.ts.map +0 -1
- package/lib/network/libp2p/index.d.ts.map +0 -1
- package/lib/network/metadata.d.ts.map +0 -1
- package/lib/network/network.d.ts.map +0 -1
- package/lib/network/networkConfig.d.ts.map +0 -1
- package/lib/network/options.d.ts.map +0 -1
- package/lib/network/peers/client.d.ts.map +0 -1
- package/lib/network/peers/datastore.d.ts.map +0 -1
- package/lib/network/peers/discover.d.ts.map +0 -1
- package/lib/network/peers/index.d.ts.map +0 -1
- package/lib/network/peers/peerManager.d.ts.map +0 -1
- package/lib/network/peers/peersData.d.ts.map +0 -1
- package/lib/network/peers/score/constants.d.ts.map +0 -1
- package/lib/network/peers/score/index.d.ts.map +0 -1
- package/lib/network/peers/score/interface.d.ts.map +0 -1
- package/lib/network/peers/score/score.d.ts.map +0 -1
- package/lib/network/peers/score/store.d.ts.map +0 -1
- package/lib/network/peers/score/utils.d.ts.map +0 -1
- package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +0 -1
- package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +0 -1
- package/lib/network/peers/utils/getConnectedPeerIds.d.ts.map +0 -1
- package/lib/network/peers/utils/index.d.ts.map +0 -1
- package/lib/network/peers/utils/prioritizePeers.d.ts.map +0 -1
- package/lib/network/peers/utils/subnetMap.d.ts.map +0 -1
- package/lib/network/processor/aggregatorTracker.d.ts.map +0 -1
- package/lib/network/processor/extractSlotRootFns.d.ts.map +0 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +0 -1
- package/lib/network/processor/gossipQueues/index.d.ts.map +0 -1
- package/lib/network/processor/gossipQueues/indexed.d.ts.map +0 -1
- package/lib/network/processor/gossipQueues/linear.d.ts.map +0 -1
- package/lib/network/processor/gossipQueues/types.d.ts.map +0 -1
- package/lib/network/processor/gossipValidatorFn.d.ts.map +0 -1
- package/lib/network/processor/index.d.ts.map +0 -1
- package/lib/network/processor/types.d.ts.map +0 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/index.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/lightClientBootstrap.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/lightClientFinalityUpdate.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +0 -1
- package/lib/network/reqresp/index.d.ts.map +0 -1
- package/lib/network/reqresp/interface.d.ts.map +0 -1
- package/lib/network/reqresp/protocols.d.ts.map +0 -1
- package/lib/network/reqresp/rateLimit.d.ts.map +0 -1
- package/lib/network/reqresp/score.d.ts.map +0 -1
- package/lib/network/reqresp/types.d.ts.map +0 -1
- package/lib/network/reqresp/utils/collect.d.ts.map +0 -1
- package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts.map +0 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +0 -1
- package/lib/network/statusCache.d.ts.map +0 -1
- package/lib/network/subnets/attnetsService.d.ts.map +0 -1
- package/lib/network/subnets/index.d.ts.map +0 -1
- package/lib/network/subnets/interface.d.ts.map +0 -1
- package/lib/network/subnets/syncnetsService.d.ts.map +0 -1
- package/lib/network/subnets/util.d.ts.map +0 -1
- package/lib/network/util.d.ts.map +0 -1
- package/lib/node/index.d.ts.map +0 -1
- package/lib/node/nodejs.d.ts.map +0 -1
- package/lib/node/notifier.d.ts.map +0 -1
- package/lib/node/options.d.ts.map +0 -1
- package/lib/node/utils/interop/deposits.d.ts.map +0 -1
- package/lib/node/utils/interop/state.d.ts.map +0 -1
- package/lib/node/utils/lightclient.d.ts.map +0 -1
- package/lib/node/utils/state.d.ts.map +0 -1
- package/lib/sync/backfill/backfill.d.ts.map +0 -1
- package/lib/sync/backfill/errors.d.ts.map +0 -1
- package/lib/sync/backfill/index.d.ts.map +0 -1
- package/lib/sync/backfill/verify.d.ts.map +0 -1
- package/lib/sync/constants.d.ts.map +0 -1
- package/lib/sync/index.d.ts.map +0 -1
- package/lib/sync/interface.d.ts.map +0 -1
- package/lib/sync/options.d.ts.map +0 -1
- package/lib/sync/range/batch.d.ts.map +0 -1
- package/lib/sync/range/chain.d.ts.map +0 -1
- package/lib/sync/range/range.d.ts.map +0 -1
- package/lib/sync/range/utils/batches.d.ts.map +0 -1
- package/lib/sync/range/utils/chainTarget.d.ts.map +0 -1
- package/lib/sync/range/utils/hashBlocks.d.ts.map +0 -1
- package/lib/sync/range/utils/index.d.ts.map +0 -1
- package/lib/sync/range/utils/peerBalancer.d.ts.map +0 -1
- package/lib/sync/range/utils/updateChains.d.ts.map +0 -1
- package/lib/sync/sync.d.ts.map +0 -1
- package/lib/sync/types.d.ts.map +0 -1
- package/lib/sync/unknownBlock.d.ts.map +0 -1
- package/lib/sync/utils/downloadByRange.d.ts.map +0 -1
- package/lib/sync/utils/downloadByRoot.d.ts.map +0 -1
- package/lib/sync/utils/pendingBlocksTree.d.ts.map +0 -1
- package/lib/sync/utils/remoteSyncType.d.ts.map +0 -1
- package/lib/util/address.d.ts.map +0 -1
- package/lib/util/array.d.ts.map +0 -1
- package/lib/util/asyncIterableToEvents.d.ts.map +0 -1
- package/lib/util/binarySearch.d.ts.map +0 -1
- package/lib/util/bitArray.d.ts.map +0 -1
- package/lib/util/blobs.d.ts.map +0 -1
- package/lib/util/bufferPool.d.ts.map +0 -1
- package/lib/util/bytes.d.ts.map +0 -1
- package/lib/util/chunkify.d.ts.map +0 -1
- package/lib/util/clock.d.ts.map +0 -1
- package/lib/util/dataColumns.d.ts.map +0 -1
- package/lib/util/dependentRoot.d.ts.map +0 -1
- package/lib/util/enum.d.ts.map +0 -1
- package/lib/util/error.d.ts.map +0 -1
- package/lib/util/eventLoop.d.ts.map +0 -1
- package/lib/util/execution.d.ts.map +0 -1
- package/lib/util/file.d.ts.map +0 -1
- package/lib/util/forkChoice.d.ts.map +0 -1
- package/lib/util/forkName.d.ts.map +0 -1
- package/lib/util/graffiti.d.ts.map +0 -1
- package/lib/util/hex.d.ts.map +0 -1
- package/lib/util/index.d.ts.map +0 -1
- package/lib/util/ip.d.ts.map +0 -1
- package/lib/util/itTrigger.d.ts.map +0 -1
- package/lib/util/kzg.d.ts.map +0 -1
- package/lib/util/map.d.ts.map +0 -1
- package/lib/util/metadata.d.ts.map +0 -1
- package/lib/util/multifork.d.ts.map +0 -1
- package/lib/util/numpy.d.ts.map +0 -1
- package/lib/util/peerId.d.ts.map +0 -1
- package/lib/util/profile.d.ts.map +0 -1
- package/lib/util/promises.d.ts.map +0 -1
- package/lib/util/queue/errors.d.ts.map +0 -1
- package/lib/util/queue/fnQueue.d.ts.map +0 -1
- package/lib/util/queue/index.d.ts.map +0 -1
- package/lib/util/queue/itemQueue.d.ts.map +0 -1
- package/lib/util/queue/options.d.ts.map +0 -1
- package/lib/util/serializedCache.d.ts.map +0 -1
- package/lib/util/set.d.ts.map +0 -1
- package/lib/util/shuffle.d.ts.map +0 -1
- package/lib/util/sortBy.d.ts.map +0 -1
- package/lib/util/sszBytes.d.ts.map +0 -1
- package/lib/util/strictEvents.d.ts.map +0 -1
- package/lib/util/time.d.ts.map +0 -1
- package/lib/util/timeSeries.d.ts.map +0 -1
- package/lib/util/types.d.ts.map +0 -1
- package/lib/util/workerEvents.d.ts.map +0 -1
- package/lib/util/wrapError.d.ts.map +0 -1
- package/src/api/impl/api.ts +0 -26
- package/src/api/impl/beacon/blocks/index.ts +0 -744
- package/src/api/impl/beacon/blocks/utils.ts +0 -75
- package/src/api/impl/beacon/index.ts +0 -35
- package/src/api/impl/beacon/pool/index.ts +0 -314
- package/src/api/impl/beacon/rewards/index.ts +0 -30
- package/src/api/impl/beacon/state/index.ts +0 -406
- package/src/api/impl/beacon/state/utils.ts +0 -189
- package/src/api/impl/config/constants.ts +0 -127
- package/src/api/impl/config/index.ts +0 -59
- package/src/api/impl/debug/index.ts +0 -131
- package/src/api/impl/errors.ts +0 -50
- package/src/api/impl/events/index.ts +0 -33
- package/src/api/impl/index.ts +0 -6
- package/src/api/impl/lightclient/index.ts +0 -64
- package/src/api/impl/lodestar/index.ts +0 -257
- package/src/api/impl/node/index.ts +0 -88
- package/src/api/impl/node/utils.ts +0 -51
- package/src/api/impl/proof/index.ts +0 -60
- package/src/api/impl/types.ts +0 -17
- package/src/api/impl/utils.ts +0 -25
- package/src/api/impl/validator/index.ts +0 -1540
- package/src/api/impl/validator/utils.ts +0 -85
- package/src/api/index.ts +0 -2
- package/src/api/options.ts +0 -16
- package/src/api/rest/activeSockets.ts +0 -109
- package/src/api/rest/base.ts +0 -216
- package/src/api/rest/index.ts +0 -63
- package/src/api/rest/swaggerUI.ts +0 -80
- package/src/bun-wrappers/prometheus-gc-stats.ts +0 -7
- package/src/chain/ColumnReconstructionTracker.ts +0 -90
- package/src/chain/GetBlobsTracker.ts +0 -115
- package/src/chain/archiveStore/archiveStore.ts +0 -222
- package/src/chain/archiveStore/constants.ts +0 -5
- package/src/chain/archiveStore/historicalState/getHistoricalState.ts +0 -116
- package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +0 -68
- package/src/chain/archiveStore/historicalState/metrics.ts +0 -214
- package/src/chain/archiveStore/historicalState/types.ts +0 -41
- package/src/chain/archiveStore/historicalState/worker.ts +0 -77
- package/src/chain/archiveStore/index.ts +0 -3
- package/src/chain/archiveStore/interface.ts +0 -75
- package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +0 -138
- package/src/chain/archiveStore/utils/archiveBlocks.ts +0 -437
- package/src/chain/archiveStore/utils/pruneHistory.ts +0 -56
- package/src/chain/archiveStore/utils/updateBackfillRange.ts +0 -50
- package/src/chain/balancesCache.ts +0 -52
- package/src/chain/beaconProposerCache.ts +0 -43
- package/src/chain/blocks/blockInput/blockInput.ts +0 -852
- package/src/chain/blocks/blockInput/errors.ts +0 -48
- package/src/chain/blocks/blockInput/index.ts +0 -4
- package/src/chain/blocks/blockInput/types.ts +0 -145
- package/src/chain/blocks/blockInput/utils.ts +0 -21
- package/src/chain/blocks/importBlock.ts +0 -597
- package/src/chain/blocks/index.ts +0 -179
- package/src/chain/blocks/types.ts +0 -101
- package/src/chain/blocks/utils/blowfishBanner.ts +0 -28
- package/src/chain/blocks/utils/chainSegment.ts +0 -29
- package/src/chain/blocks/utils/checkpoint.ts +0 -25
- package/src/chain/blocks/utils/giraffeBanner.ts +0 -30
- package/src/chain/blocks/utils/ownBanner.ts +0 -20
- package/src/chain/blocks/utils/pandaMergeTransitionBanner.ts +0 -43
- package/src/chain/blocks/utils/zebraBanner.ts +0 -45
- package/src/chain/blocks/verifyBlock.ts +0 -242
- package/src/chain/blocks/verifyBlocksDataAvailability.ts +0 -42
- package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +0 -438
- package/src/chain/blocks/verifyBlocksSanityChecks.ts +0 -129
- package/src/chain/blocks/verifyBlocksSignatures.ts +0 -105
- package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +0 -114
- package/src/chain/blocks/writeBlockInputToDb.ts +0 -120
- package/src/chain/bls/index.ts +0 -4
- package/src/chain/bls/interface.ts +0 -68
- package/src/chain/bls/maybeBatch.ts +0 -45
- package/src/chain/bls/multithread/index.ts +0 -582
- package/src/chain/bls/multithread/jobItem.ts +0 -119
- package/src/chain/bls/multithread/poolSize.ts +0 -16
- package/src/chain/bls/multithread/types.ts +0 -38
- package/src/chain/bls/multithread/utils.ts +0 -19
- package/src/chain/bls/multithread/worker.ts +0 -114
- package/src/chain/bls/singleThread.ts +0 -87
- package/src/chain/bls/utils.ts +0 -30
- package/src/chain/chain.ts +0 -1354
- package/src/chain/emitter.ts +0 -113
- package/src/chain/errors/attestationError.ts +0 -194
- package/src/chain/errors/attesterSlashingError.ts +0 -11
- package/src/chain/errors/blobSidecarError.ts +0 -60
- package/src/chain/errors/blockError.ts +0 -166
- package/src/chain/errors/blsToExecutionChangeError.ts +0 -13
- package/src/chain/errors/dataColumnSidecarError.ts +0 -80
- package/src/chain/errors/gossipValidation.ts +0 -20
- package/src/chain/errors/index.ts +0 -10
- package/src/chain/errors/lightClientError.ts +0 -30
- package/src/chain/errors/proposerSlashingError.ts +0 -11
- package/src/chain/errors/syncCommitteeError.ts +0 -36
- package/src/chain/errors/voluntaryExitError.ts +0 -13
- package/src/chain/forkChoice/index.ts +0 -112
- package/src/chain/genesis/genesis.ts +0 -190
- package/src/chain/genesis/interface.ts +0 -14
- package/src/chain/index.ts +0 -6
- package/src/chain/initState.ts +0 -221
- package/src/chain/interface.ts +0 -280
- package/src/chain/lightClient/index.ts +0 -764
- package/src/chain/lightClient/proofs.ts +0 -85
- package/src/chain/lightClient/types.ts +0 -33
- package/src/chain/opPools/aggregatedAttestationPool.ts +0 -1063
- package/src/chain/opPools/attestationPool.ts +0 -282
- package/src/chain/opPools/index.ts +0 -5
- package/src/chain/opPools/opPool.ts +0 -462
- package/src/chain/opPools/syncCommitteeMessagePool.ts +0 -169
- package/src/chain/opPools/syncContributionAndProofPool.ts +0 -240
- package/src/chain/opPools/types.ts +0 -35
- package/src/chain/opPools/utils.ts +0 -65
- package/src/chain/options.ts +0 -138
- package/src/chain/prepareNextSlot.ts +0 -277
- package/src/chain/produceBlock/computeNewStateRoot.ts +0 -55
- package/src/chain/produceBlock/index.ts +0 -2
- package/src/chain/produceBlock/produceBlockBody.ts +0 -797
- package/src/chain/produceBlock/validateBlobsAndKzgCommitments.ts +0 -54
- package/src/chain/regen/errors.ts +0 -30
- package/src/chain/regen/index.ts +0 -4
- package/src/chain/regen/interface.ts +0 -93
- package/src/chain/regen/queued.ts +0 -317
- package/src/chain/regen/regen.ts +0 -424
- package/src/chain/reprocess.ts +0 -161
- package/src/chain/rewards/attestationsRewards.ts +0 -196
- package/src/chain/rewards/blockRewards.ts +0 -150
- package/src/chain/rewards/syncCommitteeRewards.ts +0 -58
- package/src/chain/seenCache/index.ts +0 -5
- package/src/chain/seenCache/seenAggregateAndProof.ts +0 -120
- package/src/chain/seenCache/seenAttestationData.ts +0 -145
- package/src/chain/seenCache/seenAttesters.ts +0 -58
- package/src/chain/seenCache/seenBlockAttesters.ts +0 -18
- package/src/chain/seenCache/seenBlockProposers.ts +0 -48
- package/src/chain/seenCache/seenCommittee.ts +0 -43
- package/src/chain/seenCache/seenCommitteeContribution.ts +0 -104
- package/src/chain/seenCache/seenGossipBlockInput.ts +0 -373
- package/src/chain/serializeState.ts +0 -32
- package/src/chain/shufflingCache.ts +0 -238
- package/src/chain/stateCache/blockStateCacheImpl.ts +0 -150
- package/src/chain/stateCache/datastore/db.ts +0 -36
- package/src/chain/stateCache/datastore/file.ts +0 -53
- package/src/chain/stateCache/datastore/index.ts +0 -2
- package/src/chain/stateCache/datastore/types.ts +0 -13
- package/src/chain/stateCache/fifoBlockStateCache.ts +0 -208
- package/src/chain/stateCache/inMemoryCheckpointsCache.ts +0 -198
- package/src/chain/stateCache/index.ts +0 -3
- package/src/chain/stateCache/mapMetrics.ts +0 -52
- package/src/chain/stateCache/persistentCheckpointsCache.ts +0 -837
- package/src/chain/stateCache/types.ts +0 -86
- package/src/chain/validation/aggregateAndProof.ts +0 -258
- package/src/chain/validation/attestation.ts +0 -885
- package/src/chain/validation/attesterSlashing.ts +0 -61
- package/src/chain/validation/blobSidecar.ts +0 -301
- package/src/chain/validation/block.ts +0 -188
- package/src/chain/validation/blsToExecutionChange.ts +0 -61
- package/src/chain/validation/dataColumnSidecar.ts +0 -381
- package/src/chain/validation/index.ts +0 -9
- package/src/chain/validation/lightClientFinalityUpdate.ts +0 -46
- package/src/chain/validation/lightClientOptimisticUpdate.ts +0 -68
- package/src/chain/validation/proposerSlashing.ts +0 -54
- package/src/chain/validation/signatureSets/aggregateAndProof.ts +0 -38
- package/src/chain/validation/signatureSets/contributionAndProof.ts +0 -27
- package/src/chain/validation/signatureSets/index.ts +0 -6
- package/src/chain/validation/signatureSets/selectionProof.ts +0 -27
- package/src/chain/validation/signatureSets/syncCommittee.ts +0 -22
- package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +0 -18
- package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +0 -27
- package/src/chain/validation/syncCommittee.ts +0 -165
- package/src/chain/validation/syncCommitteeContributionAndProof.ts +0 -122
- package/src/chain/validation/voluntaryExit.ts +0 -58
- package/src/chain/validatorMonitor.ts +0 -1309
- package/src/constants/constants.ts +0 -15
- package/src/constants/index.ts +0 -2
- package/src/constants/network.ts +0 -52
- package/src/db/beacon.ts +0 -113
- package/src/db/buckets.ts +0 -80
- package/src/db/index.ts +0 -2
- package/src/db/interface.ts +0 -76
- package/src/db/options.ts +0 -7
- package/src/db/repositories/attesterSlashing.ts +0 -38
- package/src/db/repositories/backfilledRanges.ts +0 -29
- package/src/db/repositories/blobSidecars.ts +0 -37
- package/src/db/repositories/blobSidecarsArchive.ts +0 -28
- package/src/db/repositories/block.ts +0 -33
- package/src/db/repositories/blockArchive.ts +0 -170
- package/src/db/repositories/blockArchiveIndex.ts +0 -45
- package/src/db/repositories/blsToExecutionChange.ts +0 -16
- package/src/db/repositories/checkpointState.ts +0 -31
- package/src/db/repositories/dataColumnSidecar.ts +0 -49
- package/src/db/repositories/dataColumnSidecarArchive.ts +0 -56
- package/src/db/repositories/depositDataRoot.ts +0 -80
- package/src/db/repositories/depositEvent.ts +0 -32
- package/src/db/repositories/eth1Data.ts +0 -33
- package/src/db/repositories/index.ts +0 -20
- package/src/db/repositories/lightclientBestUpdate.ts +0 -41
- package/src/db/repositories/lightclientCheckpointHeader.ts +0 -32
- package/src/db/repositories/lightclientSyncCommittee.ts +0 -16
- package/src/db/repositories/lightclientSyncCommitteeWitness.ts +0 -77
- package/src/db/repositories/proposerSlashing.ts +0 -15
- package/src/db/repositories/stateArchive.ts +0 -69
- package/src/db/repositories/stateArchiveIndex.ts +0 -18
- package/src/db/repositories/voluntaryExit.ts +0 -15
- package/src/db/single/index.ts +0 -2
- package/src/db/single/preGenesisState.ts +0 -37
- package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
- package/src/eth1/errors.ts +0 -40
- package/src/eth1/eth1DataCache.ts +0 -26
- package/src/eth1/eth1DepositDataTracker.ts +0 -410
- package/src/eth1/eth1DepositsCache.ts +0 -141
- package/src/eth1/eth1MergeBlockTracker.ts +0 -328
- package/src/eth1/index.ts +0 -157
- package/src/eth1/interface.ts +0 -131
- package/src/eth1/options.ts +0 -28
- package/src/eth1/provider/eth1Provider.ts +0 -229
- package/src/eth1/provider/jsonRpcHttpClient.ts +0 -390
- package/src/eth1/provider/jwt.ts +0 -36
- package/src/eth1/provider/utils.ts +0 -136
- package/src/eth1/stream.ts +0 -75
- package/src/eth1/utils/depositContract.ts +0 -37
- package/src/eth1/utils/deposits.ts +0 -70
- package/src/eth1/utils/eth1Data.ts +0 -100
- package/src/eth1/utils/eth1DepositEvent.ts +0 -12
- package/src/eth1/utils/eth1Vote.ts +0 -142
- package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
- package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
- package/src/execution/builder/cache.ts +0 -39
- package/src/execution/builder/http.ts +0 -229
- package/src/execution/builder/index.ts +0 -27
- package/src/execution/builder/interface.ts +0 -49
- package/src/execution/builder/utils.ts +0 -19
- package/src/execution/engine/disabled.ts +0 -35
- package/src/execution/engine/http.ts +0 -644
- package/src/execution/engine/index.ts +0 -63
- package/src/execution/engine/interface.ts +0 -199
- package/src/execution/engine/mock.ts +0 -493
- package/src/execution/engine/payloadIdCache.ts +0 -54
- package/src/execution/engine/types.ts +0 -640
- package/src/execution/engine/utils.ts +0 -136
- package/src/execution/index.ts +0 -4
- package/src/index.ts +0 -20
- package/src/metrics/index.ts +0 -4
- package/src/metrics/metrics/beacon.ts +0 -390
- package/src/metrics/metrics/lodestar.ts +0 -1870
- package/src/metrics/metrics.ts +0 -43
- package/src/metrics/nodeJsMetrics.ts +0 -19
- package/src/metrics/options.ts +0 -22
- package/src/metrics/server/http.ts +0 -114
- package/src/metrics/server/index.ts +0 -1
- package/src/metrics/utils/avgMinMax.ts +0 -87
- package/src/metrics/utils/gauge.ts +0 -22
- package/src/metrics/utils/registryMetricCreator.ts +0 -41
- package/src/monitoring/clientStats.ts +0 -297
- package/src/monitoring/index.ts +0 -2
- package/src/monitoring/options.ts +0 -19
- package/src/monitoring/properties.ts +0 -152
- package/src/monitoring/service.ts +0 -235
- package/src/monitoring/system.ts +0 -146
- package/src/monitoring/types.ts +0 -21
- package/src/network/core/events.ts +0 -59
- package/src/network/core/index.ts +0 -3
- package/src/network/core/metrics.ts +0 -304
- package/src/network/core/networkCore.ts +0 -599
- package/src/network/core/networkCoreWorker.ts +0 -176
- package/src/network/core/networkCoreWorkerHandler.ts +0 -284
- package/src/network/core/types.ts +0 -119
- package/src/network/discv5/index.ts +0 -132
- package/src/network/discv5/types.ts +0 -74
- package/src/network/discv5/utils.ts +0 -50
- package/src/network/discv5/worker.ts +0 -137
- package/src/network/events.ts +0 -51
- package/src/network/forks.ts +0 -94
- package/src/network/gossip/constants.ts +0 -15
- package/src/network/gossip/encoding.ts +0 -111
- package/src/network/gossip/errors.ts +0 -7
- package/src/network/gossip/gossipsub.ts +0 -384
- package/src/network/gossip/index.ts +0 -4
- package/src/network/gossip/interface.ts +0 -215
- package/src/network/gossip/metrics.ts +0 -71
- package/src/network/gossip/scoringParameters.ts +0 -333
- package/src/network/gossip/topic.ts +0 -332
- package/src/network/index.ts +0 -8
- package/src/network/interface.ts +0 -134
- package/src/network/libp2p/error.ts +0 -55
- package/src/network/libp2p/index.ts +0 -153
- package/src/network/metadata.ts +0 -162
- package/src/network/network.ts +0 -767
- package/src/network/networkConfig.ts +0 -12
- package/src/network/options.ts +0 -70
- package/src/network/peers/client.ts +0 -29
- package/src/network/peers/datastore.ts +0 -188
- package/src/network/peers/discover.ts +0 -647
- package/src/network/peers/index.ts +0 -2
- package/src/network/peers/peerManager.ts +0 -899
- package/src/network/peers/peersData.ts +0 -65
- package/src/network/peers/score/constants.ts +0 -34
- package/src/network/peers/score/index.ts +0 -4
- package/src/network/peers/score/interface.ts +0 -74
- package/src/network/peers/score/score.ts +0 -200
- package/src/network/peers/score/store.ts +0 -95
- package/src/network/peers/score/utils.ts +0 -37
- package/src/network/peers/utils/assertPeerRelevance.ts +0 -99
- package/src/network/peers/utils/enrSubnetsDeserialize.ts +0 -27
- package/src/network/peers/utils/getConnectedPeerIds.ts +0 -33
- package/src/network/peers/utils/index.ts +0 -4
- package/src/network/peers/utils/prioritizePeers.ts +0 -627
- package/src/network/peers/utils/subnetMap.ts +0 -88
- package/src/network/processor/aggregatorTracker.ts +0 -38
- package/src/network/processor/extractSlotRootFns.ts +0 -64
- package/src/network/processor/gossipHandlers.ts +0 -951
- package/src/network/processor/gossipQueues/index.ts +0 -114
- package/src/network/processor/gossipQueues/indexed.ts +0 -219
- package/src/network/processor/gossipQueues/linear.ts +0 -162
- package/src/network/processor/gossipQueues/types.ts +0 -57
- package/src/network/processor/gossipValidatorFn.ts +0 -142
- package/src/network/processor/index.ts +0 -496
- package/src/network/processor/types.ts +0 -27
- package/src/network/reqresp/ReqRespBeaconNode.ts +0 -373
- package/src/network/reqresp/handlers/beaconBlocksByRange.ts +0 -101
- package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +0 -49
- package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -114
- package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -62
- package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +0 -144
- package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +0 -88
- package/src/network/reqresp/handlers/index.ts +0 -78
- package/src/network/reqresp/handlers/lightClientBootstrap.ts +0 -31
- package/src/network/reqresp/handlers/lightClientFinalityUpdate.ts +0 -21
- package/src/network/reqresp/handlers/lightClientOptimisticUpdate.ts +0 -21
- package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +0 -39
- package/src/network/reqresp/index.ts +0 -2
- package/src/network/reqresp/interface.ts +0 -45
- package/src/network/reqresp/protocols.ts +0 -146
- package/src/network/reqresp/rateLimit.ts +0 -112
- package/src/network/reqresp/score.ts +0 -70
- package/src/network/reqresp/types.ts +0 -174
- package/src/network/reqresp/utils/collect.ts +0 -84
- package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +0 -57
- package/src/network/reqresp/utils/dataColumnResponseValidation.ts +0 -99
- package/src/network/statusCache.ts +0 -17
- package/src/network/subnets/attnetsService.ts +0 -385
- package/src/network/subnets/index.ts +0 -2
- package/src/network/subnets/interface.ts +0 -66
- package/src/network/subnets/syncnetsService.ts +0 -147
- package/src/network/subnets/util.ts +0 -63
- package/src/network/util.ts +0 -29
- package/src/node/index.ts +0 -2
- package/src/node/nodejs.ts +0 -349
- package/src/node/notifier.ts +0 -206
- package/src/node/options.ts +0 -51
- package/src/node/utils/interop/deposits.ts +0 -53
- package/src/node/utils/interop/state.ts +0 -59
- package/src/node/utils/lightclient.ts +0 -7
- package/src/node/utils/state.ts +0 -37
- package/src/sync/backfill/backfill.ts +0 -893
- package/src/sync/backfill/errors.ts +0 -23
- package/src/sync/backfill/index.ts +0 -1
- package/src/sync/backfill/verify.ts +0 -58
- package/src/sync/constants.ts +0 -71
- package/src/sync/index.ts +0 -2
- package/src/sync/interface.ts +0 -55
- package/src/sync/options.ts +0 -45
- package/src/sync/range/batch.ts +0 -455
- package/src/sync/range/chain.ts +0 -715
- package/src/sync/range/range.ts +0 -354
- package/src/sync/range/utils/batches.ts +0 -119
- package/src/sync/range/utils/chainTarget.ts +0 -62
- package/src/sync/range/utils/hashBlocks.ts +0 -27
- package/src/sync/range/utils/index.ts +0 -5
- package/src/sync/range/utils/peerBalancer.ts +0 -184
- package/src/sync/range/utils/updateChains.ts +0 -66
- package/src/sync/sync.ts +0 -290
- package/src/sync/types.ts +0 -57
- package/src/sync/unknownBlock.ts +0 -859
- package/src/sync/utils/downloadByRange.ts +0 -808
- package/src/sync/utils/downloadByRoot.ts +0 -560
- package/src/sync/utils/pendingBlocksTree.ts +0 -97
- package/src/sync/utils/remoteSyncType.ts +0 -144
- package/src/util/address.ts +0 -3
- package/src/util/array.ts +0 -311
- package/src/util/asyncIterableToEvents.ts +0 -164
- package/src/util/binarySearch.ts +0 -48
- package/src/util/bitArray.ts +0 -84
- package/src/util/blobs.ts +0 -210
- package/src/util/bufferPool.ts +0 -95
- package/src/util/bytes.ts +0 -11
- package/src/util/chunkify.ts +0 -27
- package/src/util/clock.ts +0 -212
- package/src/util/dataColumns.ts +0 -415
- package/src/util/dependentRoot.ts +0 -47
- package/src/util/enum.ts +0 -17
- package/src/util/error.ts +0 -56
- package/src/util/eventLoop.ts +0 -22
- package/src/util/execution.ts +0 -223
- package/src/util/file.ts +0 -52
- package/src/util/forkChoice.ts +0 -5
- package/src/util/forkName.ts +0 -20
- package/src/util/graffiti.ts +0 -39
- package/src/util/hex.ts +0 -9
- package/src/util/index.ts +0 -2
- package/src/util/ip.ts +0 -6
- package/src/util/itTrigger.ts +0 -49
- package/src/util/kzg.ts +0 -3
- package/src/util/map.ts +0 -77
- package/src/util/metadata.ts +0 -22
- package/src/util/multifork.ts +0 -69
- package/src/util/numpy.ts +0 -8
- package/src/util/peerId.ts +0 -16
- package/src/util/profile.ts +0 -54
- package/src/util/promises.ts +0 -14
- package/src/util/queue/errors.ts +0 -14
- package/src/util/queue/fnQueue.ts +0 -16
- package/src/util/queue/index.ts +0 -4
- package/src/util/queue/itemQueue.ts +0 -128
- package/src/util/queue/options.ts +0 -37
- package/src/util/serializedCache.ts +0 -20
- package/src/util/set.ts +0 -62
- package/src/util/shuffle.ts +0 -21
- package/src/util/sortBy.ts +0 -19
- package/src/util/sszBytes.ts +0 -481
- package/src/util/strictEvents.ts +0 -8
- package/src/util/time.ts +0 -13
- package/src/util/timeSeries.ts +0 -118
- package/src/util/types.ts +0 -31
- package/src/util/workerEvents.ts +0 -142
- package/src/util/wrapError.ts +0 -27
package/src/util/sszBytes.ts
DELETED
|
@@ -1,481 +0,0 @@
|
|
|
1
|
-
import {BitArray, deserializeUint8ArrayBitListFromBytes} from "@chainsafe/ssz";
|
|
2
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
3
|
-
import {
|
|
4
|
-
BYTES_PER_FIELD_ELEMENT,
|
|
5
|
-
FIELD_ELEMENTS_PER_BLOB,
|
|
6
|
-
ForkName,
|
|
7
|
-
ForkPostDeneb,
|
|
8
|
-
ForkSeq,
|
|
9
|
-
MAX_COMMITTEES_PER_SLOT,
|
|
10
|
-
isForkPostElectra,
|
|
11
|
-
} from "@lodestar/params";
|
|
12
|
-
import {BLSSignature, CommitteeIndex, RootHex, Slot, ValidatorIndex, ssz} from "@lodestar/types";
|
|
13
|
-
|
|
14
|
-
export type BlockRootHex = RootHex;
|
|
15
|
-
// pre-electra, AttestationData is used to cache attestations
|
|
16
|
-
export type AttDataBase64 = string;
|
|
17
|
-
// electra, CommitteeBits
|
|
18
|
-
export type CommitteeBitsBase64 = string;
|
|
19
|
-
|
|
20
|
-
// pre-electra
|
|
21
|
-
// class Attestation(Container):
|
|
22
|
-
// aggregation_bits: Bitlist[MAX_VALIDATORS_PER_COMMITTEE] - offset 4
|
|
23
|
-
// data: AttestationData - target data - 128
|
|
24
|
-
// signature: BLSSignature - 96
|
|
25
|
-
|
|
26
|
-
// electra
|
|
27
|
-
// class Attestation(Container):
|
|
28
|
-
// aggregation_bits: BitList[MAX_VALIDATORS_PER_COMMITTEE * MAX_COMMITTEES_PER_SLOT] - offset 4
|
|
29
|
-
// data: AttestationData - target data - 128
|
|
30
|
-
// signature: BLSSignature - 96
|
|
31
|
-
// committee_bits: BitVector[MAX_COMMITTEES_PER_SLOT]
|
|
32
|
-
// electra
|
|
33
|
-
// class SingleAttestation(Container):
|
|
34
|
-
// committeeIndex: CommitteeIndex - data 8
|
|
35
|
-
// attesterIndex: ValidatorIndex - data 8
|
|
36
|
-
// data: AttestationData - data 128
|
|
37
|
-
// signature: BLSSignature - data 96
|
|
38
|
-
//
|
|
39
|
-
// for all forks
|
|
40
|
-
// class AttestationData(Container): 128 bytes fixed size
|
|
41
|
-
// slot: Slot - data 8
|
|
42
|
-
// index: CommitteeIndex - data 8
|
|
43
|
-
// beacon_block_root: Root - data 32
|
|
44
|
-
// source: Checkpoint - data 40
|
|
45
|
-
// target: Checkpoint - data 40
|
|
46
|
-
|
|
47
|
-
const VARIABLE_FIELD_OFFSET = 4;
|
|
48
|
-
const ATTESTATION_BEACON_BLOCK_ROOT_OFFSET = VARIABLE_FIELD_OFFSET + 8 + 8;
|
|
49
|
-
export const ROOT_SIZE = 32;
|
|
50
|
-
const SLOT_SIZE = 8;
|
|
51
|
-
const COMMITTEE_INDEX_SIZE = 8;
|
|
52
|
-
const ATTESTATION_DATA_SIZE = 128;
|
|
53
|
-
// MAX_COMMITTEES_PER_SLOT is in bit, need to convert to byte
|
|
54
|
-
const COMMITTEE_BITS_SIZE = Math.max(Math.ceil(MAX_COMMITTEES_PER_SLOT / 8), 1);
|
|
55
|
-
const SIGNATURE_SIZE = 96;
|
|
56
|
-
const SINGLE_ATTESTATION_ATTDATA_OFFSET = 8 + 8;
|
|
57
|
-
const SINGLE_ATTESTATION_SLOT_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET;
|
|
58
|
-
const SINGLE_ATTESTATION_COMMITTEE_INDEX_OFFSET = 0;
|
|
59
|
-
const SINGLE_ATTESTATION_ATTESTER_INDEX_OFFSET = 8;
|
|
60
|
-
const SINGLE_ATTESTATION_BEACON_BLOCK_ROOT_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET + 8 + 8;
|
|
61
|
-
const SINGLE_ATTESTATION_SIGNATURE_OFFSET = SINGLE_ATTESTATION_ATTDATA_OFFSET + ATTESTATION_DATA_SIZE;
|
|
62
|
-
const SINGLE_ATTESTATION_SIZE = SINGLE_ATTESTATION_SIGNATURE_OFFSET + SIGNATURE_SIZE;
|
|
63
|
-
|
|
64
|
-
// shared Buffers to convert bytes to hex/base64
|
|
65
|
-
const blockRootBuf = Buffer.alloc(ROOT_SIZE);
|
|
66
|
-
const attDataBuf = Buffer.alloc(ATTESTATION_DATA_SIZE);
|
|
67
|
-
const committeeBitsDataBuf = Buffer.alloc(COMMITTEE_BITS_SIZE);
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Extract slot from attestation serialized bytes.
|
|
71
|
-
* Return null if data is not long enough to extract slot.
|
|
72
|
-
*/
|
|
73
|
-
export function getSlotFromAttestationSerialized(data: Uint8Array): Slot | null {
|
|
74
|
-
if (data.length < VARIABLE_FIELD_OFFSET + SLOT_SIZE) {
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return getSlotFromOffset(data, VARIABLE_FIELD_OFFSET);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Extract block root from attestation serialized bytes.
|
|
83
|
-
* Return null if data is not long enough to extract block root.
|
|
84
|
-
*/
|
|
85
|
-
export function getBlockRootFromAttestationSerialized(data: Uint8Array): BlockRootHex | null {
|
|
86
|
-
if (data.length < ATTESTATION_BEACON_BLOCK_ROOT_OFFSET + ROOT_SIZE) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
blockRootBuf.set(
|
|
91
|
-
data.subarray(ATTESTATION_BEACON_BLOCK_ROOT_OFFSET, ATTESTATION_BEACON_BLOCK_ROOT_OFFSET + ROOT_SIZE)
|
|
92
|
-
);
|
|
93
|
-
return "0x" + blockRootBuf.toString("hex");
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Extract attestation data base64 from all forks' attestation serialized bytes.
|
|
98
|
-
* Return null if data is not long enough to extract attestation data.
|
|
99
|
-
*/
|
|
100
|
-
export function getAttDataFromAttestationSerialized(data: Uint8Array): AttDataBase64 | null {
|
|
101
|
-
if (data.length < VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE) {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// base64 is a bit efficient than hex
|
|
106
|
-
attDataBuf.set(data.subarray(VARIABLE_FIELD_OFFSET, VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE));
|
|
107
|
-
return attDataBuf.toString("base64");
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Extract AttDataBase64 from `beacon_attestation` gossip message serialized bytes.
|
|
112
|
-
* This is used for GossipQueue.
|
|
113
|
-
*/
|
|
114
|
-
export function getBeaconAttestationGossipIndex(fork: ForkName, data: Uint8Array): AttDataBase64 | null {
|
|
115
|
-
return ForkSeq[fork] >= ForkSeq.electra
|
|
116
|
-
? getAttDataFromSingleAttestationSerialized(data)
|
|
117
|
-
: getAttDataFromAttestationSerialized(data);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Extract slot from `beacon_attestation` gossip message serialized bytes.
|
|
122
|
-
*/
|
|
123
|
-
export function getSlotFromBeaconAttestationSerialized(fork: ForkName, data: Uint8Array): Slot | null {
|
|
124
|
-
return ForkSeq[fork] >= ForkSeq.electra
|
|
125
|
-
? getSlotFromSingleAttestationSerialized(data)
|
|
126
|
-
: getSlotFromAttestationSerialized(data);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Extract block root from `beacon_attestation` gossip message serialized bytes.
|
|
131
|
-
*/
|
|
132
|
-
export function getBlockRootFromBeaconAttestationSerialized(fork: ForkName, data: Uint8Array): BlockRootHex | null {
|
|
133
|
-
return ForkSeq[fork] >= ForkSeq.electra
|
|
134
|
-
? getBlockRootFromSingleAttestationSerialized(data)
|
|
135
|
-
: getBlockRootFromAttestationSerialized(data);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Extract aggregation bits from attestation serialized bytes.
|
|
140
|
-
* Return null if data is not long enough to extract aggregation bits.
|
|
141
|
-
* Pre-electra attestation only
|
|
142
|
-
*/
|
|
143
|
-
export function getAggregationBitsFromAttestationSerialized(data: Uint8Array): BitArray | null {
|
|
144
|
-
const aggregationBitsStartIndex = VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE;
|
|
145
|
-
|
|
146
|
-
if (data.length < aggregationBitsStartIndex) {
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
const {uint8Array, bitLen} = deserializeUint8ArrayBitListFromBytes(data, aggregationBitsStartIndex, data.length);
|
|
151
|
-
return new BitArray(uint8Array, bitLen);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Extract signature from attestation serialized bytes.
|
|
156
|
-
* Return null if data is not long enough to extract signature.
|
|
157
|
-
*/
|
|
158
|
-
export function getSignatureFromAttestationSerialized(data: Uint8Array): BLSSignature | null {
|
|
159
|
-
const signatureStartIndex = VARIABLE_FIELD_OFFSET + ATTESTATION_DATA_SIZE;
|
|
160
|
-
|
|
161
|
-
if (data.length < signatureStartIndex + SIGNATURE_SIZE) {
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
return data.subarray(signatureStartIndex, signatureStartIndex + SIGNATURE_SIZE);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Extract slot from SingleAttestation serialized bytes.
|
|
170
|
-
* Return null if data is not long enough to extract slot.
|
|
171
|
-
*/
|
|
172
|
-
export function getSlotFromSingleAttestationSerialized(data: Uint8Array): Slot | null {
|
|
173
|
-
if (data.length !== SINGLE_ATTESTATION_SIZE) {
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return getSlotFromOffset(data, SINGLE_ATTESTATION_SLOT_OFFSET);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Extract committee index from SingleAttestation serialized bytes.
|
|
182
|
-
* Return null if data is not long enough to extract slot.
|
|
183
|
-
*/
|
|
184
|
-
export function getCommitteeIndexFromSingleAttestationSerialized(
|
|
185
|
-
fork: ForkName,
|
|
186
|
-
data: Uint8Array
|
|
187
|
-
): CommitteeIndex | null {
|
|
188
|
-
if (isForkPostElectra(fork)) {
|
|
189
|
-
if (data.length !== SINGLE_ATTESTATION_SIZE) {
|
|
190
|
-
return null;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
return getIndexFromOffset(data, SINGLE_ATTESTATION_COMMITTEE_INDEX_OFFSET);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
if (data.length < VARIABLE_FIELD_OFFSET + SLOT_SIZE + COMMITTEE_INDEX_SIZE) {
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return getIndexFromOffset(data, VARIABLE_FIELD_OFFSET + SLOT_SIZE);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Extract attester index from SingleAttestation serialized bytes.
|
|
205
|
-
* Return null if data is not long enough to extract index.
|
|
206
|
-
*/
|
|
207
|
-
export function getAttesterIndexFromSingleAttestationSerialized(data: Uint8Array): ValidatorIndex | null {
|
|
208
|
-
if (data.length !== SINGLE_ATTESTATION_SIZE) {
|
|
209
|
-
return null;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
return getIndexFromOffset(data, SINGLE_ATTESTATION_ATTESTER_INDEX_OFFSET);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Extract block root from SingleAttestation serialized bytes.
|
|
217
|
-
* Return null if data is not long enough to extract block root.
|
|
218
|
-
*/
|
|
219
|
-
export function getBlockRootFromSingleAttestationSerialized(data: Uint8Array): BlockRootHex | null {
|
|
220
|
-
if (data.length !== SINGLE_ATTESTATION_SIZE) {
|
|
221
|
-
return null;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
blockRootBuf.set(
|
|
225
|
-
data.subarray(SINGLE_ATTESTATION_BEACON_BLOCK_ROOT_OFFSET, SINGLE_ATTESTATION_BEACON_BLOCK_ROOT_OFFSET + ROOT_SIZE)
|
|
226
|
-
);
|
|
227
|
-
return `0x${blockRootBuf.toString("hex")}`;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Extract attestation data base64 from SingleAttestation serialized bytes.
|
|
232
|
-
* Return null if data is not long enough to extract attestation data.
|
|
233
|
-
*/
|
|
234
|
-
export function getAttDataFromSingleAttestationSerialized(data: Uint8Array): AttDataBase64 | null {
|
|
235
|
-
if (data.length !== SINGLE_ATTESTATION_SIZE) {
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// base64 is a bit efficient than hex
|
|
240
|
-
attDataBuf.set(
|
|
241
|
-
data.subarray(SINGLE_ATTESTATION_ATTDATA_OFFSET, SINGLE_ATTESTATION_ATTDATA_OFFSET + ATTESTATION_DATA_SIZE)
|
|
242
|
-
);
|
|
243
|
-
return attDataBuf.toString("base64");
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Extract signature from SingleAttestation serialized bytes.
|
|
248
|
-
* Return null if data is not long enough to extract signature.
|
|
249
|
-
*/
|
|
250
|
-
export function getSignatureFromSingleAttestationSerialized(data: Uint8Array): BLSSignature | null {
|
|
251
|
-
if (data.length !== SINGLE_ATTESTATION_SIZE) {
|
|
252
|
-
return null;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
return data.subarray(SINGLE_ATTESTATION_SIGNATURE_OFFSET, SINGLE_ATTESTATION_SIGNATURE_OFFSET + SIGNATURE_SIZE);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
//
|
|
259
|
-
// class SignedAggregateAndProof(Container):
|
|
260
|
-
// message: AggregateAndProof - offset 4
|
|
261
|
-
// signature: BLSSignature - data 96
|
|
262
|
-
|
|
263
|
-
// class AggregateAndProof(Container)
|
|
264
|
-
// aggregatorIndex: ValidatorIndex - data 8
|
|
265
|
-
// aggregate: Attestation - offset 4
|
|
266
|
-
// selectionProof: BLSSignature - data 96
|
|
267
|
-
|
|
268
|
-
const AGGREGATE_AND_PROOF_OFFSET = 4 + 96;
|
|
269
|
-
const AGGREGATE_OFFSET = AGGREGATE_AND_PROOF_OFFSET + 8 + 4 + 96;
|
|
270
|
-
const SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET = AGGREGATE_OFFSET + VARIABLE_FIELD_OFFSET;
|
|
271
|
-
const SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + 8 + 8;
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Extract slot from signed aggregate and proof serialized bytes
|
|
275
|
-
* Return null if data is not long enough to extract slot
|
|
276
|
-
* This works for both phase + electra
|
|
277
|
-
*/
|
|
278
|
-
export function getSlotFromSignedAggregateAndProofSerialized(data: Uint8Array): Slot | null {
|
|
279
|
-
if (data.length < SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + SLOT_SIZE) {
|
|
280
|
-
return null;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
return getSlotFromOffset(data, SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET);
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* Extract block root from signed aggregate and proof serialized bytes
|
|
288
|
-
* Return null if data is not long enough to extract block root
|
|
289
|
-
* This works for both phase + electra
|
|
290
|
-
*/
|
|
291
|
-
export function getBlockRootFromSignedAggregateAndProofSerialized(data: Uint8Array): BlockRootHex | null {
|
|
292
|
-
if (data.length < SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET + ROOT_SIZE) {
|
|
293
|
-
return null;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
blockRootBuf.set(
|
|
297
|
-
data.subarray(
|
|
298
|
-
SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET,
|
|
299
|
-
SIGNED_AGGREGATE_AND_PROOF_BLOCK_ROOT_OFFSET + ROOT_SIZE
|
|
300
|
-
)
|
|
301
|
-
);
|
|
302
|
-
return "0x" + blockRootBuf.toString("hex");
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Extract AttestationData base64 from SignedAggregateAndProof for electra
|
|
307
|
-
* Return null if data is not long enough
|
|
308
|
-
*/
|
|
309
|
-
export function getAttDataFromSignedAggregateAndProofElectra(data: Uint8Array): AttDataBase64 | null {
|
|
310
|
-
const startIndex = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET;
|
|
311
|
-
const endIndex = startIndex + ATTESTATION_DATA_SIZE;
|
|
312
|
-
|
|
313
|
-
if (data.length < endIndex + SIGNATURE_SIZE + COMMITTEE_BITS_SIZE) {
|
|
314
|
-
return null;
|
|
315
|
-
}
|
|
316
|
-
attDataBuf.set(data.subarray(startIndex, endIndex));
|
|
317
|
-
return attDataBuf.toString("base64");
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
/**
|
|
321
|
-
* Extract CommitteeBits base64 from SignedAggregateAndProof for electra
|
|
322
|
-
* Return null if data is not long enough
|
|
323
|
-
*/
|
|
324
|
-
export function getCommitteeBitsFromSignedAggregateAndProofElectra(data: Uint8Array): CommitteeBitsBase64 | null {
|
|
325
|
-
const startIndex = SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + ATTESTATION_DATA_SIZE + SIGNATURE_SIZE;
|
|
326
|
-
const endIndex = startIndex + COMMITTEE_BITS_SIZE;
|
|
327
|
-
|
|
328
|
-
if (data.length < endIndex) {
|
|
329
|
-
return null;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
committeeBitsDataBuf.set(data.subarray(startIndex, endIndex));
|
|
333
|
-
return committeeBitsDataBuf.toString("base64");
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Extract attestation data base64 from signed aggregate and proof serialized bytes.
|
|
338
|
-
* Return null if data is not long enough to extract attestation data.
|
|
339
|
-
*/
|
|
340
|
-
export function getAttDataFromSignedAggregateAndProofPhase0(data: Uint8Array): AttDataBase64 | null {
|
|
341
|
-
if (data.length < SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + ATTESTATION_DATA_SIZE) {
|
|
342
|
-
return null;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
// base64 is a bit efficient than hex
|
|
346
|
-
attDataBuf.set(
|
|
347
|
-
data.subarray(
|
|
348
|
-
SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET,
|
|
349
|
-
SIGNED_AGGREGATE_AND_PROOF_SLOT_OFFSET + ATTESTATION_DATA_SIZE
|
|
350
|
-
)
|
|
351
|
-
);
|
|
352
|
-
return attDataBuf.toString("base64");
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
/**
|
|
356
|
-
* 4 + 96 = 100
|
|
357
|
-
* ```
|
|
358
|
-
* class SignedBeaconBlock(Container):
|
|
359
|
-
* message: BeaconBlock [offset - 4 bytes]
|
|
360
|
-
* signature: BLSSignature [fixed - 96 bytes]
|
|
361
|
-
*
|
|
362
|
-
* class BeaconBlock(Container):
|
|
363
|
-
* slot: Slot [fixed - 8 bytes]
|
|
364
|
-
* proposer_index: ValidatorIndex
|
|
365
|
-
* parent_root: Root
|
|
366
|
-
* state_root: Root
|
|
367
|
-
* body: BeaconBlockBody
|
|
368
|
-
* ```
|
|
369
|
-
*/
|
|
370
|
-
const SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK = VARIABLE_FIELD_OFFSET + SIGNATURE_SIZE;
|
|
371
|
-
|
|
372
|
-
export function getSlotFromSignedBeaconBlockSerialized(data: Uint8Array): Slot | null {
|
|
373
|
-
if (data.length < SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK + SLOT_SIZE) {
|
|
374
|
-
return null;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_SIGNED_BEACON_BLOCK);
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* class BlobSidecar(Container):
|
|
382
|
-
* index: BlobIndex [fixed - 8 bytes ],
|
|
383
|
-
* blob: Blob, BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_BLOB
|
|
384
|
-
* kzgCommitment: Bytes48,
|
|
385
|
-
* kzgProof: Bytes48,
|
|
386
|
-
* signedBlockHeader:
|
|
387
|
-
* slot: 8 bytes
|
|
388
|
-
*/
|
|
389
|
-
|
|
390
|
-
const SLOT_BYTES_POSITION_IN_SIGNED_BLOB_SIDECAR = 8 + BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_BLOB + 48 + 48;
|
|
391
|
-
|
|
392
|
-
export function getSlotFromBlobSidecarSerialized(data: Uint8Array): Slot | null {
|
|
393
|
-
if (data.length < SLOT_BYTES_POSITION_IN_SIGNED_BLOB_SIDECAR + SLOT_SIZE) {
|
|
394
|
-
return null;
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_SIGNED_BLOB_SIDECAR);
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
/**
|
|
401
|
-
* {
|
|
402
|
-
index: ColumnIndex [ fixed - 8 bytes],
|
|
403
|
-
column: DataColumn BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_CELL * <some non fixed length>,
|
|
404
|
-
kzgCommitments: denebSsz.BlobKzgCommitments,
|
|
405
|
-
kzgProofs: denebSsz.KZGProofs,
|
|
406
|
-
signedBlockHeader: phase0Ssz.SignedBeaconBlockHeader,
|
|
407
|
-
kzgCommitmentsInclusionProof: KzgCommitmentsInclusionProof,
|
|
408
|
-
}
|
|
409
|
-
*/
|
|
410
|
-
|
|
411
|
-
const SLOT_BYTES_POSITION_IN_SIGNED_DATA_COLUMN_SIDECAR = 20;
|
|
412
|
-
export function getSlotFromDataColumnSidecarSerialized(data: Uint8Array): Slot | null {
|
|
413
|
-
if (data.length < SLOT_BYTES_POSITION_IN_SIGNED_DATA_COLUMN_SIDECAR + SLOT_SIZE) {
|
|
414
|
-
return null;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_SIGNED_DATA_COLUMN_SIDECAR);
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
/**
|
|
421
|
-
* Read only the first 4 bytes of Slot, max value is 4,294,967,295 will be reached 1634 years after genesis
|
|
422
|
-
*
|
|
423
|
-
* If the high bytes are not zero, return null
|
|
424
|
-
*/
|
|
425
|
-
function getSlotFromOffset(data: Uint8Array, offset: number): Slot | null {
|
|
426
|
-
return checkSlotHighBytes(data, offset) ? getSlotFromOffsetTrusted(data, offset) : null;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
/**
|
|
430
|
-
* Alias of `getSlotFromOffset` for readability
|
|
431
|
-
*/
|
|
432
|
-
function getIndexFromOffset(data: Uint8Array, offset: number): (ValidatorIndex | CommitteeIndex) | null {
|
|
433
|
-
return getSlotFromOffset(data, offset);
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
/**
|
|
437
|
-
* Read only the first 4 bytes of Slot, max value is 4,294,967,295 will be reached 1634 years after genesis
|
|
438
|
-
*/
|
|
439
|
-
function getSlotFromOffsetTrusted(data: Uint8Array, offset: number): Slot {
|
|
440
|
-
return (data[offset] | (data[offset + 1] << 8) | (data[offset + 2] << 16) | (data[offset + 3] << 24)) >>> 0;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
function checkSlotHighBytes(data: Uint8Array, offset: number): boolean {
|
|
444
|
-
return (data[offset + 4] | data[offset + 5] | data[offset + 6] | data[offset + 7]) === 0;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
export function getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(
|
|
448
|
-
config: ChainForkConfig,
|
|
449
|
-
blockBytes: Uint8Array
|
|
450
|
-
): number {
|
|
451
|
-
const slot = getSlotFromSignedBeaconBlockSerialized(blockBytes);
|
|
452
|
-
if (!slot) throw new Error("Can not parse the slot from block bytes");
|
|
453
|
-
|
|
454
|
-
if (config.getForkSeq(slot) < ForkSeq.deneb) return 0;
|
|
455
|
-
|
|
456
|
-
const {SignedBeaconBlock, BeaconBlock, BeaconBlockBody, KZGCommitment} =
|
|
457
|
-
ssz[config.getForkName(slot) as ForkPostDeneb];
|
|
458
|
-
|
|
459
|
-
const view = new DataView(blockBytes.buffer, blockBytes.byteOffset, blockBytes.byteLength);
|
|
460
|
-
const singedBlockFieldRanges = SignedBeaconBlock.getFieldRanges(view, 0, blockBytes.length);
|
|
461
|
-
const messageIndex = Object.keys(SignedBeaconBlock.fields).indexOf("message");
|
|
462
|
-
const messageRange = singedBlockFieldRanges[messageIndex];
|
|
463
|
-
|
|
464
|
-
const blockFieldRanges = BeaconBlock.getFieldRanges(view, messageRange.start, messageRange.end);
|
|
465
|
-
const bodyIndex = Object.keys(BeaconBlock.fields).indexOf("body");
|
|
466
|
-
const bodyRange = blockFieldRanges[bodyIndex];
|
|
467
|
-
|
|
468
|
-
const bodyFieldRanges = BeaconBlockBody.getFieldRanges(
|
|
469
|
-
view,
|
|
470
|
-
messageRange.start + bodyRange.start,
|
|
471
|
-
messageRange.end + bodyRange.end
|
|
472
|
-
);
|
|
473
|
-
const kzgCommitmentsIndex = Object.keys(BeaconBlockBody.fields).indexOf("blobKzgCommitments");
|
|
474
|
-
const kzgCommitmentsRange = bodyFieldRanges[kzgCommitmentsIndex];
|
|
475
|
-
const commitmentSize = KZGCommitment.fixedSize;
|
|
476
|
-
|
|
477
|
-
const end = messageRange.end + bodyRange.end + kzgCommitmentsRange.end;
|
|
478
|
-
const start = messageRange.start + bodyRange.start + kzgCommitmentsRange.start;
|
|
479
|
-
|
|
480
|
-
return Math.round(((end > blockBytes.byteLength ? blockBytes.byteLength : end) - start) / commitmentSize);
|
|
481
|
-
}
|
package/src/util/strictEvents.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Simplified version of `strict-event-emitter-types` where each event only emits one argument
|
|
3
|
-
*/
|
|
4
|
-
export type StrictEventEmitterSingleArg<EventData> = {
|
|
5
|
-
on<K extends keyof EventData>(event: K, listener: (data: EventData[K]) => void): void;
|
|
6
|
-
off<K extends keyof EventData>(event: K, listener: (data: EventData[K]) => void): void;
|
|
7
|
-
emit<K extends keyof EventData>(event: K, data: EventData[K]): void;
|
|
8
|
-
};
|
package/src/util/time.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Render a time difference in human readable form
|
|
3
|
-
*/
|
|
4
|
-
export function prettyTimeDiffSec(secDiff: number): string {
|
|
5
|
-
const minDiff = secDiff / 60;
|
|
6
|
-
const hourDiff = minDiff / 60;
|
|
7
|
-
const daysDiff = hourDiff / 24;
|
|
8
|
-
|
|
9
|
-
if (daysDiff > 1) return `${+daysDiff.toPrecision(2)} days`;
|
|
10
|
-
if (hourDiff > 1) return `${+hourDiff.toPrecision(2)} hours`;
|
|
11
|
-
if (minDiff > 1) return `${+minDiff.toPrecision(2)} minutes`;
|
|
12
|
-
return `${+secDiff.toPrecision(2)} seconds`;
|
|
13
|
-
}
|
package/src/util/timeSeries.ts
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
type Point = [number, number]; // [x, y] or here [time, value]
|
|
2
|
-
|
|
3
|
-
export class TimeSeries {
|
|
4
|
-
private points: Point[] = [];
|
|
5
|
-
private startTimeSec: number;
|
|
6
|
-
private maxPoints: number;
|
|
7
|
-
|
|
8
|
-
constructor(opts?: {maxPoints?: number}) {
|
|
9
|
-
this.maxPoints = opts?.maxPoints ?? 1000;
|
|
10
|
-
this.startTimeSec = Date.now() / 1000;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/** Add TimeSeries entry for value at current time */
|
|
14
|
-
addPoint(value: number, timeSec = Math.floor(Date.now() / 1000)): void {
|
|
15
|
-
// Substract initial time so x values are not big and cause rounding errors
|
|
16
|
-
const time = timeSec - this.startTimeSec;
|
|
17
|
-
this.points.push([time, value]);
|
|
18
|
-
|
|
19
|
-
// Limit length by removing old entries
|
|
20
|
-
while (this.points.length > this.maxPoints) {
|
|
21
|
-
this.points.shift();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** Compute the slope of all registered points assuming linear regression */
|
|
26
|
-
computeLinearSpeed(): number {
|
|
27
|
-
return linearRegression(this.points).m;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Compute x point at which y = 0.
|
|
32
|
-
* From eq `y = b + m*x` then solve for `0 = b + m*x`
|
|
33
|
-
*/
|
|
34
|
-
computeY0Point(): number {
|
|
35
|
-
const {m, b} = linearRegression(this.points);
|
|
36
|
-
// The X cordinate system has been shifted left by startTimeSec, so return the
|
|
37
|
-
// projection in original coordinated system
|
|
38
|
-
return -b / m + this.startTimeSec;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/** Remove all entries */
|
|
42
|
-
clear(): void {
|
|
43
|
-
this.points = [];
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
numPoints(): number {
|
|
47
|
-
return this.points.length;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* From https://github.com/simple-statistics/simple-statistics/blob/d0d177baf74976a2421638bce98ab028c5afb537/src/linear_regression.js
|
|
53
|
-
*
|
|
54
|
-
* [Simple linear regression](http://en.wikipedia.org/wiki/Simple_linear_regression)
|
|
55
|
-
* is a simple way to find a fitted line between a set of coordinates.
|
|
56
|
-
* This algorithm finds the slope and y-intercept of a regression line
|
|
57
|
-
* using the least sum of squares.
|
|
58
|
-
*
|
|
59
|
-
* @param data an array of two-element of arrays,
|
|
60
|
-
* like `[[0, 1], [2, 3]]`
|
|
61
|
-
* @returns object containing slope and intersect of regression line
|
|
62
|
-
* @example
|
|
63
|
-
* linearRegression([[0, 0], [1, 1]]); // => { m: 1, b: 0 }
|
|
64
|
-
*/
|
|
65
|
-
function linearRegression(data: Point[]): {m: number; b: number} {
|
|
66
|
-
let m: number, b: number;
|
|
67
|
-
|
|
68
|
-
// Store data length in a local variable to reduce
|
|
69
|
-
// repeated object property lookups
|
|
70
|
-
const dataLength = data.length;
|
|
71
|
-
|
|
72
|
-
//if there's only one point, arbitrarily choose a slope of 0
|
|
73
|
-
//and a y-intercept of whatever the y of the initial point is
|
|
74
|
-
if (dataLength === 1) {
|
|
75
|
-
m = 0;
|
|
76
|
-
b = data[0][1];
|
|
77
|
-
} else {
|
|
78
|
-
// Initialize our sums and scope the `m` and `b`
|
|
79
|
-
// variables that define the line.
|
|
80
|
-
let sumX = 0,
|
|
81
|
-
sumY = 0,
|
|
82
|
-
sumXX = 0,
|
|
83
|
-
sumXY = 0;
|
|
84
|
-
|
|
85
|
-
// Use local variables to grab point values
|
|
86
|
-
// with minimal object property lookups
|
|
87
|
-
let point: Point, x: number, y: number;
|
|
88
|
-
|
|
89
|
-
// Gather the sum of all x values, the sum of all
|
|
90
|
-
// y values, and the sum of x^2 and (x*y) for each
|
|
91
|
-
// value.
|
|
92
|
-
//
|
|
93
|
-
// In math notation, these would be SS_x, SS_y, SS_xx, and SS_xy
|
|
94
|
-
for (let i = 0; i < dataLength; i++) {
|
|
95
|
-
point = data[i];
|
|
96
|
-
x = point[0];
|
|
97
|
-
y = point[1];
|
|
98
|
-
|
|
99
|
-
sumX += x;
|
|
100
|
-
sumY += y;
|
|
101
|
-
|
|
102
|
-
sumXX += x * x;
|
|
103
|
-
sumXY += x * y;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// `m` is the slope of the regression line
|
|
107
|
-
m = (dataLength * sumXY - sumX * sumY) / (dataLength * sumXX - sumX * sumX);
|
|
108
|
-
|
|
109
|
-
// `b` is the y-intercept of the line.
|
|
110
|
-
b = sumY / dataLength - (m * sumX) / dataLength;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Return both values as an object.
|
|
114
|
-
return {
|
|
115
|
-
m: m,
|
|
116
|
-
b: b,
|
|
117
|
-
};
|
|
118
|
-
}
|
package/src/util/types.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import {ContainerType, ListCompositeType, ValueOf} from "@chainsafe/ssz";
|
|
2
|
-
import {BeaconConfig} from "@lodestar/config";
|
|
3
|
-
import {ForkName, isForkPostDeneb, isForkPostElectra} from "@lodestar/params";
|
|
4
|
-
import {ssz} from "@lodestar/types";
|
|
5
|
-
|
|
6
|
-
// Misc SSZ types used only in the beacon-node package, no need to upstream to types
|
|
7
|
-
|
|
8
|
-
export const signedBLSToExecutionChangeVersionedType = new ContainerType(
|
|
9
|
-
{
|
|
10
|
-
// Assumes less than 256 forks, sounds reasonable in our lifetime
|
|
11
|
-
preCapella: ssz.Boolean,
|
|
12
|
-
data: ssz.capella.SignedBLSToExecutionChange,
|
|
13
|
-
},
|
|
14
|
-
{jsonCase: "eth2", typeName: "SignedBLSToExecutionChangeVersionedType"}
|
|
15
|
-
);
|
|
16
|
-
export type SignedBLSToExecutionChangeVersioned = ValueOf<typeof signedBLSToExecutionChangeVersionedType>;
|
|
17
|
-
|
|
18
|
-
export const BeaconBlocksByRootRequestType = (fork: ForkName, config: BeaconConfig) =>
|
|
19
|
-
new ListCompositeType(ssz.Root, isForkPostDeneb(fork) ? config.MAX_REQUEST_BLOCKS_DENEB : config.MAX_REQUEST_BLOCKS);
|
|
20
|
-
export type BeaconBlocksByRootRequest = ValueOf<ReturnType<typeof BeaconBlocksByRootRequestType>>;
|
|
21
|
-
|
|
22
|
-
export const BlobSidecarsByRootRequestType = (fork: ForkName, config: BeaconConfig) =>
|
|
23
|
-
new ListCompositeType(
|
|
24
|
-
ssz.deneb.BlobIdentifier,
|
|
25
|
-
isForkPostElectra(fork) ? config.MAX_REQUEST_BLOB_SIDECARS_ELECTRA : config.MAX_REQUEST_BLOB_SIDECARS
|
|
26
|
-
);
|
|
27
|
-
export type BlobSidecarsByRootRequest = ValueOf<ReturnType<typeof BlobSidecarsByRootRequestType>>;
|
|
28
|
-
|
|
29
|
-
export const DataColumnSidecarsByRootRequestType = (config: BeaconConfig) =>
|
|
30
|
-
new ListCompositeType(ssz.fulu.DataColumnsByRootIdentifier, config.MAX_REQUEST_BLOCKS_DENEB);
|
|
31
|
-
export type DataColumnSidecarsByRootRequest = ValueOf<ReturnType<typeof DataColumnSidecarsByRootRequestType>>;
|