mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-07 01:28:07 +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);
|
||||
});
|
||||
}
|
||||
|
||||
#[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.
|
||||
fn unreserve_all_named(id: &Self::ReserveIdentifier, who: &AccountId) -> Self::Balance {
|
||||
let value = Self::reserved_balance_named(id, who);
|
||||
Self::slash_reserved_named(id, who, value);
|
||||
Self::unreserve_named(id, who, value);
|
||||
value
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user