UNPKG

@lodestar/beacon-node

Version:

A Typescript implementation of the beacon chain

41 lines 1.81 kB
import { getBlockRootFromBeaconAttestationSerialized, getBlockRootFromSignedAggregateAndProofSerialized, getSlotFromBeaconAttestationSerialized, getSlotFromBlobSidecarSerialized, getSlotFromSignedAggregateAndProofSerialized, getSlotFromSignedBeaconBlockSerialized, } from "../../util/sszBytes.js"; import { GossipType } from "../gossip/index.js"; /** * Extract the slot and block root of a gossip message form serialized data. * Only applicable for beacon_attestation and beacon_aggregate_and_proof topics. */ export function createExtractBlockSlotRootFns() { return { [GossipType.beacon_attestation]: (data, fork) => { const slot = getSlotFromBeaconAttestationSerialized(fork, data); const root = getBlockRootFromBeaconAttestationSerialized(fork, data); if (slot === null || root === null) { return null; } return { slot, root }; }, [GossipType.beacon_aggregate_and_proof]: (data) => { const slot = getSlotFromSignedAggregateAndProofSerialized(data); const root = getBlockRootFromSignedAggregateAndProofSerialized(data); if (slot === null || root === null) { return null; } return { slot, root }; }, [GossipType.beacon_block]: (data) => { const slot = getSlotFromSignedBeaconBlockSerialized(data); if (slot === null) { return null; } return { slot }; }, [GossipType.blob_sidecar]: (data) => { const slot = getSlotFromBlobSidecarSerialized(data); if (slot === null) { return null; } return { slot }; }, }; } //# sourceMappingURL=extractSlotRootFns.js.map