diff --git a/src/bin/cashierd.rs b/src/bin/cashierd.rs index 16932b67b..5b7056a2a 100644 --- a/src/bin/cashierd.rs +++ b/src/bin/cashierd.rs @@ -114,9 +114,9 @@ impl Cashierd { async fn start(&self, executor: Arc>) -> Result<()> { self.cashier_wallet.init_db()?; - let bridge = Bridge::new(); for (feature_name, _) in self.features.iter() { + let bridge2 = self.bridge.clone(); match feature_name.as_str() { #[cfg(feature = "sol")] "sol" | "solana" => { @@ -124,8 +124,8 @@ impl Cashierd { use drk::service::SolClient; use solana_sdk::signer::keypair::Keypair; let main_keypari = Keypair::new(); - let _sol_client = SolClient::new(serialize(&main_keypari)); - //bridge.add_clients(sol_client).await?; + let sol_client = SolClient::new(serialize(&main_keypari)).await?; + bridge2.add_clients("sol".into(), sol_client).await?; } #[cfg(feature = "btc")] "btc" | "bitcoin" => { @@ -135,8 +135,8 @@ impl Cashierd { String::from("ssl://blockstream.info:993"), ); use drk::service::btc::BtcClient; - let _btc_client = BtcClient::new(btc_endpoint); - //bridge.add_clients(sol_client).await?; + let _btc_client = BtcClient::new(btc_endpoint)?; + //bridge2.add_clients("btc".into(), btc_client).await?; } _ => { warn!("No feature enabled for {} network", feature_name); @@ -156,6 +156,7 @@ impl Cashierd { )); let cashier_wallet = self.cashier_wallet.clone(); + let bridge = self.bridge.clone(); let listen_for_receiving_coins_task = smol::spawn(async move { loop { Self::listen_for_receiving_coins( @@ -200,10 +201,11 @@ impl Cashierd { // send a request to bridge to send equivalent amount of // received drk coin to token publickey - if let Some((addr, asset_id)) = token { + if let Some((addr, network, asset_id)) = token { bridge_subscribtion .sender .send(bridge::BridgeRequests { + network: network.to_string(), asset_id, payload: bridge::BridgeRequestsPayload::SendRequest(addr.clone(), amount), }) @@ -239,10 +241,11 @@ impl Cashierd { } let network = &args[0].as_str().unwrap(); + let network = network.to_string(); let token_id = &args[1]; let drk_pub_key = &args[2].as_str().unwrap(); - if !self.features.contains_key(network.clone()) { + if !self.features.contains_key(&network.clone()) { return JsonResult::Err(jsonerr( InvalidParams, Some(format!("Cashier doesn't support this network: {}", network)), @@ -267,6 +270,7 @@ impl Cashierd { bridge_subscribtion .sender .send(bridge::BridgeRequests { + network: network.clone(), asset_id, payload: bridge::BridgeRequestsPayload::WatchRequest, }) @@ -287,6 +291,7 @@ impl Cashierd { &drk_pub_key, &token_priv, &serialize(&token_pub), + &network, &asset_id, )?; @@ -347,6 +352,7 @@ impl Cashierd { &address, &cashier_public, &cashier_secret, + &network.to_string(), &asset_id, )?; }