#[macro_export]
macro_rules! get_base_address_macro {
($client:expr, $address_protocol:expr) => {
match $address_protocol {
"unified" => $client
.do_addresses($crate::lightclient::describe::UAReceivers::All)
.await[0]["address"]
.take()
.to_string(),
"sapling" => $client
.do_addresses($crate::lightclient::describe::UAReceivers::All)
.await[0]["receivers"]["sapling"]
.clone()
.to_string(),
"transparent" => $client
.do_addresses($crate::lightclient::describe::UAReceivers::All)
.await[0]["receivers"]["transparent"]
.clone()
.to_string(),
_ => "ERROR".to_string(),
}
};
}
#[macro_export]
macro_rules! check_client_balances {
($client:ident, o: $orchard:tt s: $sapling:tt t: $transparent:tt) => {
use zingolib::wallet::data::summaries::TransactionSummaryInterface as _;
let balance = $client.do_balance().await;
assert_eq!(
balance.orchard_balance.unwrap(),
$orchard,
"\no_balance: {} expectation: {} ",
balance.orchard_balance.unwrap(),
$orchard
);
assert_eq!(
balance.sapling_balance.unwrap(),
$sapling,
"\ns_balance: {} expectation: {} ",
balance.sapling_balance.unwrap(),
$sapling
);
assert_eq!(
balance.confirmed_transparent_balance.unwrap(),
$transparent,
"\nt_balance: {} expectation: {} ",
balance.confirmed_transparent_balance.unwrap(),
$transparent
);
let summaries = $client.transaction_summaries().await.unwrap();
let summaries_balance = summaries
.iter()
.map(|summary| {
summary
.balance_delta()
.unwrap_or_else(|| panic!("field not correctly populated"))
})
.sum::<i64>();
assert_eq!(
(balance.orchard_balance.unwrap()
+ balance.sapling_balance.unwrap()
+ balance.confirmed_transparent_balance.unwrap()) as i64,
summaries_balance,
"transaction_summaries: {}",
summaries
);
};
}