@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
40 lines • 1.81 kB
TypeScript
import { ChainConfig } from "@lodestar/config";
import { Logger } from "@lodestar/logger";
import { phase0 } from "@lodestar/types";
import { Eth1Block, Eth1ProviderState, IEth1Provider } from "../interface.js";
import { EthJsonRpcBlockRaw } from "../interface.js";
import { Eth1Options } from "../options.js";
import { JsonRpcHttpClientMetrics } from "./jsonRpcHttpClient.js";
export declare class Eth1Provider implements IEth1Provider {
readonly deployBlock: number;
private readonly depositContractAddress;
private readonly rpc;
private state;
private logger?;
constructor(config: Pick<ChainConfig, "DEPOSIT_CONTRACT_ADDRESS">, opts: Pick<Eth1Options, "depositContractDeployBlock" | "providerUrls" | "jwtSecretHex" | "jwtId" | "jwtVersion"> & {
logger?: Logger;
}, signal?: AbortSignal, metrics?: JsonRpcHttpClientMetrics | null);
getState(): Eth1ProviderState;
validateContract(): Promise<void>;
getDepositEvents(fromBlock: number, toBlock: number): Promise<phase0.DepositEvent[]>;
/**
* Fetches an arbitrary array of block numbers in batch
*/
getBlocksByNumber(fromBlock: number, toBlock: number): Promise<EthJsonRpcBlockRaw[]>;
getBlockByNumber(blockNumber: number | "latest"): Promise<EthJsonRpcBlockRaw | null>;
getBlockByHash(blockHashHex: string): Promise<EthJsonRpcBlockRaw | null>;
getBlockNumber(): Promise<number>;
getCode(address: string): Promise<string>;
getLogs(options: {
fromBlock: number;
toBlock: number;
address: string;
topics: string[];
}): Promise<{
blockNumber: number;
data: string;
topics: string[];
}[]>;
}
export declare function parseEth1Block(blockRaw: EthJsonRpcBlockRaw): Eth1Block;
//# sourceMappingURL=eth1Provider.d.ts.map