62 lines
1.5 KiB
TypeScript
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;
|