use UserAccount for account storage
Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
@@ -36,8 +36,7 @@ impl AccountStorage {
|
|||||||
.accounts_directory
|
.accounts_directory
|
||||||
.get_files()?
|
.get_files()?
|
||||||
.values()
|
.values()
|
||||||
.filter_map(|str_key| deserialize_kp(str_key).ok())
|
.filter_map(|serialized| deserialize_storage(serialized).ok())
|
||||||
.map(UserAccount::new)
|
|
||||||
.collect();
|
.collect();
|
||||||
Ok(keys)
|
Ok(keys)
|
||||||
}
|
}
|
||||||
@@ -80,14 +79,19 @@ impl AccountStorage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn deserialize_kp(serialized: &str) -> Result<Keypair> {
|
fn deserialize_storage(serialized: &str) -> Result<UserAccount> {
|
||||||
let data = serialized.split("\t").collect::<Vec<&str>>();
|
let data = serialized.split("\t").collect::<Vec<&str>>();
|
||||||
let mut parser = TokenParser::new(&data);
|
let mut parser = TokenParser::new(&data);
|
||||||
|
|
||||||
if let Ok(kp) = Keypair::parse_from_tokens(&mut parser) {
|
if let Ok(acc) = UserAccount::parse_from_tokens(&mut parser) {
|
||||||
return Ok(kp);
|
return Ok(acc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// try old deserialization way
|
||||||
|
Ok(UserAccount::new(old_deserialization(serialized)?))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn old_deserialization(serialized: &str) -> Result<Keypair> {
|
||||||
Ok(serde_json::from_str::<SerializableKeypair>(serialized)?.to_keypair(""))
|
Ok(serde_json::from_str::<SerializableKeypair>(serialized)?.to_keypair(""))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user