mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-20 12:45:40 +00:00
fix unreserve_all_named (#9042)
This commit is contained in:
@@ -1082,5 +1082,78 @@ macro_rules! decl_tests {
|
|||||||
assert_eq!(Balances::free_balance(&1), 52);
|
assert_eq!(Balances::free_balance(&1), 52);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn ensure_reserved_named_should_work() {
|
||||||
|
<$ext_builder>::default().build().execute_with(|| {
|
||||||
|
let _ = Balances::deposit_creating(&1, 111);
|
||||||
|
|
||||||
|
let id = [1u8; 8];
|
||||||
|
|
||||||
|
assert_ok!(Balances::ensure_reserved_named(&id, &1, 15));
|
||||||
|
assert_eq!(Balances::reserved_balance_named(&id, &1), 15);
|
||||||
|
|
||||||
|
assert_ok!(Balances::ensure_reserved_named(&id, &1, 10));
|
||||||
|
assert_eq!(Balances::reserved_balance_named(&id, &1), 10);
|
||||||
|
|
||||||
|
assert_ok!(Balances::ensure_reserved_named(&id, &1, 20));
|
||||||
|
assert_eq!(Balances::reserved_balance_named(&id, &1), 20);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unreserve_all_named_should_work() {
|
||||||
|
<$ext_builder>::default().build().execute_with(|| {
|
||||||
|
let _ = Balances::deposit_creating(&1, 111);
|
||||||
|
|
||||||
|
let id = [1u8; 8];
|
||||||
|
|
||||||
|
assert_ok!(Balances::reserve_named(&id, &1, 15));
|
||||||
|
|
||||||
|
assert_eq!(Balances::unreserve_all_named(&id, &1), 15);
|
||||||
|
assert_eq!(Balances::reserved_balance_named(&id, &1), 0);
|
||||||
|
assert_eq!(Balances::free_balance(&1), 111);
|
||||||
|
|
||||||
|
assert_eq!(Balances::unreserve_all_named(&id, &1), 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn slash_all_reserved_named_should_work() {
|
||||||
|
<$ext_builder>::default().build().execute_with(|| {
|
||||||
|
let _ = Balances::deposit_creating(&1, 111);
|
||||||
|
|
||||||
|
let id = [1u8; 8];
|
||||||
|
|
||||||
|
assert_ok!(Balances::reserve_named(&id, &1, 15));
|
||||||
|
|
||||||
|
assert_eq!(Balances::slash_all_reserved_named(&id, &1).peek(), 15);
|
||||||
|
assert_eq!(Balances::reserved_balance_named(&id, &1), 0);
|
||||||
|
assert_eq!(Balances::free_balance(&1), 96);
|
||||||
|
|
||||||
|
assert_eq!(Balances::slash_all_reserved_named(&id, &1).peek(), 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn repatriate_all_reserved_named_should_work() {
|
||||||
|
<$ext_builder>::default().build().execute_with(|| {
|
||||||
|
let _ = Balances::deposit_creating(&1, 111);
|
||||||
|
let _ = Balances::deposit_creating(&2, 10);
|
||||||
|
let _ = Balances::deposit_creating(&3, 10);
|
||||||
|
|
||||||
|
let id = [1u8; 8];
|
||||||
|
|
||||||
|
assert_ok!(Balances::reserve_named(&id, &1, 15));
|
||||||
|
|
||||||
|
assert_ok!(Balances::repatriate_all_reserved_named(&id, &1, &2, Status::Reserved));
|
||||||
|
assert_eq!(Balances::reserved_balance_named(&id, &1), 0);
|
||||||
|
assert_eq!(Balances::reserved_balance_named(&id, &2), 15);
|
||||||
|
|
||||||
|
assert_ok!(Balances::repatriate_all_reserved_named(&id, &2, &3, Status::Free));
|
||||||
|
assert_eq!(Balances::reserved_balance_named(&id, &2), 0);
|
||||||
|
assert_eq!(Balances::free_balance(&3), 25);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ pub trait NamedReservableCurrency<AccountId>: ReservableCurrency<AccountId> {
|
|||||||
/// Is a no-op if the value to be unreserved is zero.
|
/// Is a no-op if the value to be unreserved is zero.
|
||||||
fn unreserve_all_named(id: &Self::ReserveIdentifier, who: &AccountId) -> Self::Balance {
|
fn unreserve_all_named(id: &Self::ReserveIdentifier, who: &AccountId) -> Self::Balance {
|
||||||
let value = Self::reserved_balance_named(id, who);
|
let value = Self::reserved_balance_named(id, who);
|
||||||
Self::slash_reserved_named(id, who, value);
|
Self::unreserve_named(id, who, value);
|
||||||
value
|
value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user