pub struct ValuesSentToAddress(pub std::collections::HashMap<String, Vec<u64>>);
pub struct TotalValueToAddress(pub std::collections::HashMap<String, u64>);
pub struct TotalSendsToAddress(pub std::collections::HashMap<String, u64>);
#[derive(Debug)]
pub struct TotalMemoBytesToAddress(pub std::collections::HashMap<String, usize>);
pub struct Finsight {
pub values_sent_to_address: ValuesSentToAddress,
pub total_memobytes_to_address: TotalMemoBytesToAddress,
}
impl ValuesSentToAddress {
pub fn total_value(&self) -> TotalValueToAddress {
TotalValueToAddress(
self.0
.iter()
.map(|(address, values)| (address.clone(), values.iter().sum()))
.collect(),
)
}
pub fn total_sends(&self) -> TotalSendsToAddress {
TotalSendsToAddress(
self.0
.iter()
.map(|(address, values)| (address.clone(), values.len() as u64))
.collect(),
)
}
}
impl From<TotalMemoBytesToAddress> for json::JsonValue {
fn from(value: TotalMemoBytesToAddress) -> Self {
let mut jsonified = json::object!();
let hm = value.0;
for (key, val) in &hm {
jsonified[key] = json::JsonValue::from(*val);
}
jsonified
}
}
impl From<TotalValueToAddress> for json::JsonValue {
fn from(value: TotalValueToAddress) -> Self {
let mut jsonified = json::object!();
let hm = value.0;
for (key, val) in &hm {
jsonified[key] = json::JsonValue::from(*val);
}
jsonified
}
}
impl From<TotalSendsToAddress> for json::JsonValue {
fn from(value: TotalSendsToAddress) -> Self {
let mut jsonified = json::object!();
let hm = value.0;
for (key, val) in &hm {
jsonified[key] = json::JsonValue::from(*val);
}
jsonified
}
}