hardhat
Version:
Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.
37 lines (30 loc) • 1.17 kB
text/typescript
import type { HardhatRuntimeEnvironmentHooks } from "../../../../types/hooks.js";
import type { NetworkManager } from "../../../../types/network.js";
import { DEFAULT_NETWORK_NAME } from "../../../constants.js";
export default async (): Promise<Partial<HardhatRuntimeEnvironmentHooks>> => ({
created: async (context, hre) => {
let networkManager: NetworkManager | undefined;
const userConfigNetworks = hre.userConfig.networks;
hre.network = {
async connect(networkConnectionParams) {
const { NetworkManagerImplementation } = await import(
"../network-manager.js"
);
if (networkManager === undefined) {
networkManager = new NetworkManagerImplementation(
hre.globalOptions.network !== undefined
? hre.globalOptions.network
: DEFAULT_NETWORK_NAME,
hre.config.defaultChainType,
hre.config.networks,
context.hooks,
context.artifacts,
userConfigNetworks,
hre.config.chainDescriptors,
);
}
return networkManager.connect(networkConnectionParams);
},
};
},
});