@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
85 lines • 3.95 kB
JavaScript
import { EventEmitter } from "node:events";
export { ChainEvent };
/**
* Important chain events that occur during normal chain operation.
*
* Chain events can be broken into several categories:
* - Clock: the chain's clock is updated
* - Fork Choice: the chain's fork choice is updated
* - Checkpointing: the chain processes epoch boundaries
*/
var ChainEvent;
(function (ChainEvent) {
/**
* This event signals that the chain has processed (or reprocessed) a checkpoint.
*
* This event is not tied to clock events, but rather tied to generation (or regeneration) of state.
* This event is guaranteed to be called after _any_ checkpoint is processed, including skip-slot checkpoints, checkpoints that are formed as a result of processing blocks, etc.
*/
ChainEvent["checkpoint"] = "checkpoint";
/**
* This event signals that the fork choice store has been updated.
*
* This event is guaranteed to be triggered whenever the fork choice justified checkpoint is updated. This is either in response to a newly processed block or a new clock tick.
*/
ChainEvent["forkChoiceJustified"] = "forkChoice:justified";
/**
* This event signals that the fork choice store has been updated.
*
* This event is guaranteed to be triggered whenever the fork choice justified checkpoint is updated. This is in response to a newly processed block.
*/
ChainEvent["forkChoiceFinalized"] = "forkChoice:finalized";
/**
* This event signals that dependent services (e.g. custody sampling) should update to account for the new target group count.
*/
ChainEvent["updateTargetCustodyGroupCount"] = "updateTargetCustodyGroupCount";
/**
* This event signals that data columns have been fetched from the execution engine
* and are ready to be published.
*/
ChainEvent["publishDataColumns"] = "publishDataColumns";
/**
* This event signals that blobs have been fetched from the execution engine
* and are ready to be published.
*/
ChainEvent["publishBlobSidecars"] = "publishBlobSidecars";
/**
* Trigger an update of status so reqresp by peers have current earliestAvailableSlot
*/
ChainEvent["updateStatus"] = "updateStatus";
/**
* Trigger BlockInputSync to find parent of a SignedBeaconBlock received
* Post-gloas, missing parent could be a SignedBeaconBlock and/or a SignedExecutionPayloadEnvelope
*/
ChainEvent["blockUnknownParent"] = "blockUnknownParent";
/**
* Trigger BlockInputSync to find a SignedBeaconBlock with specified block root.
*/
ChainEvent["unknownBlockRoot"] = "unknownBlockRoot";
/**
* Trigger BlockInputSync to find a SignedExecutionPayloadEnvelope with specified block root.
*/
ChainEvent["unknownEnvelopeBlockRoot"] = "unknownEnvelopeBlockRoot";
/**
* Trigger BlockInputSync for blocks that are partially received via gossip but are not complete by time the
* cut-off window passes for waiting on gossip
*/
ChainEvent["incompleteBlockInput"] = "incompleteBlockInput";
/**
* Post-gloas: trigger BlockInputSync for payload envelopes whose envelope and/or sampled columns are partially
* received via gossip but are not complete by time the cut-off window passes for waiting on gossip
*/
ChainEvent["incompletePayloadEnvelope"] = "incompletePayloadEnvelope";
})(ChainEvent || (ChainEvent = {}));
/**
* Emits important chain events that occur during normal chain operation.
*
* Chain events can be broken into several categories:
* - Clock: the chain's clock is updated
* - Fork Choice: the chain's fork choice is updated
* - Processing: the chain processes attestations and blocks, either successfully or with an error
* - Checkpointing: the chain processes epoch boundaries
*/
export class ChainEventEmitter extends EventEmitter {
}
//# sourceMappingURL=emitter.js.map