Add Init message at connection with client
This commit is contained in:
parent
cc2368996f
commit
e708372223
22
src/main.rs
22
src/main.rs
@ -15,11 +15,11 @@ use futures_util::{future, pin_mut, stream::TryStreamExt, FutureExt, StreamExt};
|
|||||||
use log::{debug, error, warn};
|
use log::{debug, error, warn};
|
||||||
use message::{broadcast_message, process_message, BroadcastType, MessageCache, MESSAGECACHE};
|
use message::{broadcast_message, process_message, BroadcastType, MessageCache, MESSAGECACHE};
|
||||||
use scan::compute_partial_tweak_to_transaction;
|
use scan::compute_partial_tweak_to_transaction;
|
||||||
use sdk_common::{process::CACHEDPROCESSES, sp_client::bitcoin::{
|
use sdk_common::{process::CACHEDPROCESSES, sp_client::{bitcoin::{
|
||||||
consensus::deserialize,
|
consensus::deserialize,
|
||||||
hex::{DisplayHex, FromHex},
|
hex::{DisplayHex, FromHex},
|
||||||
Amount, Network, Transaction,
|
Amount, Network, Transaction,
|
||||||
}, MutexExt};
|
}, silentpayments::utils::SilentPaymentAddress}, MutexExt};
|
||||||
use sdk_common::sp_client::{
|
use sdk_common::sp_client::{
|
||||||
bitcoin::OutPoint,
|
bitcoin::OutPoint,
|
||||||
bitcoin::secp256k1::rand::{thread_rng, Rng},
|
bitcoin::secp256k1::rand::{thread_rng, Rng},
|
||||||
@ -159,7 +159,7 @@ fn handle_new_tx_request(new_tx_msg: &NewTxMessage) -> Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn handle_connection(raw_stream: TcpStream, addr: SocketAddr) {
|
async fn handle_connection(raw_stream: TcpStream, addr: SocketAddr, our_sp_address: SilentPaymentAddress) {
|
||||||
debug!("Incoming TCP connection from: {}", addr);
|
debug!("Incoming TCP connection from: {}", addr);
|
||||||
|
|
||||||
let peers = PEERMAP.get().expect("Peer Map not initialized");
|
let peers = PEERMAP.get().expect("Peer Map not initialized");
|
||||||
@ -179,6 +179,16 @@ async fn handle_connection(raw_stream: TcpStream, addr: SocketAddr) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if let Err(e) = broadcast_message(
|
||||||
|
AnkFlag::Init,
|
||||||
|
format!("{}", our_sp_address.to_string()),
|
||||||
|
BroadcastType::Sender(addr)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
log::error!("Failed to send init message: {}", e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let (outgoing, incoming) = ws_stream.split();
|
let (outgoing, incoming) = ws_stream.split();
|
||||||
|
|
||||||
let broadcast_incoming = incoming.try_for_each(|msg| {
|
let broadcast_incoming = incoming.try_for_each(|msg| {
|
||||||
@ -352,10 +362,12 @@ async fn main() -> Result<()> {
|
|||||||
Ok(wallet) => wallet, // TODO check network
|
Ok(wallet) => wallet, // TODO check network
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let our_sp_address = sp_wallet.get_client().get_receiving_address();
|
||||||
|
|
||||||
log::info!(
|
log::info!(
|
||||||
"Using wallet {} with address {}",
|
"Using wallet {} with address {}",
|
||||||
sp_wallet.get_client().label,
|
sp_wallet.get_client().label,
|
||||||
sp_wallet.get_client().get_receiving_address()
|
our_sp_address,
|
||||||
);
|
);
|
||||||
|
|
||||||
log::info!(
|
log::info!(
|
||||||
@ -391,7 +403,7 @@ async fn main() -> Result<()> {
|
|||||||
|
|
||||||
// Let's spawn the handling of each connection in a separate task.
|
// Let's spawn the handling of each connection in a separate task.
|
||||||
while let Ok((stream, addr)) = listener.accept().await {
|
while let Ok((stream, addr)) = listener.accept().await {
|
||||||
tokio::spawn(handle_connection(stream, addr));
|
tokio::spawn(handle_connection(stream, addr, our_sp_address.as_str().try_into().unwrap()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -216,6 +216,7 @@ pub fn process_message(raw_msg: &str, addr: SocketAddr) {
|
|||||||
AnkFlag::Cipher => process_cipher_message(ank_msg, addr),
|
AnkFlag::Cipher => process_cipher_message(ank_msg, addr),
|
||||||
AnkFlag::Commit => process_commit_message(ank_msg, addr),
|
AnkFlag::Commit => process_commit_message(ank_msg, addr),
|
||||||
AnkFlag::Unknown => process_unknown_message(ank_msg, addr),
|
AnkFlag::Unknown => process_unknown_message(ank_msg, addr),
|
||||||
|
AnkFlag::Init => log::debug!("Received init message from {}", addr),
|
||||||
},
|
},
|
||||||
Err(_) => log::error!("Failed to parse network message"),
|
Err(_) => log::error!("Failed to parse network message"),
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user