diff --git a/crates/notedeck/src/storage/account_storage.rs b/crates/notedeck/src/storage/account_storage.rs index 776e3517..cb2b97ae 100644 --- a/crates/notedeck/src/storage/account_storage.rs +++ b/crates/notedeck/src/storage/account_storage.rs @@ -36,8 +36,7 @@ impl AccountStorage { .accounts_directory .get_files()? .values() - .filter_map(|str_key| deserialize_kp(str_key).ok()) - .map(UserAccount::new) + .filter_map(|serialized| deserialize_storage(serialized).ok()) .collect(); Ok(keys) } @@ -80,14 +79,19 @@ impl AccountStorage { } } -fn deserialize_kp(serialized: &str) -> Result { +fn deserialize_storage(serialized: &str) -> Result { let data = serialized.split("\t").collect::>(); let mut parser = TokenParser::new(&data); - if let Ok(kp) = Keypair::parse_from_tokens(&mut parser) { - return Ok(kp); + if let Ok(acc) = UserAccount::parse_from_tokens(&mut parser) { + return Ok(acc); } + // try old deserialization way + Ok(UserAccount::new(old_deserialization(serialized)?)) +} + +fn old_deserialization(serialized: &str) -> Result { Ok(serde_json::from_str::(serialized)?.to_keypair("")) }