RPC for deleting accounts.
This commit is contained in:
parent
9832be395f
commit
2b8bed434c
@ -276,14 +276,20 @@ impl AccountProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Returns `true` if the password for `account` is `password`. `false` if not.
|
/// Returns `true` if the password for `account` is `password`. `false` if not.
|
||||||
pub fn test_password(&self, account: &Address, password: String) -> Result<bool, Error> {
|
pub fn test_password(&self, account: &Address, password: &str) -> Result<bool, Error> {
|
||||||
match self.sstore.sign(account, &password, &Default::default()) {
|
match self.sstore.sign(account, password, &Default::default()) {
|
||||||
Ok(_) => Ok(true),
|
Ok(_) => Ok(true),
|
||||||
Err(SSError::InvalidPassword) => Ok(false),
|
Err(SSError::InvalidPassword) => Ok(false),
|
||||||
Err(e) => Err(Error::SStore(e)),
|
Err(e) => Err(Error::SStore(e)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Permanently removes an account.
|
||||||
|
pub fn kill_account(&self, account: &Address, password: &str) -> Result<(), Error> {
|
||||||
|
try!(self.sstore.remove_account(account, &password));
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
/// Changes the password of `account` from `password` to `new_password`. Fails if incorrect `password` given.
|
/// Changes the password of `account` from `password` to `new_password`. Fails if incorrect `password` given.
|
||||||
pub fn change_password(&self, account: &Address, password: String, new_password: String) -> Result<(), Error> {
|
pub fn change_password(&self, account: &Address, password: String, new_password: String) -> Result<(), Error> {
|
||||||
self.sstore.change_password(account, &password, &new_password).map_err(Error::SStore)
|
self.sstore.change_password(account, &password, &new_password).map_err(Error::SStore)
|
||||||
|
@ -104,7 +104,7 @@ impl<C: 'static> ParityAccounts for ParityAccountsClient<C> where C: MiningBlock
|
|||||||
let account: Address = account.into();
|
let account: Address = account.into();
|
||||||
|
|
||||||
take_weak!(self.accounts)
|
take_weak!(self.accounts)
|
||||||
.test_password(&account, password)
|
.test_password(&account, &password)
|
||||||
.map_err(|e| errors::account("Could not fetch account info.", e))
|
.map_err(|e| errors::account("Could not fetch account info.", e))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +117,15 @@ impl<C: 'static> ParityAccounts for ParityAccountsClient<C> where C: MiningBlock
|
|||||||
.map_err(|e| errors::account("Could not fetch account info.", e))
|
.map_err(|e| errors::account("Could not fetch account info.", e))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn kill_account(&self, account: RpcH160, password: String) -> Result<bool, Error> {
|
||||||
|
try!(self.active());
|
||||||
|
let account: Address = account.into();
|
||||||
|
take_weak!(self.accounts)
|
||||||
|
.kill_account(&account, &password)
|
||||||
|
.map(|_| true)
|
||||||
|
.map_err(|e| errors::account("Could not fetch account info.", e))
|
||||||
|
}
|
||||||
|
|
||||||
fn set_account_name(&self, addr: RpcH160, name: String) -> Result<bool, Error> {
|
fn set_account_name(&self, addr: RpcH160, name: String) -> Result<bool, Error> {
|
||||||
try!(self.active());
|
try!(self.active());
|
||||||
let store = take_weak!(self.accounts);
|
let store = take_weak!(self.accounts);
|
||||||
|
@ -53,6 +53,11 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "parity_changePassword")]
|
#[rpc(name = "parity_changePassword")]
|
||||||
fn change_password(&self, H160, String, String) -> Result<bool, Error>;
|
fn change_password(&self, H160, String, String) -> Result<bool, Error>;
|
||||||
|
|
||||||
|
/// Permanently deletes an account.
|
||||||
|
/// Arguments: `account`, `password`.
|
||||||
|
#[rpc(name = "parity_killAccount")]
|
||||||
|
fn kill_account(&self, H160, String) -> Result<bool, Error>;
|
||||||
|
|
||||||
/// Set an account's name.
|
/// Set an account's name.
|
||||||
#[rpc(name = "parity_setAccountName")]
|
#[rpc(name = "parity_setAccountName")]
|
||||||
fn set_account_name(&self, H160, String) -> Result<bool, Error>;
|
fn set_account_name(&self, H160, String) -> Result<bool, Error>;
|
||||||
|
Loading…
Reference in New Issue
Block a user