import { ChainConfig } from "@lodestar/config"; import { NetworkName } from "@lodestar/config/networks"; import { LogLevel, Logger } from "@lodestar/utils"; import { ProofProvider } from "./proof_provider/proof_provider.js"; import { JsonRpcRequest, JsonRpcRequestOrBatch, JsonRpcResponse, JsonRpcResponseOrBatch } from "./types.js"; import { ELRpcProvider } from "./utils/rpc_provider.js"; export type { NetworkName } from "@lodestar/config/networks"; export declare enum LCTransport { Rest = "Rest", P2P = "P2P" } export type NetworkOrConfig = { network: NetworkName; config?: never; } | { network?: never; config: Partial; }; export type RootProviderInitOptions = ConsensusNodeOptions & NetworkOrConfig & { signal: AbortSignal; logger: Logger; wsCheckpoint?: string; unverifiedWhitelist?: string[]; }; export type ELRequestHandler = (payload: JsonRpcRequestOrBatch) => Promise | undefined>; export type ELRequestHandlerAny = ELRequestHandler; /** * @deprecated Kept for backward compatibility. Use `AnyWeb3Provider` type instead. */ export type Web3Provider = object; export type ELVerifiedRequestHandlerOpts = { payload: JsonRpcRequest; rpc: ELRpcProvider; proofProvider: ProofProvider; logger: Logger; }; export type ELVerifiedRequestHandler = (opts: ELVerifiedRequestHandlerOpts) => Promise>; export type LogOptions = { logger?: Logger; logLevel?: never; } | { logLevel?: LogLevel; logger?: never; }; export type ConsensusNodeOptions = { transport: LCTransport.Rest; urls: string[]; } | { transport: LCTransport.P2P; bootnodes: string[]; }; export type RootProviderOptions = { signal?: AbortSignal; wsCheckpoint?: string; unverifiedWhitelist?: string[]; }; export type ProviderTypeOptions = { /** * If user specify custom provider types we will register those at the start in given order. * So if you provider [custom1, custom2] and we already have [web3js, ethers] then final order * of providers will be [custom1, custom2, web3js, ethers] */ providerTypes?: Web3ProviderType[]; /** * To keep the backward compatible behavior if this option is not set we consider `true` as default. * In coming breaking release we may set this option default to `false`. */ mutateProvider?: T; }; export type VerifiedExecutionInitOptions = LogOptions & ConsensusNodeOptions & NetworkOrConfig & RootProviderOptions & ProviderTypeOptions; export type AnyWeb3Provider = object; export interface Web3ProviderType { name: string; matched: (provider: AnyWeb3Provider) => provider is T; handler(provider: T): ELRpcProvider["handler"]; mutateProvider(provider: T, newHandler: ELRpcProvider["handler"]): void; } //# sourceMappingURL=interfaces.d.ts.map