hardhat-tracer
Version:
Hardhat Tracer plugin
54 lines • 2.39 kB
TypeScript
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { MinimalEthereumJsVm } from "hardhat/internal/hardhat-network/provider/vm/minimal-vm";
import { EdrProviderWrapper } from "hardhat/internal/hardhat-network/provider/provider";
import { MinimalExecResult } from "hardhat/internal/hardhat-network/provider/vm/types";
export declare function getVMFromBaseProvider(provider: EdrProviderWrapper): Promise<MinimalEthereumJsVm>;
/**
* Finds the "base" Ethereum provider of the current hardhat environment.
*
* Basically, hardhat uses a system of nested providers where each provider wraps the next and
* "provides" some extra features. When you're running on top of the "hardhat evm" the bottom of
* this series of providers is the "HardhatNetworkProvider":
* https://github.com/nomiclabs/hardhat/blob/master/packages/hardhat-core/src/internal/hardhat-network/provider/provider.ts
* This object has direct access to the node (provider._node), which in turn has direct access to
* the vm instance (provider._node._vm). So it's quite useful to be able to find this
* object reliably!
*
* Credits: this code adapted from smock.
*
* @param hre hardhat runtime environment to pull the base provider from.
* @return base hardhat network provider
*/
export declare const getHardhatBaseProvider: (runtime: HardhatRuntimeEnvironment) => Promise<EdrProviderWrapper>;
/**
* Parses the result of an execution to be usable easily.
* @param execResult
* @returns Parsed exec result
*/
export declare function parseExec(execResult: MinimalExecResult): {
reason: import("@nomicfoundation/edr").SuccessReason | import("@nomicfoundation/edr").ExceptionalHalt | undefined;
success: boolean;
isStop: boolean;
isReturn: boolean;
isSelfDestruct: boolean;
isRevert: boolean;
isException: boolean;
isOutOfGas: boolean;
isOpcodeNotFound: boolean;
isInvalidFEOpcode: boolean;
isInvalidJump: boolean;
isNotActivated: boolean;
isStackUnderflow: boolean;
isStackOverflow: boolean;
isOutOfOffset: boolean;
isCreateCollision: boolean;
isPrecompileError: boolean;
isNonceOverflow: boolean;
isCreateContractSizeLimit: boolean;
isCreateContractStartingWithEF: boolean;
isCreateInitCodeSizeLimit: boolean;
successStr: string;
errorStr: string;
reasonStr: string;
};
//# sourceMappingURL=hardhat.d.ts.map