Skip to content

Commit

Permalink
Clean up truffle-config.js and lazy load providers (#414)
Browse files Browse the repository at this point in the history
* Clean up truffle-config.js and lazy load providers

* Undo devnet rename

* Address review comments
  • Loading branch information
izqui committed Sep 3, 2018
1 parent 5b880fc commit 1943afa
Showing 1 changed file with 50 additions and 23 deletions.
73 changes: 50 additions & 23 deletions truffle-config.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,48 @@
const homedir = require('homedir')
const path = require('path')

const HDWalletProvider = require('truffle-hdwallet-provider')
const HDWalletProviderPrivkey = require('truffle-hdwallet-provider-privkey')

let mnemonic
try {
mnemonic = require(require('homedir')()+'/.aragon/mnemonic.json').mnemonic
} catch (e) {
mnemonic = 'stumble story behind hurt patient ball whisper art swift tongue ice alien';
}
const DEFAULT_MNEMONIC = 'stumble story behind hurt patient ball whisper art swift tongue ice alien'

let ropstenProvider, kovanProvider, rinkebyProvider = {}
const defaultRPC = (network) =>
`https://${network}.infura.io`

if (process.env.LIVE_NETWORKS) {
ropstenProvider = new HDWalletProvider(mnemonic, 'https://ropsten.infura.io/')
kovanProvider = new HDWalletProvider(mnemonic, 'https://kovan.infura.io')
const configFilePath = (filename) =>
path.join(homedir(), `.aragon/${filename}`)

const mnemonic = () => {
try {
const { rpc, keys } = require(require('homedir')()+'/.aragon/rinkebykey.json')
rinkebyProvider = new HDWalletProviderPrivkey(keys, rpc)
return require(configFilePath('mnemonic.json').mnemonic)
} catch (e) {
rinkebyProvider = new HDWalletProvider(mnemonic, 'https://rinkeby.infura.io')
return DEFAULT_MNEMONIC
}
}

const settingsForNetwork = (network) => {
try {
return require(configFilePath(`${network}_key.json`))
} catch (e) {
return { }
}
}

// Lazily loaded provider
const providerForNetwork = (network) => (
() => {
let { rpc, keys } = settingsForNetwork(network)

rpc = rpc || defaultRPC(network)

if (!keys || keys.length == 0) {
return new HDWalletProvider(mnemonic(), rpc)
}

return new HDWalletProviderPrivkey(keys, rpc)
}
)

const mochaGasSettings = {
reporter: 'eth-gas-reporter',
reporterOptions : {
Expand All @@ -38,30 +59,36 @@ module.exports = {
network_id: 15,
host: 'localhost',
port: 8545,
gas: 6.9e6,
gas: 6.9e6
},
devnet: {
network_id: 15,
host: 'localhost',
port: 8535,
gas: 6.9e6,
gas: 6.9e6
},
mainnet: {
network_id: 1,
provider: providerForNetwork('mainnet'),
gas: 7.9e6,
gasPrice: 3000000001
},
ropsten: {
network_id: 3,
provider: ropstenProvider,
gas: 4.712e6,
},
kovan: {
network_id: 42,
provider: kovanProvider,
gas: 6.9e6,
provider: providerForNetwork('ropsten'),
gas: 4.712e6
},
rinkeby: {
network_id: 4,
provider: rinkebyProvider,
provider: providerForNetwork('rinkeby'),
gas: 6.9e6,
gasPrice: 15000000001
},
kovan: {
network_id: 42,
provider: providerForNetwork('kovan'),
gas: 6.9e6
},
coverage: {
host: "localhost",
network_id: "*",
Expand Down

0 comments on commit 1943afa

Please sign in to comment.