@lodestar/beacon-node 1.34.0-dev.27285cdee9 → 1.34.0-dev.2f71baeaa0
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 +55 -42
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +5 -5
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.js +24 -17
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/debug/index.js +4 -4
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/events/index.js +1 -1
- package/lib/api/impl/events/index.js.map +1 -1
- package/lib/api/impl/validator/index.js +66 -49
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/impl/validator/utils.d.ts +3 -3
- package/lib/api/impl/validator/utils.js +2 -2
- package/lib/api/impl/validator/utils.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +26 -24
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/blocks/utils/blowfishBanner.js +1 -0
- package/lib/chain/blocks/utils/blowfishBanner.js.map +1 -1
- package/lib/chain/blocks/utils/giraffeBanner.js +1 -0
- package/lib/chain/blocks/utils/giraffeBanner.js.map +1 -1
- package/lib/chain/blocks/utils/zebraBanner.d.ts +2 -0
- package/lib/chain/blocks/utils/zebraBanner.js +46 -0
- package/lib/chain/blocks/utils/zebraBanner.js.map +1 -0
- package/lib/chain/blocks/verifyBlock.js +18 -5
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +12 -36
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.js +2 -2
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/chain.d.ts +8 -80
- package/lib/chain/chain.js +52 -84
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts +2 -1
- package/lib/chain/forkChoice/index.js +2 -2
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/interface.d.ts +3 -10
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +13 -3
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/attestationPool.d.ts +1 -1
- package/lib/chain/opPools/attestationPool.js +7 -7
- package/lib/chain/prepareNextSlot.js +4 -2
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +30 -18
- package/lib/chain/produceBlock/produceBlockBody.js +27 -32
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +6 -4
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +21 -23
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
- package/lib/chain/rewards/syncCommitteeRewards.js +4 -4
- package/lib/chain/rewards/syncCommitteeRewards.js.map +1 -1
- package/lib/chain/validation/aggregateAndProof.d.ts +1 -1
- package/lib/chain/validation/aggregateAndProof.js +8 -8
- package/lib/chain/validation/aggregateAndProof.js.map +1 -1
- package/lib/chain/validation/attestation.d.ts +3 -3
- package/lib/chain/validation/attestation.js +10 -10
- package/lib/chain/validation/attestation.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +2 -1
- package/lib/chain/validation/dataColumnSidecar.js +17 -8
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.js +2 -2
- package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
- package/lib/db/beacon.d.ts +3 -3
- package/lib/db/beacon.js +3 -3
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/interface.d.ts +3 -3
- package/lib/db/repositories/blockArchive.js +3 -3
- package/lib/db/repositories/blockArchive.js.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +4 -0
- package/lib/db/repositories/blockArchiveIndex.js +13 -5
- package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
- package/lib/db/repositories/dataColumnSidecar.d.ts +26 -0
- package/lib/db/repositories/dataColumnSidecar.js +39 -0
- package/lib/db/repositories/dataColumnSidecar.js.map +1 -0
- package/lib/db/repositories/dataColumnSidecarArchive.d.ts +24 -0
- package/lib/db/repositories/dataColumnSidecarArchive.js +39 -0
- package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -0
- package/lib/db/repositories/index.d.ts +2 -2
- package/lib/db/repositories/index.js +2 -2
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/db/repositories/stateArchive.js +4 -3
- package/lib/db/repositories/stateArchive.js.map +1 -1
- package/lib/db/repositories/stateArchiveIndex.d.ts +1 -0
- package/lib/db/repositories/stateArchiveIndex.js +6 -2
- package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
- package/lib/db/single/preGenesisState.d.ts +1 -0
- package/lib/db/single/preGenesisState.js +5 -4
- package/lib/db/single/preGenesisState.js.map +1 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +1 -0
- package/lib/db/single/preGenesisStateLastProcessedBlock.js +5 -4
- package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
- package/lib/execution/builder/http.d.ts +20 -4
- package/lib/execution/builder/http.js +30 -11
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/execution/builder/interface.d.ts +5 -4
- package/lib/execution/engine/http.d.ts +2 -2
- package/lib/execution/engine/http.js +10 -5
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -11
- package/lib/execution/engine/mock.d.ts +4 -1
- package/lib/execution/engine/mock.js +54 -16
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/types.d.ts +5 -5
- package/lib/execution/engine/types.js +2 -2
- 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 +2 -28
- package/lib/metrics/metrics/beacon.js +9 -75
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +7 -0
- package/lib/metrics/metrics/lodestar.js +18 -0
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/metrics/metrics.d.ts +2 -1
- package/lib/metrics/metrics.js +3 -0
- package/lib/metrics/metrics.js.map +1 -1
- package/lib/network/core/networkCore.js +11 -7
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.js +1 -1
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/gossip/scoringParameters.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +620 -92
- package/lib/network/interface.d.ts +3 -3
- package/lib/network/network.d.ts +3 -3
- package/lib/network/network.js +1 -1
- package/lib/network/network.js.map +1 -1
- package/lib/network/options.js +2 -2
- package/lib/network/peers/discover.js +1 -1
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.js +10 -7
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/utils/prioritizePeers.d.ts +2 -1
- package/lib/network/peers/utils/prioritizePeers.js +5 -5
- package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +22 -19
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +6 -3
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +53 -23
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +7 -2
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +7 -7
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js +4 -5
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +2 -2
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +2 -2
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js +2 -3
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +3 -3
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +67 -46
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +2 -2
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +48 -34
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/index.js +4 -3
- package/lib/network/reqresp/handlers/index.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +11 -5
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/types.d.ts +3 -3
- package/lib/network/reqresp/types.js +3 -3
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +16 -0
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js +59 -0
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -0
- package/lib/sync/backfill/backfill.js +1 -1
- package/lib/sync/backfill/backfill.js.map +1 -1
- package/lib/sync/range/chain.d.ts +1 -1
- package/lib/sync/range/chain.js +2 -2
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.js +2 -2
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.d.ts +3 -1
- package/lib/sync/range/utils/peerBalancer.js +20 -1
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +46 -4
- package/lib/sync/unknownBlock.js +305 -201
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/util/blobs.d.ts +3 -13
- package/lib/util/blobs.js +9 -47
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/dataColumns.d.ts +7 -5
- package/lib/util/dataColumns.js +36 -27
- package/lib/util/dataColumns.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/lib/util/sszBytes.d.ts +2 -0
- package/lib/util/sszBytes.js +23 -0
- package/lib/util/sszBytes.js.map +1 -1
- package/lib/util/types.d.ts +7 -0
- package/lib/util/types.js +3 -0
- package/lib/util/types.js.map +1 -1
- package/package.json +17 -18
- package/lib/db/repositories/dataColumnSidecars.d.ts +0 -47
- package/lib/db/repositories/dataColumnSidecars.js +0 -40
- package/lib/db/repositories/dataColumnSidecars.js.map +0 -1
- package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +0 -15
- package/lib/db/repositories/dataColumnSidecarsArchive.js +0 -23
- package/lib/db/repositories/dataColumnSidecarsArchive.js.map +0 -1
package/lib/db/beacon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,gBAAgB,EAChB,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../src/db/beacon.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,yBAAyB,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,gBAAgB,EAChB,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,kCAAkC,EAClC,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,eAAe,EAAE,iCAAiC,EAAC,MAAM,mBAAmB,CAAC;AAOrF,MAAM,OAAO,QAAQ;IA+BnB,YACE,MAAuB,EACJ,EAAM;QAAN,OAAE,GAAF,EAAE,CAAI;QAEzB,4IAA4I;QAC5I,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,mBAAmB,GAAG,IAAI,6BAA6B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,IAAI,2BAA2B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,wBAAwB,GAAG,IAAI,kCAAkC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEnF,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,GAAG,IAAI,8BAA8B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAA0B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAA0B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,iCAAiC,GAAG,IAAI,iCAAiC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3F,cAAc;QACd,IAAI,CAAC,qBAAqB,GAAG,IAAI,+BAA+B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAA0B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,GAAG,IAAI,8BAA8B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3E,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,OAAiC;QAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,sBAAsB;QACtB,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,uBAAuB;QACvB,qCAAqC;QACrC,yDAAyD;IAC3D,CAAC;CACF"}
|
package/lib/db/interface.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LevelDbControllerMetrics } from "@lodestar/db";
|
|
2
2
|
import { CheckpointStateRepository } from "./repositories/checkpointState.js";
|
|
3
|
-
import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BackfilledRanges, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository,
|
|
3
|
+
import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BackfilledRanges, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository, DataColumnSidecarArchiveRepository, DataColumnSidecarRepository, DepositDataRootRepository, DepositEventRepository, Eth1DataRepository, ProposerSlashingRepository, StateArchiveRepository, SyncCommitteeRepository, SyncCommitteeWitnessRepository, VoluntaryExitRepository } from "./repositories/index.js";
|
|
4
4
|
import { PreGenesisState, PreGenesisStateLastProcessedBlock } from "./single/index.js";
|
|
5
5
|
/**
|
|
6
6
|
* The DB service manages the data layer of the beacon chain
|
|
@@ -12,8 +12,8 @@ export interface IBeaconDb {
|
|
|
12
12
|
blockArchive: BlockArchiveRepository;
|
|
13
13
|
blobSidecars: BlobSidecarsRepository;
|
|
14
14
|
blobSidecarsArchive: BlobSidecarsArchiveRepository;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
dataColumnSidecar: DataColumnSidecarRepository;
|
|
16
|
+
dataColumnSidecarArchive: DataColumnSidecarArchiveRepository;
|
|
17
17
|
stateArchive: StateArchiveRepository;
|
|
18
18
|
checkpointState: CheckpointStateRepository;
|
|
19
19
|
voluntaryExit: VoluntaryExitRepository;
|
|
@@ -4,7 +4,7 @@ import { bytesToInt } from "@lodestar/utils";
|
|
|
4
4
|
import all from "it-all";
|
|
5
5
|
import { getSignedBlockTypeFromBytes } from "../../util/multifork.js";
|
|
6
6
|
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
7
|
-
import {
|
|
7
|
+
import { getParentRootIndex, getRootIndex } from "./blockArchiveIndex.js";
|
|
8
8
|
import { deleteParentRootIndex, deleteRootIndex, storeParentRootIndex, storeRootIndex } from "./blockArchiveIndex.js";
|
|
9
9
|
/**
|
|
10
10
|
* Stores finalized blocks. Block slot is identifier.
|
|
@@ -102,10 +102,10 @@ export class BlockArchiveRepository extends Repository {
|
|
|
102
102
|
return slot !== null ? this.get(slot) : null;
|
|
103
103
|
}
|
|
104
104
|
async getSlotByRoot(root) {
|
|
105
|
-
return this.parseSlot(await this.db
|
|
105
|
+
return this.parseSlot(await getRootIndex(this.db, root));
|
|
106
106
|
}
|
|
107
107
|
async getSlotByParentRoot(root) {
|
|
108
|
-
return this.parseSlot(await this.db
|
|
108
|
+
return this.parseSlot(await getParentRootIndex(this.db, root));
|
|
109
109
|
}
|
|
110
110
|
parseSlot(slotBytes) {
|
|
111
111
|
if (!slotBytes)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockArchive.js","sourceRoot":"","sources":["../../../src/db/repositories/blockArchive.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,UAAU,EAAC,MAAM,cAAc,CAAC;AACrE,OAAO,EAAgC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"blockArchive.js","sourceRoot":"","sources":["../../../src/db/repositories/blockArchive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Db } from "@lodestar/db";
|
|
2
2
|
import { ForkAll } from "@lodestar/params";
|
|
3
3
|
import { Root, SSZTypesFor, SignedBeaconBlock, Slot } from "@lodestar/types";
|
|
4
|
+
export declare const rootIndexBucketId: "allForks_stateArchive" | "allForks_block" | "allForks_blockArchive" | "index_blockArchiveParentRootIndex" | "index_blockArchiveRootIndex" | "index_mainChain" | "index_chainInfo" | "phase0_eth1Data" | "index_depositDataRoot" | "phase0_depositData" | "phase0_exit" | "phase0_proposerSlashing" | "allForks_attesterSlashing" | "capella_blsToExecutionChange" | "allForks_checkpointState" | "phase0_depositEvent" | "index_stateArchiveRootIndex" | "allForks_blobSidecars" | "allForks_blobSidecarsArchive" | "phase0_preGenesisState" | "phase0_preGenesisStateLastProcessedBlock" | "backfilled_ranges" | "lightClient_syncCommitteeWitness" | "lightClient_syncCommittee" | "lightClient_checkpointHeader" | "lightClient_bestLightClientUpdate" | "allForks_dataColumnSidecars" | "allForks_dataColumnSidecarsArchive";
|
|
5
|
+
export declare const parentRootIndexBucketId: "allForks_stateArchive" | "allForks_block" | "allForks_blockArchive" | "index_blockArchiveParentRootIndex" | "index_blockArchiveRootIndex" | "index_mainChain" | "index_chainInfo" | "phase0_eth1Data" | "index_depositDataRoot" | "phase0_depositData" | "phase0_exit" | "phase0_proposerSlashing" | "allForks_attesterSlashing" | "capella_blsToExecutionChange" | "allForks_checkpointState" | "phase0_depositEvent" | "index_stateArchiveRootIndex" | "allForks_blobSidecars" | "allForks_blobSidecarsArchive" | "phase0_preGenesisState" | "phase0_preGenesisStateLastProcessedBlock" | "backfilled_ranges" | "lightClient_syncCommitteeWitness" | "lightClient_syncCommittee" | "lightClient_checkpointHeader" | "lightClient_bestLightClientUpdate" | "allForks_dataColumnSidecars" | "allForks_dataColumnSidecarsArchive";
|
|
6
|
+
export declare function getRootIndex(db: Db, blockRoot: Root): Promise<Uint8Array | null>;
|
|
7
|
+
export declare function getParentRootIndex(db: Db, parentRoot: Root): Promise<Uint8Array | null>;
|
|
4
8
|
export declare function storeRootIndex(db: Db, slot: Slot, blockRoot: Root): Promise<void>;
|
|
5
9
|
export declare function storeParentRootIndex(db: Db, slot: Slot, parentRoot: Root): Promise<void>;
|
|
6
10
|
export declare function deleteRootIndex(db: Db, signedBeaconBlockType: SSZTypesFor<ForkAll, "SignedBeaconBlock">, block: SignedBeaconBlock): Promise<void>;
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
import { encodeKey } from "@lodestar/db";
|
|
2
2
|
import { intToBytes } from "@lodestar/utils";
|
|
3
|
-
import { Bucket } from "../buckets.js";
|
|
3
|
+
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
4
|
+
export const rootIndexBucketId = getBucketNameByValue(Bucket.index_blockArchiveRootIndex);
|
|
5
|
+
export const parentRootIndexBucketId = getBucketNameByValue(Bucket.index_blockArchiveParentRootIndex);
|
|
6
|
+
export async function getRootIndex(db, blockRoot) {
|
|
7
|
+
return db.get(getRootIndexKey(blockRoot), { bucketId: rootIndexBucketId });
|
|
8
|
+
}
|
|
9
|
+
export async function getParentRootIndex(db, parentRoot) {
|
|
10
|
+
return db.get(getParentRootIndexKey(parentRoot), { bucketId: parentRootIndexBucketId });
|
|
11
|
+
}
|
|
4
12
|
export async function storeRootIndex(db, slot, blockRoot) {
|
|
5
|
-
return db.put(getRootIndexKey(blockRoot), intToBytes(slot, 8, "be"));
|
|
13
|
+
return db.put(getRootIndexKey(blockRoot), intToBytes(slot, 8, "be"), { bucketId: rootIndexBucketId });
|
|
6
14
|
}
|
|
7
15
|
export async function storeParentRootIndex(db, slot, parentRoot) {
|
|
8
|
-
return db.put(getParentRootIndexKey(parentRoot), intToBytes(slot, 8, "be"));
|
|
16
|
+
return db.put(getParentRootIndexKey(parentRoot), intToBytes(slot, 8, "be"), { bucketId: parentRootIndexBucketId });
|
|
9
17
|
}
|
|
10
18
|
export async function deleteRootIndex(db, signedBeaconBlockType, block) {
|
|
11
19
|
const beaconBlockType = signedBeaconBlockType.fields.message;
|
|
12
|
-
return db.delete(getRootIndexKey(beaconBlockType.hashTreeRoot(block.message)));
|
|
20
|
+
return db.delete(getRootIndexKey(beaconBlockType.hashTreeRoot(block.message)), { bucketId: rootIndexBucketId });
|
|
13
21
|
}
|
|
14
22
|
export async function deleteParentRootIndex(db, block) {
|
|
15
|
-
return db.delete(getParentRootIndexKey(block.message.parentRoot));
|
|
23
|
+
return db.delete(getParentRootIndexKey(block.message.parentRoot), { bucketId: parentRootIndexBucketId });
|
|
16
24
|
}
|
|
17
25
|
export function getParentRootIndexKey(parentRoot) {
|
|
18
26
|
return encodeKey(Bucket.index_blockArchiveParentRootIndex, parentRoot);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockArchiveIndex.js","sourceRoot":"","sources":["../../../src/db/repositories/blockArchiveIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"blockArchiveIndex.js","sourceRoot":"","sources":["../../../src/db/repositories/blockArchiveIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC;AAEtG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAM,EAAE,SAAe;IACxD,OAAO,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,EAAC,QAAQ,EAAE,iBAAiB,EAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAM,EAAE,UAAgB;IAC/D,OAAO,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,EAAC,QAAQ,EAAE,uBAAuB,EAAC,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAM,EAAE,IAAU,EAAE,SAAe;IACtE,OAAO,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAE,iBAAiB,EAAC,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAM,EAAE,IAAU,EAAE,UAAgB;IAC7E,OAAO,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAE,uBAAuB,EAAC,CAAC,CAAC;AACnH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,qBAAgE,EAChE,KAAwB;IAExB,MAAM,eAAe,GAAI,qBAA6D,CAAC,MAAM,CAAC,OAAO,CAAC;IACtG,OAAO,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,iBAAiB,EAAC,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAM,EAAE,KAAwB;IAC1E,OAAO,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAC,QAAQ,EAAE,uBAAuB,EAAC,CAAC,CAAC;AACzG,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAgB;IACpD,OAAO,SAAS,CAAC,MAAM,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,OAAO,SAAS,CAAC,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
+
import { Db, PrefixedRepository } from "@lodestar/db";
|
|
3
|
+
import { ColumnIndex, Root, fulu } from "@lodestar/types";
|
|
4
|
+
type BlockRoot = Root;
|
|
5
|
+
/**
|
|
6
|
+
* DataColumnSidecarsRepository
|
|
7
|
+
* Used to store `unfinalized` DataColumnSidecars
|
|
8
|
+
*
|
|
9
|
+
* Indexed data by `blockRoot` + `columnIndex`
|
|
10
|
+
*/
|
|
11
|
+
export declare class DataColumnSidecarRepository extends PrefixedRepository<BlockRoot, ColumnIndex, fulu.DataColumnSidecar> {
|
|
12
|
+
constructor(config: ChainForkConfig, db: Db);
|
|
13
|
+
/**
|
|
14
|
+
* Id is hashTreeRoot of unsigned BeaconBlock
|
|
15
|
+
*/
|
|
16
|
+
getId(value: fulu.DataColumnSidecar): ColumnIndex;
|
|
17
|
+
encodeKeyRaw(prefix: BlockRoot, id: ColumnIndex): Uint8Array;
|
|
18
|
+
decodeKeyRaw(raw: Uint8Array): {
|
|
19
|
+
prefix: BlockRoot;
|
|
20
|
+
id: ColumnIndex;
|
|
21
|
+
};
|
|
22
|
+
getMaxKeyRaw(prefix: BlockRoot): Uint8Array;
|
|
23
|
+
getMinKeyRaw(prefix: BlockRoot): Uint8Array;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=dataColumnSidecar.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PrefixedRepository } from "@lodestar/db";
|
|
2
|
+
import { NUMBER_OF_COLUMNS } from "@lodestar/params";
|
|
3
|
+
import { ssz } from "@lodestar/types";
|
|
4
|
+
import { bytesToInt, intToBytes } from "@lodestar/utils";
|
|
5
|
+
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
6
|
+
/**
|
|
7
|
+
* DataColumnSidecarsRepository
|
|
8
|
+
* Used to store `unfinalized` DataColumnSidecars
|
|
9
|
+
*
|
|
10
|
+
* Indexed data by `blockRoot` + `columnIndex`
|
|
11
|
+
*/
|
|
12
|
+
export class DataColumnSidecarRepository extends PrefixedRepository {
|
|
13
|
+
constructor(config, db) {
|
|
14
|
+
const bucket = Bucket.allForks_dataColumnSidecars;
|
|
15
|
+
super(config, db, bucket, ssz.fulu.DataColumnSidecar, getBucketNameByValue(bucket));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Id is hashTreeRoot of unsigned BeaconBlock
|
|
19
|
+
*/
|
|
20
|
+
getId(value) {
|
|
21
|
+
return value.index;
|
|
22
|
+
}
|
|
23
|
+
encodeKeyRaw(prefix, id) {
|
|
24
|
+
return Buffer.concat([prefix, intToBytes(id, 4)]);
|
|
25
|
+
}
|
|
26
|
+
decodeKeyRaw(raw) {
|
|
27
|
+
return {
|
|
28
|
+
prefix: raw.slice(0, 32),
|
|
29
|
+
id: bytesToInt(raw.slice(32, 36)),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
getMaxKeyRaw(prefix) {
|
|
33
|
+
return Buffer.concat([prefix, intToBytes(NUMBER_OF_COLUMNS, 4)]);
|
|
34
|
+
}
|
|
35
|
+
getMinKeyRaw(prefix) {
|
|
36
|
+
return Buffer.concat([prefix, intToBytes(0, 4)]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=dataColumnSidecar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataColumnSidecar.js","sourceRoot":"","sources":["../../../src/db/repositories/dataColumnSidecar.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,kBAAkB,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAA0B,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAI3D;;;;;GAKG;AACH,MAAM,OAAO,2BAA4B,SAAQ,kBAAkE;IACjH,YAAY,MAAuB,EAAE,EAAM;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,2BAA2B,CAAC;QAClD,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAA6B;QACjC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,MAAiB,EAAE,EAAe;QAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,YAAY,CAAC,GAAe;QAC1B,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAc;YACrC,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAgB;SACjD,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAiB;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,MAAiB;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
+
import { Db, PrefixedRepository } from "@lodestar/db";
|
|
3
|
+
import { ColumnIndex, Slot, fulu } from "@lodestar/types";
|
|
4
|
+
/**
|
|
5
|
+
* DataColumnSidecarsRepository
|
|
6
|
+
* Used to store `finalized` DataColumnSidecars
|
|
7
|
+
*
|
|
8
|
+
* Indexed data by `slot` + `columnIndex`
|
|
9
|
+
*/
|
|
10
|
+
export declare class DataColumnSidecarArchiveRepository extends PrefixedRepository<Slot, ColumnIndex, fulu.DataColumnSidecar> {
|
|
11
|
+
constructor(config: ChainForkConfig, db: Db);
|
|
12
|
+
/**
|
|
13
|
+
* Id is hashTreeRoot of unsigned BeaconBlock
|
|
14
|
+
*/
|
|
15
|
+
getId(value: fulu.DataColumnSidecar): ColumnIndex;
|
|
16
|
+
encodeKeyRaw(prefix: Slot, id: ColumnIndex): Uint8Array;
|
|
17
|
+
decodeKeyRaw(raw: Uint8Array): {
|
|
18
|
+
prefix: Slot;
|
|
19
|
+
id: ColumnIndex;
|
|
20
|
+
};
|
|
21
|
+
getMaxKeyRaw(prefix: Slot): Uint8Array;
|
|
22
|
+
getMinKeyRaw(prefix: Slot): Uint8Array;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=dataColumnSidecarArchive.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PrefixedRepository } from "@lodestar/db";
|
|
2
|
+
import { NUMBER_OF_COLUMNS } from "@lodestar/params";
|
|
3
|
+
import { ssz } from "@lodestar/types";
|
|
4
|
+
import { bytesToInt, intToBytes } from "@lodestar/utils";
|
|
5
|
+
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
6
|
+
/**
|
|
7
|
+
* DataColumnSidecarsRepository
|
|
8
|
+
* Used to store `finalized` DataColumnSidecars
|
|
9
|
+
*
|
|
10
|
+
* Indexed data by `slot` + `columnIndex`
|
|
11
|
+
*/
|
|
12
|
+
export class DataColumnSidecarArchiveRepository extends PrefixedRepository {
|
|
13
|
+
constructor(config, db) {
|
|
14
|
+
const bucket = Bucket.allForks_dataColumnSidecarsArchive;
|
|
15
|
+
super(config, db, bucket, ssz.fulu.DataColumnSidecar, getBucketNameByValue(bucket));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Id is hashTreeRoot of unsigned BeaconBlock
|
|
19
|
+
*/
|
|
20
|
+
getId(value) {
|
|
21
|
+
return value.index;
|
|
22
|
+
}
|
|
23
|
+
encodeKeyRaw(prefix, id) {
|
|
24
|
+
return Buffer.concat([intToBytes(prefix, 4), intToBytes(id, 4)]);
|
|
25
|
+
}
|
|
26
|
+
decodeKeyRaw(raw) {
|
|
27
|
+
return {
|
|
28
|
+
prefix: bytesToInt(raw.slice(0, 4)),
|
|
29
|
+
id: bytesToInt(raw.slice(4, 8)),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
getMaxKeyRaw(prefix) {
|
|
33
|
+
return Buffer.concat([intToBytes(prefix, 4), intToBytes(NUMBER_OF_COLUMNS, 4)]);
|
|
34
|
+
}
|
|
35
|
+
getMinKeyRaw(prefix) {
|
|
36
|
+
return Buffer.concat([intToBytes(prefix, 4), intToBytes(0, 4)]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=dataColumnSidecarArchive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataColumnSidecarArchive.js","sourceRoot":"","sources":["../../../src/db/repositories/dataColumnSidecarArchive.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,kBAAkB,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAA0B,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,OAAO,kCAAmC,SAAQ,kBAA6D;IACnH,YAAY,MAAuB,EAAE,EAAM;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,kCAAkC,CAAC;QACzD,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAA6B;QACjC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,MAAY,EAAE,EAAe;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,GAAe;QAC1B,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAS;YAC3C,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAgB;SAC/C,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAY;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,YAAY,CAAC,MAAY;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { BlobSidecarsRepository } from "./blobSidecars.js";
|
|
2
2
|
export { BlobSidecarsArchiveRepository } from "./blobSidecarsArchive.js";
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
3
|
+
export { DataColumnSidecarRepository } from "./dataColumnSidecar.js";
|
|
4
|
+
export { DataColumnSidecarArchiveRepository } from "./dataColumnSidecarArchive.js";
|
|
5
5
|
export { BlockRepository } from "./block.js";
|
|
6
6
|
export { BlockArchiveRepository } from "./blockArchive.js";
|
|
7
7
|
export type { BlockArchiveBatchPutBinaryItem, BlockFilterOptions } from "./blockArchive.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { BlobSidecarsRepository } from "./blobSidecars.js";
|
|
2
2
|
export { BlobSidecarsArchiveRepository } from "./blobSidecarsArchive.js";
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
3
|
+
export { DataColumnSidecarRepository } from "./dataColumnSidecar.js";
|
|
4
|
+
export { DataColumnSidecarArchiveRepository } from "./dataColumnSidecarArchive.js";
|
|
5
5
|
export { BlockRepository } from "./block.js";
|
|
6
6
|
export { BlockArchiveRepository } from "./blockArchive.js";
|
|
7
7
|
export { StateArchiveRepository } from "./stateArchive.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,6BAA6B,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,kCAAkC,EAAC,MAAM,+BAA+B,CAAC;AAEjF,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAC,+BAA+B,EAAC,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,8BAA8B,EAAC,MAAM,2BAA2B,CAAC"}
|
|
@@ -3,11 +3,11 @@ import { ssz } from "@lodestar/types";
|
|
|
3
3
|
import { bytesToInt, toHex } from "@lodestar/utils";
|
|
4
4
|
import { getStateTypeFromBytes } from "../../util/multifork.js";
|
|
5
5
|
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
6
|
-
import { getRootIndexKey, storeRootIndex } from "./stateArchiveIndex.js";
|
|
6
|
+
import { getRootIndex, getRootIndexKey, storeRootIndex } from "./stateArchiveIndex.js";
|
|
7
7
|
export class StateArchiveRepository extends Repository {
|
|
8
8
|
constructor(config, db) {
|
|
9
9
|
// Pick some type but won't be used. Casted to any because no type can match `BeaconStateAllForks`
|
|
10
|
-
// biome-ignore lint/suspicious/noExplicitAny:
|
|
10
|
+
// biome-ignore lint/suspicious/noExplicitAny: We need to use `any` type here
|
|
11
11
|
const type = ssz.phase0.BeaconState;
|
|
12
12
|
const bucket = Bucket.allForks_stateArchive;
|
|
13
13
|
super(config, db, bucket, type, getBucketNameByValue(bucket));
|
|
@@ -41,6 +41,7 @@ export class StateArchiveRepository extends Repository {
|
|
|
41
41
|
const entries = await this.db.entries({
|
|
42
42
|
lte: getRootIndexKey(Buffer.alloc(32, 0xff)),
|
|
43
43
|
gte: getRootIndexKey(Buffer.alloc(32, 0x00)),
|
|
44
|
+
bucketId: this.bucketId,
|
|
44
45
|
});
|
|
45
46
|
return entries.map((entry) => ({
|
|
46
47
|
root: toHex(entry.key),
|
|
@@ -48,7 +49,7 @@ export class StateArchiveRepository extends Repository {
|
|
|
48
49
|
}));
|
|
49
50
|
}
|
|
50
51
|
async getSlotByRoot(root) {
|
|
51
|
-
const value = await this.db
|
|
52
|
+
const value = await getRootIndex(this.db, root);
|
|
52
53
|
return value && bytesToInt(value, "be");
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateArchive.js","sourceRoot":"","sources":["../../../src/db/repositories/stateArchive.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,UAAU,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,EAA6B,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAC,UAAU,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"stateArchive.js","sourceRoot":"","sources":["../../../src/db/repositories/stateArchive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Db } from "@lodestar/db";
|
|
2
2
|
import { Root, Slot } from "@lodestar/types";
|
|
3
|
+
export declare function getRootIndex(db: Db, stateRoot: Root): Promise<Uint8Array | null>;
|
|
3
4
|
export declare function storeRootIndex(db: Db, slot: Slot, stateRoot: Root): Promise<void>;
|
|
4
5
|
export declare function getRootIndexKey(root: Root): Uint8Array;
|
|
5
6
|
//# sourceMappingURL=stateArchiveIndex.d.ts.map
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { encodeKey } from "@lodestar/db";
|
|
2
2
|
import { intToBytes } from "@lodestar/utils";
|
|
3
|
-
import { Bucket } from "../buckets.js";
|
|
3
|
+
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
4
|
+
const bucketId = getBucketNameByValue(Bucket.index_stateArchiveRootIndex);
|
|
5
|
+
export function getRootIndex(db, stateRoot) {
|
|
6
|
+
return db.get(getRootIndexKey(stateRoot), { bucketId });
|
|
7
|
+
}
|
|
4
8
|
export function storeRootIndex(db, slot, stateRoot) {
|
|
5
|
-
return db.put(getRootIndexKey(stateRoot), intToBytes(slot, 8, "be"));
|
|
9
|
+
return db.put(getRootIndexKey(stateRoot), intToBytes(slot, 8, "be"), { bucketId });
|
|
6
10
|
}
|
|
7
11
|
export function getRootIndexKey(root) {
|
|
8
12
|
return encodeKey(Bucket.index_stateArchiveRootIndex, root);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateArchiveIndex.js","sourceRoot":"","sources":["../../../src/db/repositories/stateArchiveIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"stateArchiveIndex.js","sourceRoot":"","sources":["../../../src/db/repositories/stateArchiveIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAE1E,MAAM,UAAU,YAAY,CAAC,EAAM,EAAE,SAAe;IAClD,OAAO,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAM,EAAE,IAAU,EAAE,SAAe;IAChE,OAAO,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,OAAO,SAAS,CAAC,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -7,6 +7,7 @@ export declare class PreGenesisState {
|
|
|
7
7
|
private readonly db;
|
|
8
8
|
private readonly key;
|
|
9
9
|
private readonly type;
|
|
10
|
+
private readonly dbReqOpts;
|
|
10
11
|
constructor(config: ChainForkConfig, db: Db);
|
|
11
12
|
put(value: BeaconStateAllForks): Promise<void>;
|
|
12
13
|
get(): Promise<BeaconStateAllForks | null>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GENESIS_SLOT } from "@lodestar/params";
|
|
2
|
-
import { Bucket } from "../buckets.js";
|
|
2
|
+
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
3
3
|
export class PreGenesisState {
|
|
4
4
|
constructor(config, db) {
|
|
5
5
|
this.config = config;
|
|
@@ -7,16 +7,17 @@ export class PreGenesisState {
|
|
|
7
7
|
this.bucket = Bucket.phase0_preGenesisState;
|
|
8
8
|
this.key = new Uint8Array([this.bucket]);
|
|
9
9
|
this.type = this.config.getForkTypes(GENESIS_SLOT).BeaconState;
|
|
10
|
+
this.dbReqOpts = { bucketId: getBucketNameByValue(this.bucket) };
|
|
10
11
|
}
|
|
11
12
|
async put(value) {
|
|
12
|
-
await this.db.put(this.key, value.serialize());
|
|
13
|
+
await this.db.put(this.key, value.serialize(), this.dbReqOpts);
|
|
13
14
|
}
|
|
14
15
|
async get() {
|
|
15
|
-
const value = await this.db.get(this.key);
|
|
16
|
+
const value = await this.db.get(this.key, this.dbReqOpts);
|
|
16
17
|
return value ? this.type.deserializeToViewDU(value) : null;
|
|
17
18
|
}
|
|
18
19
|
async delete() {
|
|
19
|
-
await this.db.delete(this.key);
|
|
20
|
+
await this.db.delete(this.key, this.dbReqOpts);
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
//# sourceMappingURL=preGenesisState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preGenesisState.js","sourceRoot":"","sources":["../../../src/db/single/preGenesisState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"preGenesisState.js","sourceRoot":"","sources":["../../../src/db/single/preGenesisState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,eAAe;IAQ1B,YAAY,MAAuB,EAAE,EAAM;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,EAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAA0B;QAClC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -5,6 +5,7 @@ export declare class PreGenesisStateLastProcessedBlock {
|
|
|
5
5
|
private readonly type;
|
|
6
6
|
private readonly db;
|
|
7
7
|
private readonly key;
|
|
8
|
+
private readonly dbReqOpts;
|
|
8
9
|
constructor(_config: ChainForkConfig, db: Db);
|
|
9
10
|
put(value: number): Promise<void>;
|
|
10
11
|
get(): Promise<number | null>;
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { ssz } from "@lodestar/types";
|
|
2
|
-
import { Bucket } from "../buckets.js";
|
|
2
|
+
import { Bucket, getBucketNameByValue } from "../buckets.js";
|
|
3
3
|
export class PreGenesisStateLastProcessedBlock {
|
|
4
4
|
constructor(_config, db) {
|
|
5
5
|
this.db = db;
|
|
6
6
|
this.type = ssz.UintNum64;
|
|
7
7
|
this.bucket = Bucket.phase0_preGenesisStateLastProcessedBlock;
|
|
8
8
|
this.key = new Uint8Array([this.bucket]);
|
|
9
|
+
this.dbReqOpts = { bucketId: getBucketNameByValue(this.bucket) };
|
|
9
10
|
}
|
|
10
11
|
async put(value) {
|
|
11
|
-
await this.db.put(this.key, this.type.serialize(value));
|
|
12
|
+
await this.db.put(this.key, this.type.serialize(value), this.dbReqOpts);
|
|
12
13
|
}
|
|
13
14
|
async get() {
|
|
14
|
-
const value = await this.db.get(this.key);
|
|
15
|
+
const value = await this.db.get(this.key, this.dbReqOpts);
|
|
15
16
|
return value ? this.type.deserialize(value) : null;
|
|
16
17
|
}
|
|
17
18
|
async delete() {
|
|
18
|
-
await this.db.delete(this.key);
|
|
19
|
+
await this.db.delete(this.key, this.dbReqOpts);
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
//# sourceMappingURL=preGenesisStateLastProcessedBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preGenesisStateLastProcessedBlock.js","sourceRoot":"","sources":["../../../src/db/single/preGenesisStateLastProcessedBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"preGenesisStateLastProcessedBlock.js","sourceRoot":"","sources":["../../../src/db/single/preGenesisStateLastProcessedBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,MAAM,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAE3D,MAAM,OAAO,iCAAiC;IAO5C,YAAY,OAAwB,EAAE,EAAM;QAC1C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,wCAAwC,CAAC;QAC9D,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,EAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -2,7 +2,7 @@ import { ApiClient as BuilderApi } from "@lodestar/api/builder";
|
|
|
2
2
|
import { ChainForkConfig } from "@lodestar/config";
|
|
3
3
|
import { Logger } from "@lodestar/logger";
|
|
4
4
|
import { ForkPostBellatrix } from "@lodestar/params";
|
|
5
|
-
import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root,
|
|
5
|
+
import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root, SignedBlindedBeaconBlock, SignedBlockContents, Slot, Wei, WithOptionalBytes, bellatrix, deneb, electra } from "@lodestar/types";
|
|
6
6
|
import { Metrics } from "../../metrics/metrics.js";
|
|
7
7
|
import { ValidatorRegistration, ValidatorRegistrationCache } from "./cache.js";
|
|
8
8
|
import { IExecutionBuilder } from "./interface.js";
|
|
@@ -16,6 +16,22 @@ export type ExecutionBuilderHttpOpts = {
|
|
|
16
16
|
userAgent?: string;
|
|
17
17
|
};
|
|
18
18
|
export declare const defaultExecutionBuilderHttpOpts: ExecutionBuilderHttpOpts;
|
|
19
|
+
export declare enum BuilderStatus {
|
|
20
|
+
/**
|
|
21
|
+
* Builder is enabled and operational
|
|
22
|
+
*/
|
|
23
|
+
enabled = "enabled",
|
|
24
|
+
/**
|
|
25
|
+
* Builder is disabled due to failed status check
|
|
26
|
+
*/
|
|
27
|
+
disabled = "disabled",
|
|
28
|
+
/**
|
|
29
|
+
* Circuit breaker condition that is triggered when the node determines the chain is unhealthy.
|
|
30
|
+
* When the circuit breaker is fired, proposers **MUST** not utilize the external builder
|
|
31
|
+
* network and exclusively build locally.
|
|
32
|
+
*/
|
|
33
|
+
circuitBreaker = "circuit_breaker"
|
|
34
|
+
}
|
|
19
35
|
/**
|
|
20
36
|
* Expected error if builder does not provide a bid. Most of the time, this
|
|
21
37
|
* is due to `min-bid` setting on the mev-boost side but in rare cases could
|
|
@@ -29,7 +45,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
|
|
|
29
45
|
readonly config: ChainForkConfig;
|
|
30
46
|
readonly registrations: ValidatorRegistrationCache;
|
|
31
47
|
readonly issueLocalFcUWithFeeRecipient?: string;
|
|
32
|
-
status:
|
|
48
|
+
status: BuilderStatus;
|
|
33
49
|
faultInspectionWindow: number;
|
|
34
50
|
allowedFaults: number;
|
|
35
51
|
/**
|
|
@@ -39,7 +55,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
|
|
|
39
55
|
*/
|
|
40
56
|
private sszSupported;
|
|
41
57
|
constructor(opts: ExecutionBuilderHttpOpts, config: ChainForkConfig, metrics?: Metrics | null, logger?: Logger);
|
|
42
|
-
updateStatus(
|
|
58
|
+
updateStatus(status: BuilderStatus): void;
|
|
43
59
|
checkStatus(): Promise<void>;
|
|
44
60
|
registerValidator(epoch: Epoch, registrations: bellatrix.SignedValidatorRegistrationV1[]): Promise<void>;
|
|
45
61
|
getValidatorRegistration(pubkey: BLSPubkey): ValidatorRegistration | undefined;
|
|
@@ -49,7 +65,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
|
|
|
49
65
|
blobKzgCommitments?: deneb.BlobKzgCommitments;
|
|
50
66
|
executionRequests?: electra.ExecutionRequests;
|
|
51
67
|
}>;
|
|
52
|
-
submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<
|
|
68
|
+
submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<SignedBlockContents>;
|
|
53
69
|
submitBlindedBlockNoResponse(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<void>;
|
|
54
70
|
}
|
|
55
71
|
//# sourceMappingURL=http.d.ts.map
|