walletdb: move DB logical operations from node/client

This commit is contained in:
ghassmo
2022-04-26 00:37:45 +03:00
parent f35fa3b3d6
commit 2fa2d75cab
2 changed files with 28 additions and 21 deletions

View File

@@ -41,16 +41,9 @@ impl Client {
// Initialize or load the wallet
wallet.init_db().await?;
// Check if there is a default keypair and generate one in
// case we don't have any.
if wallet.get_default_keypair().await.is_err() {
// TODO: Clean this up with Option<T> to have less calls.
if wallet.get_keypairs().await?.is_empty() {
wallet.keygen().await?;
}
}
wallet.set_default_keypair(&wallet.get_keypairs().await?[0].public).await?;
// Get default keypair or create one
let main_keypair = wallet.get_default_keypair_or_create_one().await?;
info!(target: "client", "Main keypair: {}", Address::from(main_keypair.public));
// Generate merkle tree if we don't have one.
// TODO: See what to do about this
@@ -58,9 +51,6 @@ impl Client {
wallet.tree_gen().await?;
}
let main_keypair = wallet.get_default_keypair().await?;
info!(target: "client", "Main keypair: {}", Address::from(main_keypair.public));
Ok(Self {
main_keypair: Mutex::new(main_keypair),
wallet,
@@ -252,8 +242,7 @@ impl Client {
}
pub async fn set_default_keypair(&self, public: &PublicKey) -> Result<()> {
self.wallet.set_default_keypair(public).await?;
let kp = self.wallet.get_default_keypair().await?;
let kp = self.wallet.set_default_keypair(public).await?;
let mut mk = self.main_keypair.lock().await;
*mk = kp;
drop(mk);