Explorar el Código

More memory cleanups.

parazyd hace 4 años
padre
commit
71f3bcace4
Se han modificado 4 ficheros con 23 adiciones y 26 borrados
  1. 3 6
      src/service/bridge.rs
  2. 5 3
      src/service/btc.rs
  3. 4 6
      src/service/sol.rs
  4. 11 11
      src/wallet/cashierdb.rs

+ 3 - 6
src/service/bridge.rs

@@ -1,5 +1,5 @@
-use crate::{Error, Result};
 use crate::util::NetworkName;
+use crate::{Error, Result};
 
 use async_trait::async_trait;
 use futures::stream::FuturesUnordered;
@@ -76,10 +76,7 @@ impl Bridge {
         let client2 = client.clone();
         let notifier = client2.get_notifier().await?;
 
-        self.clients
-            .lock()
-            .await
-            .insert(network, client.clone());
+        self.clients.lock().await.insert(network, client.clone());
 
         self.notifiers.push(notifier.clone());
         Ok(())
@@ -101,7 +98,7 @@ impl Bridge {
         let (sender, req) = async_channel::unbounded();
         let (rep, receiver) = async_channel::unbounded();
 
-        smol::spawn(self.listen_for_new_subscription(req.clone(), rep.clone())).detach();
+        smol::spawn(self.listen_for_new_subscription(req, rep)).detach();
 
         BridgeSubscribtion { sender, receiver }
     }

+ 5 - 3
src/service/btc.rs

@@ -95,7 +95,10 @@ impl BtcClient {
         }))
     }
 
-    async fn handle_subscribe_request(self: Arc<Self>, keypair: Arc<BitcoinKeys>) -> BtcResult<(Txid, u64)> {
+    async fn handle_subscribe_request(
+        self: Arc<Self>,
+        keypair: Arc<BitcoinKeys>,
+    ) -> BtcResult<(Txid, u64)> {
         debug!(
             target: "BTC BRIDGE",
             "Handle subscribe request"
@@ -159,8 +162,7 @@ impl NetworkClient for BtcClient {
 
         //let (_txid, _balance) = btc_keys.start_subscribe().await?;
 
-        let self2 = self.clone();
-        smol::spawn(self2.handle_subscribe_request(btc_keys)).detach();
+        smol::spawn(self.handle_subscribe_request(btc_keys)).detach();
 
         Ok(TokenSubscribtion {
             secret_key: serialize(&btc_privkey.to_bytes()),

+ 4 - 6
src/service/sol.rs

@@ -312,11 +312,10 @@ impl NetworkClient for SolClient {
         let public_key = keypair.pubkey().to_string();
         let secret_key = serialize(&keypair);
 
-        let self2 = self.clone();
         // TODO: Option<Pubkey> for 2nd arg representing Token Mint account
         let mint = Pubkey::from_str("F4wkXLN5n1ckejfnJoahGpgW3ffRsrvS9GGVME6ckxS9").unwrap();
-        smol::spawn(self2.handle_subscribe_request(keypair, Some(mint))).detach();
-        //smol::spawn(self2.handle_subscribe_request(keypair, None)).detach();
+        smol::spawn(self.handle_subscribe_request(keypair, Some(mint))).detach();
+        //smol::spawn(self.handle_subscribe_request(keypair, None)).detach();
 
         Ok(TokenSubscribtion {
             secret_key,
@@ -334,11 +333,10 @@ impl NetworkClient for SolClient {
 
         let public_key = keypair.pubkey().to_string();
 
-        let self2 = self.clone();
         // TODO: Option<Pubkey> for 2nd arg representing Token Mint account
         let mint = Pubkey::from_str("F4wkXLN5n1ckejfnJoahGpgW3ffRsrvS9GGVME6ckxS9").unwrap();
-        smol::spawn(self2.handle_subscribe_request(keypair, Some(mint))).detach();
-        //smol::spawn(self2.handle_subscribe_request(keypair, None)).detach();
+        smol::spawn(self.handle_subscribe_request(keypair, Some(mint))).detach();
+        //smol::spawn(self.handle_subscribe_request(keypair, None)).detach();
 
         Ok(public_key)
     }

+ 11 - 11
src/wallet/cashierdb.rs

@@ -61,8 +61,8 @@ impl CashierDb {
 
     pub fn put_main_keys(
         &self,
-        token_key_private: &Vec<u8>,
-        token_key_public: &Vec<u8>,
+        token_key_private: &[u8],
+        token_key_public: &[u8],
         network: &NetworkName,
     ) -> Result<()> {
         debug!(target: "CASHIERDB", "Put main keys");
@@ -118,7 +118,7 @@ impl CashierDb {
 
     pub fn put_withdraw_keys(
         &self,
-        token_key_public: &Vec<u8>,
+        token_key_public: &[u8],
         d_key_public: &jubjub::SubgroupPoint,
         d_key_private: &jubjub::Fr,
         network: &NetworkName,
@@ -157,8 +157,8 @@ impl CashierDb {
     pub fn put_deposit_keys(
         &self,
         d_key_public: &jubjub::SubgroupPoint,
-        token_key_private: &Vec<u8>,
-        token_key_public: &Vec<u8>,
+        token_key_private: &[u8],
+        token_key_public: &[u8],
         network: &NetworkName,
         token_id: &jubjub::Fr,
     ) -> Result<()> {
@@ -206,12 +206,12 @@ impl CashierDb {
                 WHERE confirm = :confirm",
         )?;
 
-        let keys = stmt.query_map(&[(":confirm", &confirm)], |row| Ok(row.get(0)?))?;
+        let keys = stmt.query_map(&[(":confirm", &confirm)], |row| Ok(row.get(0)))?;
 
         let mut private_keys: Vec<jubjub::Fr> = vec![];
 
         for k in keys {
-            let private_key: jubjub::Fr = self.get_value_deserialized(k?)?;
+            let private_key: jubjub::Fr = self.get_value_deserialized(k??)?;
             private_keys.push(private_key);
         }
 
@@ -333,7 +333,7 @@ impl CashierDb {
 
     pub fn get_withdraw_keys_by_token_public_key(
         &self,
-        token_key_public: &Vec<u8>,
+        token_key_public: &[u8],
         network: &NetworkName,
     ) -> Result<Option<Keypair>> {
         debug!(target: "CASHIERDB", "Check for existing token address");
@@ -356,8 +356,8 @@ impl CashierDb {
         let keypair_iter = stmt.query_map(
             &[
                 (":token_key_public", &token_key_public),
-                (":network", &&network),
-                (":confirm", &&confirm),
+                (":network", &network.as_ref()),
+                (":confirm", &confirm.as_ref()),
             ],
             |row| Ok((row.get(0)?, row.get(1)?)),
         )?;
@@ -377,7 +377,7 @@ impl CashierDb {
 
     pub fn confirm_withdraw_key_record(
         &self,
-        token_address: &Vec<u8>,
+        token_address: &[u8],
         network: &NetworkName,
     ) -> Result<()> {
         debug!(target: "CASHIERDB", "Confirm withdraw keys");