baluni-contracts
Version:
Smart Contracts for Baluni
156 lines (152 loc) • 4.66 kB
text/typescript
import * as dotenv from 'dotenv'
dotenv.config()
import { HardhatUserConfig } from 'hardhat/config'
import '@nomicfoundation/hardhat-ethers'
import '@nomicfoundation/hardhat-chai-matchers'
import '@typechain/hardhat'
import 'hardhat-gas-reporter'
import 'solidity-coverage'
import '@nomicfoundation/hardhat-verify'
import 'hardhat-deploy'
import 'hardhat-deploy-ethers'
import '@openzeppelin/hardhat-upgrades'
import 'hardhat-docgen'
// If not set, it uses ours Alchemy's default API key.
// You can get your own at https://yarndashboard.alchemyapi.io
const providerApiKey = process.env.ALCHEMY_API_KEY || 'oKxs-03sij-U_N0iOlrSsZFr29-IqbuF'
// If not set, it uses the hardhat account 0 private key.
const deployerPrivateKey =
process.env.DEPLOYER_PRIVATE_KEY ?? '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80'
// If not set, it uses ours Etherscan default API key.
const etherscanApiKey = process.env.ETHERSCAN_API_KEY || 'DNXJA8RX2Q3VZ4URQIWP7Z68CJXQZSC6AW'
const config: HardhatUserConfig = {
solidity: {
compilers: [
{
version: '0.8.25',
settings: {
optimizer: {
enabled: false,
runs: 20000,
},
viaIR: true,
evmVersion: 'cancun',
},
},
{
version: '0.7.6',
},
{
version: '0.8.0',
},
],
},
defaultNetwork: 'localhost',
namedAccounts: {
deployer: {
// By default, it will take the first Hardhat account as the deployer
default: 0,
},
},
networks: {
// View the networks that are pre-configured.
// If the network you are looking for is not here you can add new network settings
hardhat: {
forking: {
url: `https://eth-mainnet.alchemyapi.io/v2/${providerApiKey}`,
enabled: process.env.MAINNET_FORKING_ENABLED === 'true',
},
},
mainnet: {
url: `https://eth-mainnet.alchemyapi.io/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
sepolia: {
url: `https://eth-sepolia.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
goerli: {
url: `https://eth-goerli.alchemyapi.io/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
arbitrum: {
url: `https://arb-mainnet.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
arbitrumGoerli: {
url: `https://arb-goerli.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
optimism: {
url: `https://opt-mainnet.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
optimismGoerli: {
url: `https://opt-goerli.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
polygon: {
url: `https://polygon-mainnet.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
chainId: 137,
},
polygonMumbai: {
url: `https://polygon-mumbai.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
polygonZkEvm: {
url: `https://polygonzkevm-mainnet.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
polygonZkEvmTestnet: {
url: `https://polygonzkevm-testnet.g.alchemy.com/v2/${providerApiKey}`,
accounts: [deployerPrivateKey],
},
gnosis: {
url: 'https://rpc.gnosischain.com',
accounts: [deployerPrivateKey],
},
chiado: {
url: 'https://rpc.chiadochain.net',
accounts: [deployerPrivateKey],
},
base: {
url: 'https://mainnet.base.org',
accounts: [deployerPrivateKey],
},
baseGoerli: {
url: 'https://goerli.base.org',
accounts: [deployerPrivateKey],
},
scrollSepolia: {
url: 'https://sepolia-rpc.scroll.io',
accounts: [deployerPrivateKey],
},
scroll: {
url: 'https://rpc.scroll.io',
accounts: [deployerPrivateKey],
},
pgn: {
url: 'https://rpc.publicgoods.network',
accounts: [deployerPrivateKey],
},
pgnTestnet: {
url: 'https://sepolia.publicgoods.network',
accounts: [deployerPrivateKey],
},
},
// configuration for harhdat-verify plugin
etherscan: {
apiKey: `${etherscanApiKey}`,
},
// configuration for etherscan-verify from hardhat-deploy plugin
verify: {
etherscan: {
apiKey: `${etherscanApiKey}`,
},
},
sourcify: {
enabled: false,
},
}
export default config