use std::net::SocketAddr; use sdk_common::network::{AnkFlag, Envelope, NewTxMessage}; use crate::handle_new_tx_request; use super::super::broadcast::{broadcast_message, BroadcastType}; pub(crate) fn handle_new_tx(ank_msg: Envelope, addr: SocketAddr) { log::debug!("Received a new tx message"); if let Ok(mut new_tx_msg) = serde_json::from_str::(&ank_msg.content) { if let Err(e) = handle_new_tx_request(&mut new_tx_msg) { log::error!("handle_new_tx_request returned error: {}", e); new_tx_msg.error = Some(e.into()); if let Err(e) = broadcast_message( AnkFlag::NewTx, serde_json::to_string(&new_tx_msg).expect("This shouldn't fail"), BroadcastType::Sender(addr), ) { log::error!("Failed to broadcast message: {}", e); } } } else { log::error!("Invalid content for new_tx message"); } }