UNPKG

@lodestar/beacon-node

Version:

A Typescript implementation of the beacon chain

98 lines 3.53 kB
import { ContextBytesType, Encoding } from "@lodestar/reqresp"; import { rateLimitQuotas } from "./rateLimit.js"; import { ReqRespMethod, Version, requestSszTypeByMethod, responseSszTypeByMethod } from "./types.js"; export const Goodbye = toProtocol({ method: ReqRespMethod.Goodbye, version: Version.V1, contextBytesType: ContextBytesType.Empty, }); export const Metadata = toProtocol({ method: ReqRespMethod.Metadata, version: Version.V1, contextBytesType: ContextBytesType.Empty, }); export const MetadataV2 = toProtocol({ method: ReqRespMethod.Metadata, version: Version.V2, contextBytesType: ContextBytesType.Empty, }); export const Ping = toProtocol({ method: ReqRespMethod.Ping, version: Version.V1, contextBytesType: ContextBytesType.Empty, }); export const Status = toProtocol({ method: ReqRespMethod.Status, version: Version.V1, contextBytesType: ContextBytesType.Empty, }); export const BeaconBlocksByRange = toProtocol({ method: ReqRespMethod.BeaconBlocksByRange, version: Version.V1, contextBytesType: ContextBytesType.Empty, }); export const BeaconBlocksByRangeV2 = toProtocol({ method: ReqRespMethod.BeaconBlocksByRange, version: Version.V2, contextBytesType: ContextBytesType.ForkDigest, }); export const BeaconBlocksByRoot = toProtocol({ method: ReqRespMethod.BeaconBlocksByRoot, version: Version.V1, contextBytesType: ContextBytesType.Empty, }); export const BeaconBlocksByRootV2 = toProtocol({ method: ReqRespMethod.BeaconBlocksByRoot, version: Version.V2, contextBytesType: ContextBytesType.ForkDigest, }); export const BlobSidecarsByRange = toProtocol({ method: ReqRespMethod.BlobSidecarsByRange, version: Version.V1, contextBytesType: ContextBytesType.ForkDigest, }); export const BlobSidecarsByRoot = toProtocol({ method: ReqRespMethod.BlobSidecarsByRoot, version: Version.V1, contextBytesType: ContextBytesType.ForkDigest, }); export const LightClientBootstrap = toProtocol({ method: ReqRespMethod.LightClientBootstrap, version: Version.V1, contextBytesType: ContextBytesType.ForkDigest, }); export const LightClientFinalityUpdate = toProtocol({ method: ReqRespMethod.LightClientFinalityUpdate, version: Version.V1, contextBytesType: ContextBytesType.ForkDigest, }); export const LightClientOptimisticUpdate = toProtocol({ method: ReqRespMethod.LightClientOptimisticUpdate, version: Version.V1, contextBytesType: ContextBytesType.ForkDigest, }); export const LightClientUpdatesByRange = toProtocol({ method: ReqRespMethod.LightClientUpdatesByRange, version: Version.V1, contextBytesType: ContextBytesType.ForkDigest, }); function toProtocol(protocol) { return (fork, config) => ({ method: protocol.method, version: protocol.version, encoding: Encoding.SSZ_SNAPPY, contextBytes: toContextBytes(protocol.contextBytesType, config), inboundRateLimits: rateLimitQuotas(fork, config)[protocol.method], requestSizes: requestSszTypeByMethod(fork, config)[protocol.method], responseSizes: (fork) => responseSszTypeByMethod[protocol.method](fork, protocol.version), }); } function toContextBytes(type, config) { switch (type) { case ContextBytesType.Empty: return { type: ContextBytesType.Empty }; case ContextBytesType.ForkDigest: return { type: ContextBytesType.ForkDigest, config }; } } //# sourceMappingURL=protocols.js.map