use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProtoBroadcastResponse {
pub action: String,
pub status: String,
pub success_count: usize,
pub failure_count: usize,
}
impl ProtoBroadcastResponse {
pub fn completed(success_count: usize, failure_count: usize) -> Self {
Self {
action: "broadcast_proto".into(),
status: "completed".into(),
success_count,
failure_count,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BatchBroadcastResponse {
pub action: String,
pub status: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub batch_size: Option<usize>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub hashes: Vec<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub failed: Vec<TxErrorResponse>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TxErrorResponse {
pub index: usize,
pub reason: String,
}