UNPKG

@lodestar/beacon-node

Version:

A Typescript implementation of the beacon chain

55 lines 2.88 kB
import { ApiClient as BuilderApi } from "@lodestar/api/builder"; import { ChainForkConfig } from "@lodestar/config"; import { Logger } from "@lodestar/logger"; import { ForkPostBellatrix } from "@lodestar/params"; import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root, SignedBeaconBlockOrContents, SignedBlindedBeaconBlock, Slot, Wei, WithOptionalBytes, bellatrix, deneb, electra } from "@lodestar/types"; import { Metrics } from "../../metrics/metrics.js"; import { ValidatorRegistration, ValidatorRegistrationCache } from "./cache.js"; import { IExecutionBuilder } from "./interface.js"; export type ExecutionBuilderHttpOpts = { enabled: boolean; url: string; timeout?: number; faultInspectionWindow?: number; allowedFaults?: number; issueLocalFcUWithFeeRecipient?: string; userAgent?: string; }; export declare const defaultExecutionBuilderHttpOpts: ExecutionBuilderHttpOpts; /** * Expected error if builder does not provide a bid. Most of the time, this * is due to `min-bid` setting on the mev-boost side but in rare cases could * also happen if there are no bids from any of the connected relayers. */ export declare class NoBidReceived extends Error { constructor(); } export declare class ExecutionBuilderHttp implements IExecutionBuilder { readonly api: BuilderApi; readonly config: ChainForkConfig; readonly registrations: ValidatorRegistrationCache; readonly issueLocalFcUWithFeeRecipient?: string; status: boolean; faultInspectionWindow: number; allowedFaults: number; /** * Determine if SSZ is supported by requesting an SSZ encoded response in the `getHeader` request. * The builder responding with a SSZ serialized `SignedBuilderBid` indicates support to handle the * `SignedBlindedBeaconBlock` as SSZ serialized bytes instead of JSON when calling `submitBlindedBlock`. */ private sszSupported; constructor(opts: ExecutionBuilderHttpOpts, config: ChainForkConfig, metrics?: Metrics | null, logger?: Logger); updateStatus(shouldEnable: boolean): void; checkStatus(): Promise<void>; registerValidator(epoch: Epoch, registrations: bellatrix.SignedValidatorRegistrationV1[]): Promise<void>; getValidatorRegistration(pubkey: BLSPubkey): ValidatorRegistration | undefined; getHeader(_fork: ForkPostBellatrix, slot: Slot, parentHash: Root, proposerPubkey: BLSPubkey): Promise<{ header: ExecutionPayloadHeader; executionPayloadValue: Wei; blobKzgCommitments?: deneb.BlobKzgCommitments; executionRequests?: electra.ExecutionRequests; }>; submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<SignedBeaconBlockOrContents>; submitBlindedBlockNoResponse(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<void>; } //# sourceMappingURL=http.d.ts.map