diff --git a/packages/plugin/src/MultichainHardhatRuntimeEnvironmentField.ts b/packages/plugin/src/MultichainHardhatRuntimeEnvironmentField.ts index d7f109d..d281f41 100644 --- a/packages/plugin/src/MultichainHardhatRuntimeEnvironmentField.ts +++ b/packages/plugin/src/MultichainHardhatRuntimeEnvironmentField.ts @@ -10,14 +10,14 @@ import { vars } from "hardhat/config"; import { getConfigEnvironmentVariable, getNetworkChainId, - mapNetworkArgs, sumedFees, + mapNetworkArgs, } from "./utils"; import { AdapterABI } from "./adapterABI"; import { DeployOptions, NetworkArguments } from "./types"; export class MultichainHardhatRuntimeEnvironmentField { - private isValidated: boolean = false; + private isInitiated: boolean = false; private domains: Domain[] = []; private readonly web3: Web3 | null; @@ -34,7 +34,7 @@ export class MultichainHardhatRuntimeEnvironmentField { //current Sygma hardcoded gasLimit private gasLimit = 1000000; - private async validateConfig(): Promise { + private async initConfig(): Promise { const originChainId = await getNetworkChainId( this.hre.network.name, this.hre @@ -46,7 +46,7 @@ export class MultichainHardhatRuntimeEnvironmentField { this.domains = config.getDomains(); - this.isValidated; + this.isInitiated; } /** @@ -79,7 +79,7 @@ export class MultichainHardhatRuntimeEnvironmentField { networkArgs: NetworkArguments, options?: DeployOptions ): Promise { - if (!this.isValidated) await this.validateConfig(); + if (!this.isInitiated) await this.initConfig(); if (!this.web3) return; //optional params diff --git a/packages/plugin/src/types.ts b/packages/plugin/src/types.ts index a3f5dda..339871f 100644 --- a/packages/plugin/src/types.ts +++ b/packages/plugin/src/types.ts @@ -6,16 +6,24 @@ import { NonPayableCallOptions, } from "web3"; -export interface NetworkArguments { - [network: string]: { - args?: ContractConstructorArgs; +export type DeploymentNetwork = + | "ethereum" + | "sepolia" + | "mumbai" + | "goerli" + | "holesky" + | string; + +export type NetworkArguments = { + [network in DeploymentNetwork]: { + args: ContractConstructorArgs; initData?: { initMethodName: keyof ContractMethods; //impossible to type unless we do something like this.getInitMethod(artifact, methodName).encode(args); initMethodArgs: unknown[]; }; }; -} +}; export interface DeployOptions { salt?: MatchPrimitiveType<"bytes32", unknown>; diff --git a/packages/plugin/src/utils.ts b/packages/plugin/src/utils.ts index f0716b8..e8b3413 100644 --- a/packages/plugin/src/utils.ts +++ b/packages/plugin/src/utils.ts @@ -90,12 +90,7 @@ export function mapNetworkArgs( else { throw new HardhatPluginError( "@chainsafe/hardhat-plugin-multichain-deploy", - `Unavailable Networks in networkArgs: The following network ${networkName} is not supported as destination network. - Available networks: ${domains - .map((domain): string => `${domain.name}`) - .join(", ") - .replace(/, ([^,]*)$/, "")}\n - ` + `Unavailable Networks in networkArgs: The following network ${networkName} is not supported as destination network.` ); }