hardhat-deploy
Version:
Hardhat plugin for replicable smart contract deployments and easy testing across multiple EVM chains, with support for proxies, diamonds, named accounts, and deployment fixtures
38 lines • 1.65 kB
JavaScript
import { loadAndExecuteDeploymentsFromFiles } from '@rocketh/node';
import { generateForkConfig } from '../helpers.js';
import { setupLogger } from 'named-logs-console';
import { HardhatPluginError } from 'hardhat/plugins';
const runScriptWithHardhat = async (args, hre) => {
let saveDeployments = true;
let skipPrompts = args.skipPrompts ? true : false;
const { connection, environment, isFork, provider } = await generateForkConfig({ hre });
const isMemoryNetwork = connection.networkConfig.type == 'edr-simulated';
if (isMemoryNetwork) {
skipPrompts = true;
saveDeployments = false;
}
if (args.saveDeployments) {
saveDeployments = args.saveDeployments == 'true' ? true : false;
}
const tags = args.tags && args.tags != '' ? args.tags : undefined;
setupLogger(['rocketh', '@rocketh/node'], {
enabled: true,
level: 3,
});
const defaultPollingInterval = args.pollingInterval ? parseInt(args.pollingInterval) : undefined;
if (defaultPollingInterval !== undefined && isNaN(defaultPollingInterval)) {
throw new HardhatPluginError('hardhat-deploy', `invalid pollingInterval value : ${args.pollingInterval}`);
}
await loadAndExecuteDeploymentsFromFiles({
provider,
environment: environment,
saveDeployments: isFork ? false : saveDeployments,
askBeforeProceeding: skipPrompts ? false : true,
tags: tags?.split(','),
defaultPollingInterval,
reportGasUse: args.reportGasUsed,
extra: { connection },
});
};
export default runScriptWithHardhat;
//# sourceMappingURL=deploy.js.map