off_grid_primitives/account/
mod.rs1pub mod futures;
2pub mod spot;
3pub mod option;
4
5use std::collections::HashMap;
6
7pub trait AccountBalances {
9 fn balances(&self) -> &HashMap<Vec<u8>, u64>;
10}
11
12pub fn collect_balances(accounts: &[&dyn AccountBalances], asset_ids: &[Vec<u8>]) -> Vec<(Vec<u8>, u64)> {
14 let mut balances = HashMap::new();
15 for account in accounts {
16 for asset_id in asset_ids {
17 if let Some(amount) = account.balances().get(asset_id) {
18 balances.insert(asset_id.clone(), *amount);
19 }
20 }
21 }
22 balances.into_iter().collect()
23}