@lodestar/api
Version:
A Typescript REST client for the Ethereum Consensus API
779 lines • 42 kB
TypeScript
import { ContainerType, ListBasicType, ValueOf } from "@chainsafe/ssz";
import { ChainForkConfig } from "@lodestar/config";
import { ForkName } from "@lodestar/params";
import { Attestation, AttesterSlashing, Epoch, LightClientFinalityUpdate, LightClientOptimisticUpdate, RootHex, SSEPayloadAttributes, Slot, StringType, UintNum64, altair, capella, electra, phase0 } from "@lodestar/types";
import { EmptyMeta, EmptyResponseData } from "../../utils/codecs.js";
import { Endpoint, RouteDefinitions } from "../../utils/index.js";
export declare const blobSidecarSSE: ContainerType<{
blockRoot: StringType<string>;
index: import("@chainsafe/ssz").UintNumberType;
slot: import("@chainsafe/ssz").UintNumberType;
kzgCommitment: StringType<string>;
versionedHash: StringType<string>;
}>;
type BlobSidecarSSE = ValueOf<typeof blobSidecarSSE>;
export declare const dataColumnSidecarSSE: ContainerType<{
blockRoot: StringType<string>;
index: import("@chainsafe/ssz").UintNumberType;
slot: import("@chainsafe/ssz").UintNumberType;
kzgCommitments: ListBasicType<StringType<string>>;
}>;
type DataColumnSidecarSSE = ValueOf<typeof dataColumnSidecarSSE>;
export declare enum EventType {
/**
* The node has finished processing, resulting in a new head. previous_duty_dependent_root is
* `get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch - 1) - 1)` and
* current_duty_dependent_root is `get_block_root_at_slot(state, compute_start_slot_at_epoch(epoch) - 1)`.
* Both dependent roots use the genesis block root in the case of underflow.
*/
head = "head",
/** The node has received a block (from P2P or API) that is successfully imported on the fork-choice `on_block` handler */
block = "block",
/** The node has received a block (from P2P or API) that passes validation rules of the `beacon_block` topic */
blockGossip = "block_gossip",
/** The node has received a valid attestation (from P2P or API) */
attestation = "attestation",
/** The node has received a valid SingleAttestation (from P2P or API) */
singleAttestation = "single_attestation",
/** The node has received a valid voluntary exit (from P2P or API) */
voluntaryExit = "voluntary_exit",
/** The node has received a valid proposer slashing (from P2P or API) */
proposerSlashing = "proposer_slashing",
/** The node has received a valid attester slashing (from P2P or API) */
attesterSlashing = "attester_slashing",
/** The node has received a valid blsToExecutionChange (from P2P or API) */
blsToExecutionChange = "bls_to_execution_change",
/** Finalized checkpoint has been updated */
finalizedCheckpoint = "finalized_checkpoint",
/** The node has reorganized its chain */
chainReorg = "chain_reorg",
/** The node has received a valid sync committee SignedContributionAndProof (from P2P or API) */
contributionAndProof = "contribution_and_proof",
/** New or better optimistic header update available */
lightClientOptimisticUpdate = "light_client_optimistic_update",
/** New or better finality update available */
lightClientFinalityUpdate = "light_client_finality_update",
/** Payload attributes for block proposal */
payloadAttributes = "payload_attributes",
/** The node has received a valid BlobSidecar (from P2P or API) */
blobSidecar = "blob_sidecar",
/** The node has received a valid DataColumnSidecar (from P2P or API) */
dataColumnSidecar = "data_column_sidecar"
}
export declare const eventTypes: {
[K in EventType]: K;
};
export type EventData = {
[EventType.head]: {
slot: Slot;
block: RootHex;
state: RootHex;
epochTransition: boolean;
previousDutyDependentRoot: RootHex;
currentDutyDependentRoot: RootHex;
executionOptimistic: boolean;
};
[EventType.block]: {
slot: Slot;
block: RootHex;
executionOptimistic: boolean;
};
[EventType.blockGossip]: {
slot: Slot;
block: RootHex;
};
[EventType.attestation]: Attestation;
[EventType.singleAttestation]: electra.SingleAttestation;
[EventType.voluntaryExit]: phase0.SignedVoluntaryExit;
[EventType.proposerSlashing]: phase0.ProposerSlashing;
[EventType.attesterSlashing]: AttesterSlashing;
[EventType.blsToExecutionChange]: capella.SignedBLSToExecutionChange;
[EventType.finalizedCheckpoint]: {
block: RootHex;
state: RootHex;
epoch: Epoch;
executionOptimistic: boolean;
};
[EventType.chainReorg]: {
slot: Slot;
depth: UintNum64;
oldHeadBlock: RootHex;
newHeadBlock: RootHex;
oldHeadState: RootHex;
newHeadState: RootHex;
epoch: Epoch;
executionOptimistic: boolean;
};
[EventType.contributionAndProof]: altair.SignedContributionAndProof;
[EventType.lightClientOptimisticUpdate]: {
version: ForkName;
data: LightClientOptimisticUpdate;
};
[EventType.lightClientFinalityUpdate]: {
version: ForkName;
data: LightClientFinalityUpdate;
};
[EventType.payloadAttributes]: {
version: ForkName;
data: SSEPayloadAttributes;
};
[EventType.blobSidecar]: BlobSidecarSSE;
[EventType.dataColumnSidecar]: DataColumnSidecarSSE;
};
export type BeaconEvent = {
[K in EventType]: {
type: K;
message: EventData[K];
};
}[EventType];
type EventstreamArgs = {
/** Event types to subscribe to */
topics: EventType[];
signal: AbortSignal;
onEvent: (event: BeaconEvent) => void;
onError?: (err: Error) => void;
onClose?: () => void;
};
export type Endpoints = {
/**
* Subscribe to beacon node events
* Provides endpoint to subscribe to beacon node Server-Sent-Events stream.
* Consumers should use [eventsource](https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface)
* implementation to listen on those events.
*
* Returns if SSE stream has been opened.
*/
eventstream: Endpoint<"GET", EventstreamArgs, {
query: {
topics: EventType[];
};
}, EmptyResponseData, EmptyMeta>;
};
export declare function getDefinitions(_config: ChainForkConfig): RouteDefinitions<Endpoints>;
export type TypeJson<T> = {
toJson: (data: T) => unknown;
fromJson: (data: unknown) => T;
};
export declare function getTypeByEvent(config: ChainForkConfig): {
[K in EventType]: TypeJson<EventData[K]>;
};
export declare function getEventSerdes(config: ChainForkConfig): {
toJson: (event: BeaconEvent) => unknown;
fromJson: (type: EventType, data: unknown) => import("@chainsafe/ssz").ValueOfFields<{
message: ContainerType<{
aggregatorIndex: import("@chainsafe/ssz").UintNumberType;
contribution: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
subcommitteeIndex: import("@chainsafe/ssz").UintNumberType;
aggregationBits: import("@chainsafe/ssz").BitVectorType;
signature: import("@chainsafe/ssz").ByteVectorType;
}>;
selectionProof: import("@chainsafe/ssz").ByteVectorType;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}> | import("@chainsafe/ssz").ValueOfFields<{
message: ContainerType<{
validatorIndex: import("@chainsafe/ssz").UintNumberType;
fromBlsPubkey: import("@chainsafe/ssz").ByteVectorType;
toExecutionAddress: import("@lodestar/types").ExecutionAddressType;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}> | import("@chainsafe/ssz").ValueOfFields<{
aggregationBits: import("@chainsafe/ssz").BitListType;
data: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
index: import("@chainsafe/ssz").UintNumberType;
beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
source: ContainerType<{
epoch: import("@chainsafe/ssz").UintNumberType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
target: ContainerType<{
epoch: import("@chainsafe/ssz").UintNumberType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
committeeBits: import("@chainsafe/ssz").BitVectorType;
}> | import("@chainsafe/ssz").ValueOfFields<{
committeeIndex: import("@chainsafe/ssz").UintNumberType;
attesterIndex: import("@chainsafe/ssz").UintNumberType;
data: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
index: import("@chainsafe/ssz").UintNumberType;
beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
source: ContainerType<{
epoch: import("@chainsafe/ssz").UintNumberType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
target: ContainerType<{
epoch: import("@chainsafe/ssz").UintNumberType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}> | import("@chainsafe/ssz").ValueOfFields<{
attestation1: ContainerType<{
attestingIndices: ListBasicType<import("@chainsafe/ssz").UintNumberType>;
data: ContainerType<{
slot: import("@chainsafe/ssz").UintBigintType;
index: import("@chainsafe/ssz").UintBigintType;
beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
source: ContainerType<{
epoch: import("@chainsafe/ssz").UintBigintType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
target: ContainerType<{
epoch: import("@chainsafe/ssz").UintBigintType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}>;
attestation2: ContainerType<{
attestingIndices: ListBasicType<import("@chainsafe/ssz").UintNumberType>;
data: ContainerType<{
slot: import("@chainsafe/ssz").UintBigintType;
index: import("@chainsafe/ssz").UintBigintType;
beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
source: ContainerType<{
epoch: import("@chainsafe/ssz").UintBigintType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
target: ContainerType<{
epoch: import("@chainsafe/ssz").UintBigintType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}>;
}> | import("@chainsafe/ssz").ValueOfFields<{
aggregationBits: import("@chainsafe/ssz").BitListType;
data: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
index: import("@chainsafe/ssz").UintNumberType;
beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
source: ContainerType<{
epoch: import("@chainsafe/ssz").UintNumberType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
target: ContainerType<{
epoch: import("@chainsafe/ssz").UintNumberType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}> | import("@chainsafe/ssz").ValueOfFields<{
attestation1: ContainerType<{
attestingIndices: ListBasicType<import("@chainsafe/ssz").UintNumberType>;
data: ContainerType<{
slot: import("@chainsafe/ssz").UintBigintType;
index: import("@chainsafe/ssz").UintBigintType;
beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
source: ContainerType<{
epoch: import("@chainsafe/ssz").UintBigintType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
target: ContainerType<{
epoch: import("@chainsafe/ssz").UintBigintType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}>;
attestation2: ContainerType<{
attestingIndices: ListBasicType<import("@chainsafe/ssz").UintNumberType>;
data: ContainerType<{
slot: import("@chainsafe/ssz").UintBigintType;
index: import("@chainsafe/ssz").UintBigintType;
beaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
source: ContainerType<{
epoch: import("@chainsafe/ssz").UintBigintType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
target: ContainerType<{
epoch: import("@chainsafe/ssz").UintBigintType;
root: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}>;
}> | import("@chainsafe/ssz").ValueOfFields<{
signedHeader1: ContainerType<{
message: ContainerType<{
slot: import("@chainsafe/ssz").UintBigintType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}>;
signedHeader2: ContainerType<{
message: ContainerType<{
slot: import("@chainsafe/ssz").UintBigintType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}>;
}> | import("@chainsafe/ssz").ValueOfFields<{
message: ContainerType<{
epoch: import("@chainsafe/ssz").UintNumberType;
validatorIndex: import("@chainsafe/ssz").UintNumberType;
}>;
signature: import("@chainsafe/ssz").ByteVectorType;
}> | import("@chainsafe/ssz").ValueOfFields<{
blockRoot: StringType<string>;
index: import("@chainsafe/ssz").UintNumberType;
slot: import("@chainsafe/ssz").UintNumberType;
kzgCommitment: StringType<string>;
versionedHash: StringType<string>;
}> | import("@chainsafe/ssz").ValueOfFields<{
blockRoot: StringType<string>;
index: import("@chainsafe/ssz").UintNumberType;
slot: import("@chainsafe/ssz").UintNumberType;
kzgCommitments: ListBasicType<StringType<string>>;
}> | {
slot: number;
block: string;
state: string;
epochTransition: boolean;
previousDutyDependentRoot: string;
currentDutyDependentRoot: string;
executionOptimistic: boolean;
} | {
slot: number;
block: string;
executionOptimistic: boolean;
} | {
slot: number;
block: string;
} | {
block: string;
state: string;
epoch: number;
executionOptimistic: boolean;
} | {
slot: number;
depth: number;
oldHeadBlock: string;
newHeadBlock: string;
oldHeadState: string;
newHeadState: string;
epoch: number;
executionOptimistic: boolean;
} | {
version: ForkName;
data: import("@chainsafe/ssz").ValueOfFields<{
attestedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
syncAggregate: ContainerType<{
syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
}>;
signatureSlot: import("@chainsafe/ssz").UintNumberType;
}> | import("@chainsafe/ssz").ValueOfFields<{
attestedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
syncAggregate: ContainerType<{
syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
}>;
signatureSlot: import("@chainsafe/ssz").UintNumberType;
}> | import("@chainsafe/ssz").ValueOfFields<{
attestedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
blobGasUsed: import("@chainsafe/ssz").UintBigintType;
excessBlobGas: import("@chainsafe/ssz").UintBigintType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
syncAggregate: ContainerType<{
syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
}>;
signatureSlot: import("@chainsafe/ssz").UintNumberType;
}> | import("@chainsafe/ssz").ValueOfFields<{
attestedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
blobGasUsed: import("@chainsafe/ssz").UintBigintType;
excessBlobGas: import("@chainsafe/ssz").UintBigintType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
syncAggregate: ContainerType<{
syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
}>;
signatureSlot: import("@chainsafe/ssz").UintNumberType;
}>;
} | {
version: ForkName;
data: import("@chainsafe/ssz").ValueOfFields<{
attestedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
finalizedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
finalityBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
syncAggregate: ContainerType<{
syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
}>;
signatureSlot: import("@chainsafe/ssz").UintNumberType;
}> | import("@chainsafe/ssz").ValueOfFields<{
attestedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
finalizedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
finalityBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
syncAggregate: ContainerType<{
syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
}>;
signatureSlot: import("@chainsafe/ssz").UintNumberType;
}> | import("@chainsafe/ssz").ValueOfFields<{
attestedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
blobGasUsed: import("@chainsafe/ssz").UintBigintType;
excessBlobGas: import("@chainsafe/ssz").UintBigintType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
finalizedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
blobGasUsed: import("@chainsafe/ssz").UintBigintType;
excessBlobGas: import("@chainsafe/ssz").UintBigintType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
finalityBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
syncAggregate: ContainerType<{
syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
}>;
signatureSlot: import("@chainsafe/ssz").UintNumberType;
}> | import("@chainsafe/ssz").ValueOfFields<{
attestedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
blobGasUsed: import("@chainsafe/ssz").UintBigintType;
excessBlobGas: import("@chainsafe/ssz").UintBigintType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
finalizedHeader: ContainerType<{
beacon: ContainerType<{
slot: import("@chainsafe/ssz").UintNumberType;
proposerIndex: import("@chainsafe/ssz").UintNumberType;
parentRoot: import("@chainsafe/ssz").ByteVectorType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
bodyRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
execution: ContainerType<{
parentHash: import("@chainsafe/ssz").ByteVectorType;
feeRecipient: import("@lodestar/types").ExecutionAddressType;
stateRoot: import("@chainsafe/ssz").ByteVectorType;
receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
logsBloom: import("@chainsafe/ssz").ByteVectorType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
blockNumber: import("@chainsafe/ssz").UintNumberType;
gasLimit: import("@chainsafe/ssz").UintNumberType;
gasUsed: import("@chainsafe/ssz").UintNumberType;
timestamp: import("@chainsafe/ssz").UintNumberType;
extraData: import("@chainsafe/ssz").ByteListType;
baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
blockHash: import("@chainsafe/ssz").ByteVectorType;
transactionsRoot: import("@chainsafe/ssz").ByteVectorType;
withdrawalsRoot: import("@chainsafe/ssz").ByteVectorType;
blobGasUsed: import("@chainsafe/ssz").UintBigintType;
excessBlobGas: import("@chainsafe/ssz").UintBigintType;
}>;
executionBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
}>;
finalityBranch: import("@chainsafe/ssz").VectorCompositeType<import("@chainsafe/ssz").ByteVectorType>;
syncAggregate: ContainerType<{
syncCommitteeBits: import("@chainsafe/ssz").BitVectorType;
syncCommitteeSignature: import("@chainsafe/ssz").ByteVectorType;
}>;
signatureSlot: import("@chainsafe/ssz").UintNumberType;
}>;
} | {
version: ForkName;
data: import("@chainsafe/ssz").ValueOfFields<{
proposerIndex: import("@chainsafe/ssz").UintNumberType;
proposalSlot: import("@chainsafe/ssz").UintNumberType;
parentBlockNumber: import("@chainsafe/ssz").UintNumberType;
parentBlockRoot: import("@chainsafe/ssz").ByteVectorType;
parentBlockHash: import("@chainsafe/ssz").ByteVectorType;
payloadAttributes: ContainerType<{
timestamp: import("@chainsafe/ssz").UintNumberType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
suggestedFeeRecipient: StringType<string>;
}>;
}> | import("@chainsafe/ssz").ValueOfFields<{
proposerIndex: import("@chainsafe/ssz").UintNumberType;
proposalSlot: import("@chainsafe/ssz").UintNumberType;
parentBlockNumber: import("@chainsafe/ssz").UintNumberType;
parentBlockRoot: import("@chainsafe/ssz").ByteVectorType;
parentBlockHash: import("@chainsafe/ssz").ByteVectorType;
payloadAttributes: ContainerType<{
timestamp: import("@chainsafe/ssz").UintNumberType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
suggestedFeeRecipient: StringType<string>;
withdrawals: import("@chainsafe/ssz").ListCompositeType<ContainerType<{
index: import("@chainsafe/ssz").UintNumberType;
validatorIndex: import("@chainsafe/ssz").UintNumberType;
address: import("@lodestar/types").ExecutionAddressType;
amount: import("@chainsafe/ssz").UintBigintType;
}>>;
}>;
}> | import("@chainsafe/ssz").ValueOfFields<{
proposerIndex: import("@chainsafe/ssz").UintNumberType;
proposalSlot: import("@chainsafe/ssz").UintNumberType;
parentBlockNumber: import("@chainsafe/ssz").UintNumberType;
parentBlockRoot: import("@chainsafe/ssz").ByteVectorType;
parentBlockHash: import("@chainsafe/ssz").ByteVectorType;
payloadAttributes: ContainerType<{
timestamp: import("@chainsafe/ssz").UintNumberType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
suggestedFeeRecipient: StringType<string>;
withdrawals: import("@chainsafe/ssz").ListCompositeType<ContainerType<{
index: import("@chainsafe/ssz").UintNumberType;
validatorIndex: import("@chainsafe/ssz").UintNumberType;
address: import("@lodestar/types").ExecutionAddressType;
amount: import("@chainsafe/ssz").UintBigintType;
}>>;
parentBeaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
}> | import("@chainsafe/ssz").ValueOfFields<{
proposerIndex: import("@chainsafe/ssz").UintNumberType;
proposalSlot: import("@chainsafe/ssz").UintNumberType;
parentBlockNumber: import("@chainsafe/ssz").UintNumberType;
parentBlockRoot: import("@chainsafe/ssz").ByteVectorType;
parentBlockHash: import("@chainsafe/ssz").ByteVectorType;
payloadAttributes: ContainerType<{
timestamp: import("@chainsafe/ssz").UintNumberType;
prevRandao: import("@chainsafe/ssz").ByteVectorType;
suggestedFeeRecipient: StringType<string>;
withdrawals: import("@chainsafe/ssz").ListCompositeType<ContainerType<{
index: import("@chainsafe/ssz").UintNumberType;
validatorIndex: import("@chainsafe/ssz").UintNumberType;
address: import("@lodestar/types").ExecutionAddressType;
amount: import("@chainsafe/ssz").UintBigintType;
}>>;
parentBeaconBlockRoot: import("@chainsafe/ssz").ByteVectorType;
}>;
}>;
};
};
export {};
//# sourceMappingURL=events.d.ts.map