4NK Dev 6bcec5c8ba
All checks were successful
build-and-push-ext / build_push (push) Successful in 1m24s
ci: docker_tag=ext refactor(message): split handlers per type, docs+oss, bump 0.1.1
2025-09-19 23:13:55 +00:00

27 lines
968 B
Rust

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::<NewTxMessage>(&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");
}
}