From 40d71df4dd581d4e66d7b66ec2c0428aeec61c14 Mon Sep 17 00:00:00 2001 From: ghassmo Date: Thu, 5 Aug 2021 05:01:02 +0300 Subject: [PATCH] fix an error happen when query public key from walletdb --- src/rpc/jsonserver.rs | 2 +- src/wallet/walletdb.rs | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/rpc/jsonserver.rs b/src/rpc/jsonserver.rs index 95fb34f54..a06900ea8 100644 --- a/src/rpc/jsonserver.rs +++ b/src/rpc/jsonserver.rs @@ -151,7 +151,7 @@ impl RpcInterface { let self2 = self1.clone(); async move { self2.adapter.get_key()?; - Ok(jsonrpc_core::Value::String("Getting cashier key...".into())) + Ok(jsonrpc_core::Value::String("Getting public key...".into())) } }); let self1 = self.clone(); diff --git a/src/wallet/walletdb.rs b/src/wallet/walletdb.rs index 5f55035d4..82e39c22a 100644 --- a/src/wallet/walletdb.rs +++ b/src/wallet/walletdb.rs @@ -216,12 +216,17 @@ impl WalletDb { conn.pragma_update(None, "key", &self.password)?; let mut stmt = conn.prepare("SELECT key_public FROM keys")?; // this just gets the first key. maybe we should randomize this - let key_iter = stmt.query_map::([], |row| row.get(0))?; + let key_iter = stmt.query_map::, _, _>([], |row| row.get(0))?; let mut pub_keys = Vec::new(); for key in key_iter { pub_keys.push(key?); } - let public: jubjub::SubgroupPoint = self.get_value_deserialized(pub_keys)?; + let public: jubjub::SubgroupPoint = self.get_value_deserialized( + pub_keys + .pop() + .expect("unable to load public_key from walletdb"), + )?; + Ok(public) }