--unlock is comma-delimited. (#916)

This commit is contained in:
Gav Wood 2016-04-10 14:01:41 -07:00
parent fed853593b
commit 6c35c5e604
2 changed files with 12 additions and 10 deletions

View File

@ -104,7 +104,8 @@ Protocol Options:
--identity NAME Specify your node's name. --identity NAME Specify your node's name.
Account Options: Account Options:
--unlock ACCOUNT Unlock ACCOUNT for the duration of the execution. --unlock ACCOUNTS Unlock ACCOUNTS for the duration of the execution.
ACCOUNTS is a comma-delimited list of addresses.
--password FILE Provide a file containing a password for unlocking --password FILE Provide a file containing a password for unlocking
an account. an account.
@ -213,7 +214,7 @@ struct Args {
flag_chain: String, flag_chain: String,
flag_db_path: String, flag_db_path: String,
flag_identity: String, flag_identity: String,
flag_unlock: Vec<String>, flag_unlock: Option<String>,
flag_password: Vec<String>, flag_password: Vec<String>,
flag_cache: Option<usize>, flag_cache: Option<usize>,
flag_keys_path: String, flag_keys_path: String,
@ -617,14 +618,15 @@ impl Configuration {
.collect::<Vec<_>>() .collect::<Vec<_>>()
.into_iter() .into_iter()
}).collect::<Vec<_>>(); }).collect::<Vec<_>>();
let account_service = AccountService::new_in(Path::new(&self.keys_path())); let account_service = AccountService::new_in(Path::new(&self.keys_path()));
for d in &self.args.flag_unlock { if let Some(ref unlocks) = self.args.flag_unlock {
let a = Address::from_str(clean_0x(&d)).unwrap_or_else(|_| { for d in unlocks.split(',') {
die!("{}: Invalid address for --unlock. Must be 40 hex characters, without the 0x at the beginning.", d) let a = Address::from_str(clean_0x(&d)).unwrap_or_else(|_| {
}); die!("{}: Invalid address for --unlock. Must be 40 hex characters, without the 0x at the beginning.", d)
if passwords.iter().find(|p| account_service.unlock_account_no_expire(&a, p).is_ok()).is_none() { });
die!("No password given to unlock account {}. Pass the password using `--password`.", a); if passwords.iter().find(|p| account_service.unlock_account_no_expire(&a, p).is_ok()).is_none() {
die!("No password given to unlock account {}. Pass the password using `--password`.", a);
}
} }
} }
account_service account_service

View File

@ -465,7 +465,7 @@ impl<C, S, A, M, EM> Eth for EthClient<C, S, A, M, EM>
fn submit_work(&self, params: Params) -> Result<Value, Error> { fn submit_work(&self, params: Params) -> Result<Value, Error> {
from_params::<(H64, H256, H256)>(params).and_then(|(nonce, pow_hash, mix_hash)| { from_params::<(H64, H256, H256)>(params).and_then(|(nonce, pow_hash, mix_hash)| {
// trace!("Decoded: nonce={}, pow_hash={}, mix_hash={}", nonce, pow_hash, mix_hash); trace!(target: "miner", "submit_work: Decoded: nonce={}, pow_hash={}, mix_hash={}", nonce, pow_hash, mix_hash);
let miner = take_weak!(self.miner); let miner = take_weak!(self.miner);
let client = take_weak!(self.client); let client = take_weak!(self.client);
let seal = vec![encode(&mix_hash).to_vec(), encode(&nonce).to_vec()]; let seal = vec![encode(&mix_hash).to_vec(), encode(&nonce).to_vec()];