base-10grans/hardhat.config.ts

62 lines
1.5 KiB
TypeScript

import { config as dotenvConfig } from "dotenv";
import { resolve } from "path";
import type { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox-viem";
import { env } from "./lib/common";
import "./tasks/test";
[
`.env.${process.env.APP_ENV}.contracts`,
`.env.${process.env.APP_ENV}.data`,
`.env.${process.env.APP_ENV}`
]
.forEach((dotenvConfigPath) => {
const path = resolve(__dirname, dotenvConfigPath);
dotenvConfig({ path, override: true })
});
const TEST_MNEMONIC = "test test test test test test test test test test test junk";
const LOCAL_NODE_URL = "http://127.0.0.1:8545";
const config: HardhatUserConfig = {
solidity: "0.8.28",
networks: {
localhost: {
url: LOCAL_NODE_URL,
chainId: 31337,
accounts: {
mnemonic: process.env.MNEMONIC || TEST_MNEMONIC
}
},
mainnet: {
url: env("MAINNET_RPC_URL", LOCAL_NODE_URL),
accounts: {
mnemonic: env("MNEMONIC", TEST_MNEMONIC)
}
},
testnet: {
url: env("TESTNET_RPC_URL", LOCAL_NODE_URL),
accounts: {
mnemonic: env("MNEMONIC", TEST_MNEMONIC)
}
}
},
etherscan: {
apiKey: process.env.ETHERSCAN_KEY
},
sourcify: {
enabled: true
},
defaultNetwork: "localhost",
ignition: {
strategyConfig: {
create2: {
// To learn more about salts, see the CreateX documentation
salt: env("SALT", "0x0000000000000000000000000000000000000000000000000000000000000000"),
},
},
}
};
export default config;