More memory cleanups.

This commit is contained in:
parazyd
2021-09-29 16:31:35 +02:00
parent d8f729de55
commit 71f3bcace4
4 changed files with 23 additions and 26 deletions

View File

@@ -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 }
}

View File

@@ -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()),

View File

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

View File

@@ -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");