finish adding solana network to the bridge

This commit is contained in:
ghassmo
2021-09-24 15:03:54 +03:00
parent 6096792aa0
commit 9a861cf363

View File

@@ -114,9 +114,9 @@ impl Cashierd {
async fn start(&self, executor: Arc<Executor<'static>>) -> 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,
)?;
}