@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
62 lines • 2.4 kB
TypeScript
import { PeerId, TopicValidatorResult } from "@libp2p/interface";
import { RootHex, phase0 } from "@lodestar/types";
import { BlockInput, NullBlockInput } from "../chain/blocks/types.js";
import { PeerIdStr } from "../util/peerId.js";
import { StrictEventEmitterSingleArg } from "../util/strictEvents.js";
import { EventDirection } from "../util/workerEvents.js";
import { PendingGossipsubMessage } from "./processor/types.js";
import { RequestTypedContainer } from "./reqresp/ReqRespBeaconNode.js";
export declare enum NetworkEvent {
/** A relevant peer has connected or has been re-STATUS'd */
peerConnected = "peer-manager.peer-connected",
/** A peer has been disconnected */
peerDisconnected = "peer-manager.peer-disconnected",
reqRespRequest = "req-resp.request",
unknownBlockParent = "unknownBlockParent",
unknownBlock = "unknownBlock",
unknownBlockInput = "unknownBlockInput",
/** (Network -> App) A gossip message is ready for validation */
pendingGossipsubMessage = "gossip.pendingGossipsubMessage",
/** (App -> Network) A gossip message has been validated */
gossipMessageValidationResult = "gossip.messageValidationResult"
}
export type NetworkEventData = {
[NetworkEvent.peerConnected]: {
peer: PeerIdStr;
status: phase0.Status;
};
[NetworkEvent.peerDisconnected]: {
peer: PeerIdStr;
};
[NetworkEvent.reqRespRequest]: {
request: RequestTypedContainer;
peer: PeerId;
};
[NetworkEvent.unknownBlockParent]: {
blockInput: BlockInput;
peer: PeerIdStr;
};
[NetworkEvent.unknownBlock]: {
rootHex: RootHex;
peer?: PeerIdStr;
};
[NetworkEvent.unknownBlockInput]: {
blockInput: BlockInput | NullBlockInput;
peer?: PeerIdStr;
};
[NetworkEvent.pendingGossipsubMessage]: PendingGossipsubMessage;
[NetworkEvent.gossipMessageValidationResult]: {
msgId: string;
propagationSource: PeerIdStr;
acceptance: TopicValidatorResult;
};
};
export declare const networkEventDirection: Record<NetworkEvent, EventDirection>;
export type INetworkEventBus = StrictEventEmitterSingleArg<NetworkEventData>;
declare const NetworkEventBus_base: {
new (): INetworkEventBus;
};
export declare class NetworkEventBus extends NetworkEventBus_base {
}
export {};
//# sourceMappingURL=events.d.ts.map