Skip to content

Commit cdf1009

Browse files
committed
primitives - balances - sum() & new()
1 parent e76aa27 commit cdf1009

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

primitives/src/balances.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ impl Balances<UncheckedState> {
3838
}
3939

4040
impl<S: BalancesState> Balances<S> {
41+
pub fn new() -> Balances<CheckedState> {
42+
Balances {
43+
earners: Default::default(),
44+
spenders: Default::default(),
45+
state: Default::default(),
46+
}
47+
}
48+
4149
pub fn spend(
4250
&mut self,
4351
spender: Address,
@@ -78,6 +86,16 @@ impl<S: BalancesState> Balances<S> {
7886
state: PhantomData::default(),
7987
}
8088
}
89+
90+
/// Returns a tuple of the sum of `(earners, spenders)`
91+
pub fn sum(&self) -> Option<(UnifiedNum, UnifiedNum)> {
92+
self.spenders.values().sum::<Option<UnifiedNum>>().map(|spenders| {
93+
let earners = self.earners.values().sum::<Option<UnifiedNum>>()?;
94+
95+
Some((earners, spenders))
96+
})
97+
.flatten()
98+
}
8199
}
82100

83101
#[derive(Debug, Error)]

0 commit comments

Comments
 (0)