diff --git a/lib/cmds/simulator.js b/lib/cmds/simulator.js index 5cc5a6f90..a1a4d3dd3 100644 --- a/lib/cmds/simulator.js +++ b/lib/cmds/simulator.js @@ -32,21 +32,14 @@ class Simulator { cmds.push("--mnemonic \"" + (simulatorMnemonic) +"\""); } - // the simulatorAccounts configuration overrides a mnemonic + // as ganache-cli documentation explains, the simulatorAccounts configuration overrides a mnemonic let simulatorAccounts = this.blockchainConfig.simulatorAccounts || options.simulatorAccounts; if (simulatorAccounts && simulatorAccounts.length > 0) { - simulatorAccounts.forEach((account, index) => { - let hexBalance = '0x8AC7230489E80000'; // 10 ether; - if (account.hexBalance) { // TODO: ensure it is 0x-prefixed hex - if (account.hexBalance.match(/0x[a-f0-9]+/i)) { - hexBalance = account.hexBalance; - } else { - this.logger.warn('Balance provided for the account #' + index + ' is not a valid hex number. Using 10 ether as a default.'); - } - } else { - this.logger.warn('No balance has been provided for the account #' + index + '. Using 10 ether as a default.'); - } - let cmd = '--account="' + account.privateKey + ','+hexBalance + '"'; + let web3 = new (require('web3'))(); + let AccountParser = require('../utils/accountParser.js'); + let parsedAccounts = AccountParser.parseAccountsConfig(simulatorAccounts, web3, this.logger); + parsedAccounts.forEach((account) => { + let cmd = '--account="' + account.privateKey + ','+account.hexBalance + '"'; cmds.push(cmd); }); }