use UserAccount for account storage

Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
kernelkind
2025-03-19 12:43:41 -04:00
parent dbe71bbb80
commit c3655e033b

View File

@@ -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(""))
} }