hardhat
Version:
Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.
42 lines (36 loc) • 1.1 kB
text/typescript
import type { HardhatRuntimeEnvironment } from "../types/hre.js";
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
let hre: HardhatRuntimeEnvironment | undefined;
/**
* This function returns a global instance of the Hardhat Runtime Environment
* if it was already initialized.
*
* It exists so that the CLI and the programmatic API (as in `import "hardhat"`)
* are always using the same HRE instance.
*/
export function getGlobalHardhatRuntimeEnvironment():
| HardhatRuntimeEnvironment
| undefined {
return hre;
}
/**
* Sets the global instance of the Hardhat Runtime Environment.
*/
export function setGlobalHardhatRuntimeEnvironment(
newHre: HardhatRuntimeEnvironment,
): void {
assertHardhatInvariant(
hre === undefined,
"The global instances of the HRE is already set",
);
hre = newHre;
}
/**
* This function resets the global instance of the Hardhat Runtime Environment,
* so that it can be reinitialized.
*
* It should be used only in tests.
*/
export function resetGlobalHardhatRuntimeEnvironment(): void {
hre = undefined;
}