hardhat
Version:
Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.
55 lines • 3.5 kB
TypeScript
import type { EdrNetworkAccountConfig, EdrNetworkAccountsConfig, ChainDescriptorsConfig, EdrNetworkConfig, EdrNetworkForkingConfig, EdrNetworkMempoolConfig, EdrNetworkMiningConfig } from "../../../../../types/config.js";
import type { ChainType } from "../../../../../types/network.js";
import type { GasMeasurement } from "../../../gas-analytics/types.js";
import type { OpHardforkName } from "../types/hardfork.js";
import type { IntervalRange, ChainOverride, ForkConfig, GasReport, L1Hardfork, OpHardfork } from "@nomicfoundation/edr";
import { GasEstimationMode, MineOrdering } from "@nomicfoundation/edr";
import { L1HardforkName } from "../types/hardfork.js";
/**
* Returns Hardhat's name for an EDR hardfork.
*/
export declare function edrL1HardforkToHardhatL1HardforkName(hardfork: L1Hardfork): L1HardforkName;
/**
* Returns Hardhat's name for an EDR OP hardfork. See
* {@link edrL1HardforkToHardhatL1HardforkName}.
*/
export declare function edrOpHardforkToHardhatOpHardforkName(hardfork: OpHardfork): OpHardforkName;
export declare function hardhatMiningIntervalToEdrMiningInterval(config: EdrNetworkMiningConfig["interval"]): bigint | IntervalRange | undefined;
export declare function hardhatMempoolOrderToEdrMineOrdering(mempoolOrder: EdrNetworkMempoolConfig["order"]): MineOrdering;
export declare function hardhatGasEstimationModeToEdrGasEstimationMode(gasEstimationMode: EdrNetworkConfig["gasEstimationMode"]): GasEstimationMode;
export declare function hardhatAccountsToEdrOwnedAccounts(accounts: EdrNetworkAccountsConfig): Promise<Array<{
secretKey: string;
balance: bigint;
}>>;
export declare function normalizeEdrNetworkAccountsConfig(accounts: EdrNetworkAccountsConfig): Promise<EdrNetworkAccountConfig[]>;
export declare function hardhatChainDescriptorsToEdrChainOverrides(chainDescriptors: ChainDescriptorsConfig, chainType: ChainType): ChainOverride[];
export declare function hardhatForkingConfigToEdrForkConfig(forkingConfig: EdrNetworkForkingConfig | undefined, chainDescriptors: ChainDescriptorsConfig, chainType: ChainType): Promise<ForkConfig | undefined>;
/**
* Resolves the default transaction gas limit used by RPC call and
* transaction requests that omit a `gas` field. This includes
* `eth_estimateGas`: when the request doesn't specify `gas`, EDR uses this
* value as the upper bound of the estimation, so it should be the most gas a
* transaction can use.
*
* From L1's Amsterdam hardfork onwards, EIP-8037 limits `transactionGasCap`
* to execution gas, and a transaction can use up to the minimum of the block
* gas limit or 2^32 - 1, no matter what `transactionGasCap` is.
*
* Before Amsterdam, when `transactionGasCap` is a bigint, that value wins.
* When it is `false`, the per-transaction cap is disabled and the block gas
* limit is used. When it is undefined, the hardfork-specific default applies:
* from L1's Osaka hardfork onwards, the EIP-7825 transaction gas cap of
* 16,777,216; otherwise the block gas limit.
*/
export declare function resolveDefaultTransactionGasLimit(params: {
chainType: ChainType;
hardfork: string;
blockGasLimit: bigint;
transactionGasCap: bigint | false | undefined;
}): bigint;
/**
* Converts EDR's nested GasReport structure into a flat array of gas entries.
* Filters out reverted transactions.
*/
export declare function edrGasReportToHardhatGasMeasurements(gasReport: GasReport, excludedContractFqns?: string[]): GasMeasurement[];
//# sourceMappingURL=convert-to-edr.d.ts.map