@lodestar/prover
Version:
A Typescript implementation of the Ethereum Consensus light client
44 lines • 1.63 kB
TypeScript
import { BlockHeader } from "@ethereumjs/block";
import { RunTxResult, VM } from "@ethereumjs/vm";
import { NetworkName } from "@lodestar/config/networks";
import { ExecutionPayload } from "@lodestar/types";
import { Logger } from "@lodestar/utils";
import { ProofProvider } from "../proof_provider/proof_provider.js";
import { ELBlock, ELProof, ELTransaction } from "../types.js";
import { ELRpcProvider } from "./rpc_provider.js";
export declare function createVM({ proofProvider }: {
proofProvider: ProofProvider;
}): Promise<VM>;
export declare function getVMWithState({ rpc, executionPayload, tx, vm, logger }: {
rpc: ELRpcProvider;
vm: VM;
executionPayload: ExecutionPayload;
tx: ELTransaction;
logger: Logger;
}): Promise<VM>;
type VMState = Record<string, {
code: string;
proof: ELProof;
}>;
export declare function updateVMWithState({ vm, state }: {
logger: Logger;
state: VMState;
vm: VM;
}): Promise<VM>;
export declare function executeVMCall({ rpc, tx, vm, executionPayload, network }: {
rpc: ELRpcProvider;
tx: ELTransaction;
vm: VM;
executionPayload: ExecutionPayload;
network: NetworkName;
}): Promise<RunTxResult["execResult"]>;
export declare function executeVMTx({ rpc, tx, vm, executionPayload, network }: {
rpc: ELRpcProvider;
tx: ELTransaction;
vm: VM;
executionPayload: ExecutionPayload;
network: NetworkName;
}): Promise<RunTxResult>;
export declare function getVMBlockHeaderFromELBlock(block: ELBlock, executionPayload: ExecutionPayload, network: NetworkName): BlockHeader;
export {};
//# sourceMappingURL=evm.d.ts.map