@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
70 lines • 2.91 kB
JavaScript
import { toRootHex } from "@lodestar/utils";
export { PendingBlockType };
var PendingBlockType;
(function (PendingBlockType) {
/**
* We got a block root (from a gossip attestation, for exxample) but we don't have the block in forkchoice.
*/
PendingBlockType["UNKNOWN_BLOCK_ROOT"] = "UnknownBlockRoot";
/**
* During gossip time, we may get a block but the parent root is unknown (not in forkchoice).
*/
PendingBlockType["UNKNOWN_PARENT"] = "unknown_parent";
/**
* During gossip we wait for a set amount of time to receive the complete block input but if it does not
* arrive in time we turn to req/resp to pull the remainder so that it can be processed
*/
PendingBlockType["INCOMPLETE_BLOCK_INPUT"] = "IncompleteBlockInput";
PendingBlockType["UNKNOWN_DATA"] = "unknown_data";
})(PendingBlockType || (PendingBlockType = {}));
export { PendingBlockInputStatus };
var PendingBlockInputStatus;
(function (PendingBlockInputStatus) {
PendingBlockInputStatus["pending"] = "pending";
PendingBlockInputStatus["fetching"] = "fetching";
PendingBlockInputStatus["downloaded"] = "downloaded";
PendingBlockInputStatus["processing"] = "processing";
})(PendingBlockInputStatus || (PendingBlockInputStatus = {}));
export { PendingPayloadInputStatus };
var PendingPayloadInputStatus;
(function (PendingPayloadInputStatus) {
PendingPayloadInputStatus["pending"] = "pending";
PendingPayloadInputStatus["fetching"] = "fetching";
PendingPayloadInputStatus["waitingForBlock"] = "waiting_for_block";
PendingPayloadInputStatus["downloaded"] = "downloaded";
PendingPayloadInputStatus["processing"] = "processing";
})(PendingPayloadInputStatus || (PendingPayloadInputStatus = {}));
export function isPendingBlockInput(pending) {
return "blockInput" in pending;
}
export function isPendingPayloadInput(pending) {
return "payloadInput" in pending;
}
export function isPendingPayloadEnvelope(pending) {
return "envelope" in pending;
}
export function getBlockInputSyncCacheItemRootHex(block) {
return isPendingBlockInput(block) ? block.blockInput.blockRootHex : block.rootHex;
}
export function getBlockInputSyncCacheItemSlot(block) {
return isPendingBlockInput(block) ? block.blockInput.slot : "unknown";
}
export function getPayloadSyncCacheItemRootHex(payload) {
if (isPendingPayloadInput(payload)) {
return payload.payloadInput.blockRootHex;
}
if (isPendingPayloadEnvelope(payload)) {
return toRootHex(payload.envelope.message.beaconBlockRoot);
}
return payload.rootHex;
}
export function getPayloadSyncCacheItemSlot(payload) {
if (isPendingPayloadInput(payload)) {
return payload.payloadInput.slot;
}
if (isPendingPayloadEnvelope(payload)) {
return payload.envelope.message.payload.slotNumber;
}
return "unknown";
}
//# sourceMappingURL=types.js.map