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 message::{broadcast_message, process_message, BroadcastType, MessageCache, MESSAGECACHE};
|
||||
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,
|
||||
hex::{DisplayHex, FromHex},
|
||||
Amount, Network, Transaction,
|
||||
}, MutexExt};
|
||||
}, silentpayments::utils::SilentPaymentAddress}, MutexExt};
|
||||
use sdk_common::sp_client::{
|
||||
bitcoin::OutPoint,
|
||||
bitcoin::secp256k1::rand::{thread_rng, Rng},
|
||||
@ -159,7 +159,7 @@ fn handle_new_tx_request(new_tx_msg: &NewTxMessage) -> Result<()> {
|
||||
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);
|
||||
|
||||
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 broadcast_incoming = incoming.try_for_each(|msg| {
|
||||
@ -352,10 +362,12 @@ async fn main() -> Result<()> {
|
||||
Ok(wallet) => wallet, // TODO check network
|
||||
};
|
||||
|
||||
let our_sp_address = sp_wallet.get_client().get_receiving_address();
|
||||
|
||||
log::info!(
|
||||
"Using wallet {} with address {}",
|
||||
sp_wallet.get_client().label,
|
||||
sp_wallet.get_client().get_receiving_address()
|
||||
our_sp_address,
|
||||
);
|
||||
|
||||
log::info!(
|
||||
@ -391,7 +403,7 @@ async fn main() -> Result<()> {
|
||||
|
||||
// Let's spawn the handling of each connection in a separate task.
|
||||
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(())
|
||||
|
@ -216,6 +216,7 @@ pub fn process_message(raw_msg: &str, addr: SocketAddr) {
|
||||
AnkFlag::Cipher => process_cipher_message(ank_msg, addr),
|
||||
AnkFlag::Commit => process_commit_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"),
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user