diff --git a/lib/cmds/simulator.js b/lib/cmds/simulator.js index 8254fd3db..5cc5a6f90 100644 --- a/lib/cmds/simulator.js +++ b/lib/cmds/simulator.js @@ -32,6 +32,25 @@ class Simulator { cmds.push("--mnemonic \"" + (simulatorMnemonic) +"\""); } + // 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 + '"'; + cmds.push(cmd); + }); + } + // adding blocktime only if it is defined in the blockchainConfig or options let simulatorBlocktime = this.blockchainConfig.simulatorBlocktime || options.simulatorBlocktime; if (simulatorBlocktime) {