feat: allow configuration of ropsten and ganache with env variables

This commit is contained in:
Matt Condon
2017-11-24 13:11:04 +02:00
parent 887c1bb925
commit b9b26e1d8a
4 changed files with 36 additions and 8 deletions

5
.env.example Normal file
View File

@ -0,0 +1,5 @@
# configure your infura api key (not technically required)
INFURA_API_KEY=
# change the mnemonic that your hd wallet is seeded with
MNEMONIC=

View File

@ -1,5 +1,9 @@
//var Ownable = artifacts.require("ownership/Ownable.sol"); //var Ownable = artifacts.require("ownership/Ownable.sol");
// NOTE: Use this file to easily deploy the contracts you're writing.
// (but make sure to reset this file before committing
// with `git checkout HEAD -- migrations/2_deploy_contracts.js`)
module.exports = function(deployer) { module.exports = function(deployer) {
//deployer.deploy(Ownable); //deployer.deploy(Ownable);
}; };

View File

@ -41,5 +41,8 @@
"solidity-coverage": "^0.2.2", "solidity-coverage": "^0.2.2",
"truffle": "^4.0.0", "truffle": "^4.0.0",
"truffle-hdwallet-provider": "0.0.3" "truffle-hdwallet-provider": "0.0.3"
},
"dependencies": {
"dotenv": "^4.0.0"
} }
} }

View File

@ -1,14 +1,20 @@
require('dotenv').config();
require('babel-register'); require('babel-register');
require('babel-polyfill'); require('babel-polyfill');
var provider; const HDWalletProvider = require('truffle-hdwallet-provider');
var HDWalletProvider = require('truffle-hdwallet-provider');
var mnemonic = '[REDACTED]';
if (!process.env.SOLIDITY_COVERAGE){ const providerWithMnemonic = (mnemonic, rpcEndpoint) =>
provider = new HDWalletProvider(mnemonic, 'https://ropsten.infura.io/') new HDWalletProvider(mnemonic, rpcEndpoint)
}
const infuraProvider = network => providerWithMnemonic(
process.env.MNEMONIC,
`https://${network}.infura.io/${process.env.INFURA_API_KEY}`
)
const ropstenProvider = process.env.SOLIDITY_COVERAGE
? undefined
: infuraProvider('ropsten')
module.exports = { module.exports = {
networks: { networks: {
@ -18,7 +24,7 @@ module.exports = {
network_id: '*' network_id: '*'
}, },
ropsten: { ropsten: {
provider: provider, provider: ropstenProvider,
network_id: 3 // official id of the ropsten network network_id: 3 // official id of the ropsten network
}, },
coverage: { coverage: {
@ -27,6 +33,16 @@ module.exports = {
port: 8555, port: 8555,
gas: 0xfffffffffff, gas: 0xfffffffffff,
gasPrice: 0x01 gasPrice: 0x01
} },
testrpc: {
host: 'localhost',
port: 8545,
network_id: '*'
},
ganache: {
host: 'localhost',
port: 7545,
network_id: '*'
},
} }
}; };