Skip to content

Commit 42e99c0

Browse files
Merge #2175
2175: Fix: `wallet_remove_addresses` does not update wallet file r=damip a=AurelienFT I have fixed by calling `save()`. `save()` can fail with a Result so I changed the return type to be able to propagate the error. Fix #2172. Co-authored-by: AurelienFT <aurelien.foucault@epitech.eu>
2 parents 04600cd + 243e4df commit 42e99c0

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

massa-client/src/cmds.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use massa_models::{
1212
};
1313
use massa_signature::{generate_random_private_key, PrivateKey, PublicKey};
1414
use massa_time::MassaTime;
15-
use massa_wallet::Wallet;
15+
use massa_wallet::{Wallet, WalletError};
1616
use serde::Serialize;
1717
use std::collections::HashMap;
1818
use std::fmt::{Debug, Display};
@@ -471,12 +471,18 @@ impl Command {
471471
let mut res = "".to_string();
472472
for key in parse_vec::<Address>(parameters)?.into_iter() {
473473
match wallet.remove_address(key) {
474-
Some(_) => {
474+
Ok(_) => {
475475
res.push_str(&format!("Removed address {} from the wallet\n", key));
476476
}
477-
None => {
477+
Err(WalletError::MissingKeyError(_)) => {
478478
res.push_str(&format!("Address {} wasn't in the wallet\n", key));
479479
}
480+
Err(_) => {
481+
res.push_str(&format!(
482+
"Failed to remove address {} from the wallet\n",
483+
key
484+
));
485+
}
480486
}
481487
}
482488
if !json {

massa-wallet/src/lib.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,11 @@ impl Wallet {
7777
}
7878
}
7979

80-
pub fn remove_address(&mut self, address: Address) -> Option<(PublicKey, PrivateKey)> {
81-
self.keys.remove(&address)
80+
pub fn remove_address(&mut self, address: Address) -> Result<(), WalletError> {
81+
self.keys
82+
.remove(&address)
83+
.ok_or(WalletError::MissingKeyError(address))?;
84+
self.save()
8285
}
8386

8487
/// Finds the private key associated with given address

0 commit comments

Comments
 (0)