#[macro_export]
macro_rules! parse_pending_transactions {
($res:ident, $txns:expr) => {
$txns.for_each(|tx_key, txn| {
match integer_encoding::VarInt::decode_var(&tx_key) {
Some((tx_id, _)) => {
$res.push(Transaction {
id: tx_id,
to: txn.to,
value: txn.value.clone(),
method: txn.method,
params: txn.params.clone(),
approved: txn.approved.clone(),
});
}
None => anyhow::bail!("Error decoding varint"),
}
Ok(())
})?;
};
}
#[macro_export]
macro_rules! parse_pending_transactions_v3 {
($res:ident, $txns:expr) => {
$txns.for_each(|tx_key, txn| {
match integer_encoding::VarInt::decode_var(&tx_key) {
Some((tx_id, _)) => {
$res.push(Transaction {
id: tx_id,
to: from_address_v3_to_v2(txn.to),
value: from_token_v3_to_v2(&txn.value),
method: txn.method,
params: txn.params.clone(),
approved: txn
.approved
.iter()
.map(|&addr| from_address_v3_to_v2(addr))
.collect(),
});
}
None => anyhow::bail!("Error decoding varint"),
}
Ok(())
})?;
};
}
#[macro_export]
macro_rules! parse_pending_transactions_v4 {
($res:ident, $txns:expr) => {
$txns.for_each(|tx_id, txn| {
$res.push(Transaction {
id: tx_id.0,
to: from_address_v4_to_v2(txn.to),
value: from_token_v4_to_v2(&txn.value),
method: txn.method,
params: txn.params.clone(),
approved: txn
.approved
.iter()
.map(|&addr| from_address_v4_to_v2(addr))
.collect(),
});
Ok(())
})?;
};
}