import 'hardhat-typechain' import '@nomiclabs/hardhat-ethers' import '@nomiclabs/hardhat-waffle' import '@nomiclabs/hardhat-etherscan' import 'hardhat-watcher' const LOW_OPTIMIZER_COMPILER_SETTINGS = { version: '0.7.6', settings: { optimizer: { enabled: true, runs: 2_000, }, metadata: { bytecodeHash: 'none', }, }, } const LOWEST_OPTIMIZER_COMPILER_SETTINGS = { version: '0.7.6', settings: { optimizer: { enabled: true, runs: 1_000, }, metadata: { bytecodeHash: 'none', }, }, } const DEFAULT_COMPILER_SETTINGS = { version: '0.7.6', settings: { optimizer: { enabled: true, runs: 1_000_000, }, metadata: { bytecodeHash: 'none', }, }, } export default { networks: { hardhat: { allowUnlimitedContractSize: false, }, mainnet: { url: `https://mainnet.infura.io/v3/${process.env.INFURA_API_KEY}`, }, ropsten: { url: `https://ropsten.infura.io/v3/${process.env.INFURA_API_KEY}`, }, rinkeby: { url: `https://rinkeby.infura.io/v3/${process.env.INFURA_API_KEY}`, }, goerli: { url: `https://goerli.infura.io/v3/${process.env.INFURA_API_KEY}`, }, kovan: { url: `https://kovan.infura.io/v3/${process.env.INFURA_API_KEY}`, }, arbitrum: { url: `http://localhost:8547`, gas: 8000000, }, }, etherscan: { // Your API key for Etherscan // Obtain one at https://etherscan.io/ apiKey: process.env.ETHERSCAN_API_KEY, }, solidity: { compilers: [DEFAULT_COMPILER_SETTINGS], overrides: { 'contracts/NonfungiblePositionManager.sol': LOW_OPTIMIZER_COMPILER_SETTINGS, 'contracts/test/MockTimeNonfungiblePositionManager.sol': LOW_OPTIMIZER_COMPILER_SETTINGS, 'contracts/test/NFTDescriptorTest.sol': LOWEST_OPTIMIZER_COMPILER_SETTINGS, 'contracts/NonfungibleTokenPositionDescriptor.sol': LOWEST_OPTIMIZER_COMPILER_SETTINGS, 'contracts/libraries/NFTDescriptor.sol': LOWEST_OPTIMIZER_COMPILER_SETTINGS, }, }, watcher: { test: { tasks: [{ command: 'test', params: { testFiles: ['{path}'] } }], files: ['./test/**/*'], verbose: true, }, }, }