mirror of
https://github.com/zama-ai/fhevm-solidity.git
synced 2026-01-09 12:37:59 -05:00
85 lines
2.0 KiB
TypeScript
85 lines
2.0 KiB
TypeScript
import "./tasks/accounts";
|
|
import "./tasks/mint";
|
|
import "./tasks/taskDeploy";
|
|
import "@nomicfoundation/hardhat-toolbox";
|
|
import { config as dotenvConfig } from "dotenv";
|
|
import "hardhat-deploy";
|
|
import type { HardhatUserConfig } from "hardhat/config";
|
|
import type { NetworkUserConfig } from "hardhat/types";
|
|
import { resolve } from "path";
|
|
|
|
const dotenvConfigPath: string = process.env.DOTENV_CONFIG_PATH || "./.env";
|
|
dotenvConfig({ path: resolve(__dirname, dotenvConfigPath) });
|
|
|
|
// Ensure that we have all the environment variables we need.
|
|
const mnemonic: string | undefined = process.env.MNEMONIC;
|
|
if (!mnemonic) {
|
|
throw new Error("Please set your MNEMONIC in a .env file");
|
|
}
|
|
|
|
const chainIds = {
|
|
zama: 8009,
|
|
};
|
|
|
|
function getChainConfig(chain: keyof typeof chainIds): NetworkUserConfig {
|
|
let jsonRpcUrl: string;
|
|
switch (chain) {
|
|
case "zama":
|
|
jsonRpcUrl = "https://devnet.zama.ai";
|
|
break;
|
|
}
|
|
return {
|
|
accounts: {
|
|
count: 10,
|
|
mnemonic,
|
|
path: "m/44'/60'/0'/0",
|
|
},
|
|
chainId: chainIds[chain],
|
|
url: jsonRpcUrl,
|
|
};
|
|
}
|
|
|
|
const config: HardhatUserConfig = {
|
|
defaultNetwork: "zama",
|
|
namedAccounts: {
|
|
deployer: 0,
|
|
},
|
|
gasReporter: {
|
|
currency: "USD",
|
|
enabled: process.env.REPORT_GAS ? true : false,
|
|
excludeContracts: [],
|
|
src: "./contracts",
|
|
},
|
|
networks: {
|
|
zama: getChainConfig("zama"),
|
|
},
|
|
paths: {
|
|
artifacts: "./artifacts",
|
|
cache: "./cache",
|
|
sources: "./contracts",
|
|
tests: "./test",
|
|
},
|
|
solidity: {
|
|
version: "0.8.17",
|
|
settings: {
|
|
metadata: {
|
|
// Not including the metadata hash
|
|
// https://github.com/paulrberg/hardhat-template/issues/31
|
|
bytecodeHash: "none",
|
|
},
|
|
// Disable the optimizer when debugging
|
|
// https://hardhat.org/hardhat-network/#solidity-optimizer-support
|
|
optimizer: {
|
|
enabled: true,
|
|
runs: 800,
|
|
},
|
|
},
|
|
},
|
|
typechain: {
|
|
outDir: "types",
|
|
target: "ethers-v6",
|
|
},
|
|
};
|
|
|
|
export default config;
|