226 lines
5.3 KiB
TypeScript
226 lines
5.3 KiB
TypeScript
require('dotenv').config()
|
|
|
|
import '@nomiclabs/hardhat-ethers'
|
|
import '@nomiclabs/hardhat-waffle'
|
|
import '@nomiclabs/hardhat-etherscan'
|
|
|
|
// import '@eth-optimism/plugins/hardhat/compiler'
|
|
import "@eth-optimism/hardhat-deploy-config"
|
|
|
|
import 'hardhat-abi-exporter'
|
|
|
|
import { CHAIN_IDS } from './config/constants'
|
|
|
|
const desiredAccounts: string[] = [
|
|
process.env.DEPLOYER_PRIVATE_KEY,
|
|
process.env.GOVERNANCE_PRIVATE_KEY
|
|
]
|
|
|
|
const isOptimizerEnabled: boolean = true
|
|
// 50k for normal, 1 for Optimism
|
|
// const numOptimizerRuns: number = 1
|
|
const numOptimizerRuns: number = 50000
|
|
|
|
// You have to export an object to set up your config
|
|
// This object can have the following optional entries:
|
|
// defaultNetwork, networks, solc, and paths.
|
|
// Go to https://buidler.dev/config/ to learn more
|
|
export default {
|
|
networks: {
|
|
hardhat: {
|
|
allowUnlimitedContractSize: true
|
|
},
|
|
mainnet: {
|
|
url: process.env.RPC_ENDPOINT_MAINNET,
|
|
accounts: desiredAccounts,
|
|
chainId: CHAIN_IDS.ETHEREUM.MAINNET.toNumber(),
|
|
timeout: 480e3
|
|
},
|
|
kovan: {
|
|
url: process.env.RPC_ENDPOINT_KOVAN,
|
|
accounts: desiredAccounts,
|
|
chainId: CHAIN_IDS.ETHEREUM.KOVAN.toNumber(),
|
|
timeout: 480e3
|
|
},
|
|
goerli: {
|
|
url: process.env.RPC_ENDPOINT_GOERLI,
|
|
accounts: desiredAccounts,
|
|
chainId: CHAIN_IDS.ETHEREUM.GOERLI.toNumber()
|
|
},
|
|
arbitrum_mainnet: {
|
|
url: process.env.RPC_ENDPOINT_ARBITRUM_MAINNET,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 0,
|
|
chainId: CHAIN_IDS.ARBITRUM.ARBITRUM_MAINNET.toNumber(),
|
|
timeout: 480e3
|
|
},
|
|
arbitrum_testnet: {
|
|
url: process.env.RPC_ENDPOINT_ARBITRUM_TESTNET,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 0,
|
|
chainId: CHAIN_IDS.ARBITRUM.ARBITRUM_TESTNET.toNumber(),
|
|
timeout: 480e3
|
|
},
|
|
optimism_mainnet: {
|
|
url: process.env.RPC_ENDPOINT_OPTIMISM_MAINNET,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 15000000,
|
|
// gasPrice: 10000000000,
|
|
chainId: CHAIN_IDS.OPTIMISM.OPTIMISM_MAINNET.toNumber(),
|
|
timeout: 480e3,
|
|
ovm: true
|
|
},
|
|
optimism_testnet: {
|
|
url: process.env.RPC_ENDPOINT_OPTIMISM_TESTNET,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 15000000,
|
|
// gasPrice: 10000000000,
|
|
chainId: CHAIN_IDS.OPTIMISM.OPTIMISM_TESTNET.toNumber(),
|
|
timeout: 480e3,
|
|
ovm: true
|
|
},
|
|
xdai: {
|
|
url: process.env.RPC_ENDPOINT_XDAI,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 1000000000,
|
|
gas: 500000,
|
|
chainId: CHAIN_IDS.XDAI.XDAI.toNumber()
|
|
},
|
|
sokol: {
|
|
url: process.env.RPC_ENDPOINT_SOKOL,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 1000000000,
|
|
gas: 500000,
|
|
chainId: CHAIN_IDS.XDAI.SOKOL.toNumber()
|
|
},
|
|
polygon: {
|
|
url: process.env.RPC_ENDPOINT_POLYGON,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 1000000000,
|
|
gas: 500000,
|
|
chainId: CHAIN_IDS.POLYGON.POLYGON.toNumber()
|
|
},
|
|
mumbai: {
|
|
url: process.env.RPC_ENDPOINT_MUMBAI,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 1000000000,
|
|
gas: 500000,
|
|
chainId: CHAIN_IDS.POLYGON.MUMBAI.toNumber()
|
|
},
|
|
localhost_l1: {
|
|
url: process.env.RPC_ENDPOINT_LOCALHOST_L1,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 1,
|
|
gas: 10000000,
|
|
chainId: 31337
|
|
},
|
|
localhost_l2: {
|
|
url: process.env.RPC_ENDPOINT_LOCALHOST_L2,
|
|
accounts: desiredAccounts,
|
|
gasPrice: 1,
|
|
gas: 10000000,
|
|
chainId: 17
|
|
},
|
|
},
|
|
ovm: {
|
|
solcVersion: '0.6.12'
|
|
},
|
|
solidity: {
|
|
compilers: [
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.7.3'
|
|
},
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.7.0'
|
|
},
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.6.12'
|
|
},
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.6.11'
|
|
},
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.6.6'
|
|
},
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.5.17'
|
|
},
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.5.16'
|
|
},
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.5.11'
|
|
},
|
|
{
|
|
settings: {
|
|
optimizer: {
|
|
enabled: isOptimizerEnabled,
|
|
runs: numOptimizerRuns
|
|
}
|
|
},
|
|
version: '0.4.25'
|
|
}
|
|
]
|
|
},
|
|
mocha: {
|
|
timeout: 40000
|
|
},
|
|
etherscan: {
|
|
apiKey: process.env.ETHERSCAN_API_KEY
|
|
// apiKey: process.env.POLYGONSCAN_API_KEY
|
|
},
|
|
// abiExporter: {
|
|
// path: './data/abi',
|
|
// clear: true,
|
|
// flat: true
|
|
// }
|
|
}
|