new account test & fix
This commit is contained in:
parent
1957a14961
commit
2117d363e2
@ -49,7 +49,7 @@ impl<A> Personal for PersonalClient<A> where A: AccountProvider + 'static {
|
||||
|(pass, )| {
|
||||
let store = take_weak!(self.accounts);
|
||||
match store.new_account(&pass) {
|
||||
Ok(address) => Ok(Value::String(format!("{:?}", address))),
|
||||
Ok(address) => Ok(Value::String(format!("0x{:?}", address))),
|
||||
Err(_) => Err(Error::internal_error())
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ impl TestAccount {
|
||||
/// Test account provider.
|
||||
pub struct TestAccountProvider {
|
||||
accounts: RwLock<HashMap<Address, TestAccount>>,
|
||||
pub adds: RwLock<Vec<String>>,
|
||||
}
|
||||
|
||||
impl TestAccountProvider {
|
||||
@ -49,6 +50,7 @@ impl TestAccountProvider {
|
||||
pub fn new(accounts: HashMap<Address, TestAccount>) -> Self {
|
||||
TestAccountProvider {
|
||||
accounts: RwLock::new(accounts),
|
||||
adds: RwLock::new(vec![]),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -69,9 +71,13 @@ impl AccountProvider for TestAccountProvider {
|
||||
}
|
||||
}
|
||||
|
||||
fn new_account(&self, _pass: &str) -> Result<Address, io::Error> {
|
||||
unimplemented!()
|
||||
fn new_account(&self, pass: &str) -> Result<Address, io::Error> {
|
||||
let mut adds = self.adds.write().unwrap();
|
||||
let address = Address::from(adds.len() as u64 + 2);
|
||||
adds.push(pass.to_owned());
|
||||
Ok(address)
|
||||
}
|
||||
|
||||
fn account_secret(&self, _account: &Address) -> Result<Secret, SigningError> {
|
||||
unimplemented!()
|
||||
}
|
||||
|
@ -45,3 +45,15 @@ fn accounts() {
|
||||
|
||||
assert_eq!(io.handle_request(request), Some(response.to_owned()));
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
fn new_account() {
|
||||
let (_test_provider, io) = setup();
|
||||
|
||||
let request = r#"{"jsonrpc": "2.0", "method": "personal_newAccount", "params": ["pass"], "id": 1}"#;
|
||||
let response = r#"{"jsonrpc":"2.0","result":"0x0000000000000000000000000000000000000002","id":1}"#;
|
||||
|
||||
assert_eq!(io.handle_request(request), Some(response.to_owned()));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user