UNPKG

@lodestar/beacon-node

Version:

A Typescript implementation of the beacon chain

67 lines 3.56 kB
import { isForkPostAltair } from "@lodestar/params"; import { ssz, sszTypesFor, } from "@lodestar/types"; import { BlobSidecarsByRootRequestType } from "../../util/types.js"; /** ReqResp protocol names or methods. Each ReqRespMethod can have multiple versions and encodings */ export var ReqRespMethod; (function (ReqRespMethod) { // Phase 0 ReqRespMethod["Status"] = "status"; ReqRespMethod["Goodbye"] = "goodbye"; ReqRespMethod["Ping"] = "ping"; ReqRespMethod["Metadata"] = "metadata"; ReqRespMethod["BeaconBlocksByRange"] = "beacon_blocks_by_range"; ReqRespMethod["BeaconBlocksByRoot"] = "beacon_blocks_by_root"; ReqRespMethod["BlobSidecarsByRange"] = "blob_sidecars_by_range"; ReqRespMethod["BlobSidecarsByRoot"] = "blob_sidecars_by_root"; ReqRespMethod["LightClientBootstrap"] = "light_client_bootstrap"; ReqRespMethod["LightClientUpdatesByRange"] = "light_client_updates_by_range"; ReqRespMethod["LightClientFinalityUpdate"] = "light_client_finality_update"; ReqRespMethod["LightClientOptimisticUpdate"] = "light_client_optimistic_update"; })(ReqRespMethod || (ReqRespMethod = {})); /** Request SSZ type for each method and ForkName */ export const requestSszTypeByMethod = (fork, config) => ({ [ReqRespMethod.Status]: ssz.phase0.Status, [ReqRespMethod.Goodbye]: ssz.phase0.Goodbye, [ReqRespMethod.Ping]: ssz.phase0.Ping, [ReqRespMethod.Metadata]: null, [ReqRespMethod.BeaconBlocksByRange]: ssz.phase0.BeaconBlocksByRangeRequest, [ReqRespMethod.BeaconBlocksByRoot]: ssz.phase0.BeaconBlocksByRootRequest, [ReqRespMethod.BlobSidecarsByRange]: ssz.deneb.BlobSidecarsByRangeRequest, [ReqRespMethod.BlobSidecarsByRoot]: BlobSidecarsByRootRequestType(fork, config), [ReqRespMethod.LightClientBootstrap]: ssz.Root, [ReqRespMethod.LightClientUpdatesByRange]: ssz.altair.LightClientUpdatesByRange, [ReqRespMethod.LightClientFinalityUpdate]: null, [ReqRespMethod.LightClientOptimisticUpdate]: null, }); const blocksResponseType = (fork, version) => { if (version === Version.V1) { return ssz.phase0.SignedBeaconBlock; } return ssz[fork].SignedBeaconBlock; }; export const responseSszTypeByMethod = { [ReqRespMethod.Status]: () => ssz.phase0.Status, [ReqRespMethod.Goodbye]: () => ssz.phase0.Goodbye, [ReqRespMethod.Ping]: () => ssz.phase0.Ping, [ReqRespMethod.Metadata]: (_, version) => (version === Version.V1 ? ssz.phase0.Metadata : ssz.altair.Metadata), [ReqRespMethod.BeaconBlocksByRange]: blocksResponseType, [ReqRespMethod.BeaconBlocksByRoot]: blocksResponseType, [ReqRespMethod.BlobSidecarsByRange]: () => ssz.deneb.BlobSidecar, [ReqRespMethod.BlobSidecarsByRoot]: () => ssz.deneb.BlobSidecar, [ReqRespMethod.LightClientBootstrap]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientBootstrap, [ReqRespMethod.LightClientUpdatesByRange]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientUpdate, [ReqRespMethod.LightClientFinalityUpdate]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientFinalityUpdate, [ReqRespMethod.LightClientOptimisticUpdate]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientOptimisticUpdate, }; function onlyPostAltairFork(fork) { if (isForkPostAltair(fork)) { return fork; } throw Error(`Not a post-altair fork ${fork}`); } export var Version; (function (Version) { Version[Version["V1"] = 1] = "V1"; Version[Version["V2"] = 2] = "V2"; })(Version || (Version = {})); //# sourceMappingURL=types.js.map