/** * Use this file to configure your truffle project. It's seeded with some * common settings for different networks and features like migrations, * compilation and testing. Uncomment the ones you need or modify * them to suit your project as necessary. * * More information about configuration can be found at: * * trufflesuite.com/docs/advanced/configuration * * To deploy via Infura you'll need a wallet provider (like @truffle/hdwallet-provider) * to sign your transactions before they're sent to a remote public node. Infura accounts * are available for free at: infura.io/register. * * You'll also need a mnemonic - the twelve word phrase the wallet uses to generate * public/private key pairs. If you're publishing your code to GitHub make sure you load this * phrase from a file you've .gitignored so it doesn't accidentally become public. * */ const HDWalletProvider = require('@truffle/hdwallet-provider'); const dotenv = require('dotenv'); dotenv.config(); module.exports = { /** * Networks define how you connect to your ethereum client and let you set the * defaults web3 uses to send transactions. If you don't specify one truffle * will spin up a development blockchain for you on port 9545 when you * run `develop` or `test`. You can ask a truffle command to use a specific * network from the command line, e.g * * $ truffle test --network <network-name> */ networks: { development: { host: '127.0.0.1', // Localhost (default: none) port: 8545, // Standard Ethereum port (default: none) network_id: '*', // Any network (default: none) }, ropsten: { provider: () => new HDWalletProvider([process.env.PRIVATE_KEY], `wss://ropsten.infura.io/ws/v3/${process.env.PROJECT_ID}`), network_id: 3, // Ropsten's id gas: 6721975, // Ropsten has a lower block limit than mainnet gasPrice: 160000000000, skipDryRun: true, // Skip dry run before migrations? (default: false for public nets ) }, rinkeby: { provider: () => new HDWalletProvider([process.env.PRIVATE_KEY], `wss://rinkeby.infura.io/ws/v3/${process.env.PROJECT_ID}`), network_id: 4, gas: 10000000, skipDryRun: true, }, mainnet: { provider: () => new HDWalletProvider([process.env.PRIVATE_KEY], `wss://mainnet.infura.io/ws/v3/${process.env.PROJECT_ID}`), network_id: 1, gas: 3000000, gasPrice: 160000000000, skipDryRun: true, }, }, mocha: { timeout: 300000, reporter: 'eth-gas-reporter', reporterOptions: { showTimeSpent: true, currency: 'USD', coinmarketcap: process.env.COINMARKETCAP_API_KEY, }, }, plugins: ['truffle-plugin-verify', 'solidity-coverage'], api_keys: { etherscan: process.env.ETHERSCAN_KEY, }, // Configure your compilers compilers: { solc: { version: '>=0.4.20 <0.8.0', // Fetch exact version from solc-bin (default: truffle's version) docker: false, // Use "0.5.1" you've installed locally with docker (default: false) settings: { // See the solidity docs for advice about optimization and evmVersion optimizer: { enabled: true, runs: 200, }, evmVersion: 'istanbul', }, }, }, };