@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
55 lines • 2.88 kB
TypeScript
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