Fix srml-balance burn implementation (#3443)

* tests

* fix

* bump version
This commit is contained in:
thiolliere
2019-08-20 20:32:00 +02:00
committed by Gavin Wood
parent 2c0e73b78c
commit 71cee78d85
3 changed files with 23 additions and 4 deletions
+4 -4
View File
@@ -824,12 +824,12 @@ where
}
fn burn(mut amount: Self::Balance) -> Self::PositiveImbalance {
<TotalIssuance<T, I>>::mutate(|issued|
issued.checked_sub(&amount).unwrap_or_else(|| {
<TotalIssuance<T, I>>::mutate(|issued| {
*issued = issued.checked_sub(&amount).unwrap_or_else(|| {
amount = *issued;
Zero::zero()
})
);
});
});
PositiveImbalance::new(amount)
}
+16
View File
@@ -789,3 +789,19 @@ fn signed_extension_take_fees_is_bounded() {
}
);
}
#[test]
fn burn_must_work() {
with_externalities(
&mut ExtBuilder::default()
.monied(true)
.build(),
|| {
let init_total_issuance = Balances::total_issuance();
let imbalance = Balances::burn(10);
assert_eq!(Balances::total_issuance(), init_total_issuance - 10);
drop(imbalance);
assert_eq!(Balances::total_issuance(), init_total_issuance);
}
);
}
+3
View File
@@ -507,10 +507,13 @@ mod tests {
#[test]
fn unused_pot_should_diminish() {
with_externalities(&mut new_test_ext(), || {
let init_total_issuance = Balances::total_issuance();
Treasury::on_dilution(100, 100);
assert_eq!(Balances::total_issuance(), init_total_issuance + 100);
<Treasury as OnFinalize<u64>>::on_finalize(2);
assert_eq!(Treasury::pot(), 50);
assert_eq!(Balances::total_issuance(), init_total_issuance + 50);
});
}