Pārlūkot izejas kodu

feat: allow configuration of ropsten and ganache with env variables

Matt Condon 7 gadi atpakaļ
vecāks
revīzija
b9b26e1d8a
4 mainītis faili ar 36 papildinājumiem un 8 dzēšanām
  1. 5 0
      .env.example
  2. 4 0
      migrations/2_deploy_contracts.js
  3. 3 0
      package.json
  4. 24 8
      truffle-config.js

+ 5 - 0
.env.example

@@ -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=

+ 4 - 0
migrations/2_deploy_contracts.js

@@ -1,5 +1,9 @@
 //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) {
   //deployer.deploy(Ownable);
 };

+ 3 - 0
package.json

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

+ 24 - 8
truffle-config.js

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