mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-21 00:31:02 +00:00
NIS should retain funds in reserve (#12928)
* Keep funds with receipt holder * Counterpart is optional * Use named reserves * Tests * Benchmarks * Fixes * Update frame/nis/src/lib.rs Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> * Update frame/nis/src/lib.rs Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> * Update frame/nis/src/lib.rs * Update frame/nis/src/lib.rs * Update frame/nis/src/tests.rs * Update frame/nis/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/nis/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/nis/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/nis/src/lib.rs * Update frame/nis/src/lib.rs * Update frame/nis/src/lib.rs * Update frame/nis/src/lib.rs * Formatting Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
|
||||
use super::*;
|
||||
use frame_benchmarking::{account, benchmarks, whitelisted_caller};
|
||||
use frame_support::traits::{Currency, EnsureOrigin, Get};
|
||||
use frame_support::traits::{nonfungible::Inspect, Currency, EnsureOrigin, Get};
|
||||
use frame_system::RawOrigin;
|
||||
use sp_arithmetic::Perquintill;
|
||||
use sp_runtime::{
|
||||
@@ -106,6 +106,7 @@ benchmarks! {
|
||||
T::Currency::make_free_balance_be(&caller, bid);
|
||||
Nis::<T>::place_bid(RawOrigin::Signed(caller.clone()).into(), bid, 1)?;
|
||||
Nis::<T>::process_queues(Perquintill::one(), 1, 1, &mut WeightCounter::unlimited());
|
||||
Nis::<T>::communify(RawOrigin::Signed(caller.clone()).into(), 0)?;
|
||||
let original = T::Currency::free_balance(&Nis::<T>::account_id());
|
||||
T::Currency::make_free_balance_be(&Nis::<T>::account_id(), BalanceOf::<T>::min_value());
|
||||
}: _<T::RuntimeOrigin>(origin)
|
||||
@@ -116,7 +117,7 @@ benchmarks! {
|
||||
assert!(missing <= Perquintill::one() / 100_000);
|
||||
}
|
||||
|
||||
thaw {
|
||||
thaw_private {
|
||||
let caller: T::AccountId = whitelisted_caller();
|
||||
T::Currency::make_free_balance_be(&caller, T::MinBid::get() * BalanceOf::<T>::from(3u32));
|
||||
Nis::<T>::place_bid(RawOrigin::Signed(caller.clone()).into(), T::MinBid::get(), 1)?;
|
||||
@@ -128,6 +129,42 @@ benchmarks! {
|
||||
assert!(Receipts::<T>::get(0).is_none());
|
||||
}
|
||||
|
||||
thaw_communal {
|
||||
let caller: T::AccountId = whitelisted_caller();
|
||||
T::Currency::make_free_balance_be(&caller, T::MinBid::get() * BalanceOf::<T>::from(3u32));
|
||||
Nis::<T>::place_bid(RawOrigin::Signed(caller.clone()).into(), T::MinBid::get(), 1)?;
|
||||
Nis::<T>::place_bid(RawOrigin::Signed(caller.clone()).into(), T::MinBid::get(), 1)?;
|
||||
Nis::<T>::process_queues(Perquintill::one(), 1, 2, &mut WeightCounter::unlimited());
|
||||
Receipts::<T>::mutate(0, |m_g| if let Some(ref mut g) = m_g { g.expiry = Zero::zero() });
|
||||
Nis::<T>::communify(RawOrigin::Signed(caller.clone()).into(), 0)?;
|
||||
}: _(RawOrigin::Signed(caller.clone()), 0)
|
||||
verify {
|
||||
assert!(Receipts::<T>::get(0).is_none());
|
||||
}
|
||||
|
||||
privatize {
|
||||
let caller: T::AccountId = whitelisted_caller();
|
||||
T::Currency::make_free_balance_be(&caller, T::MinBid::get() * BalanceOf::<T>::from(3u32));
|
||||
Nis::<T>::place_bid(RawOrigin::Signed(caller.clone()).into(), T::MinBid::get(), 1)?;
|
||||
Nis::<T>::place_bid(RawOrigin::Signed(caller.clone()).into(), T::MinBid::get(), 1)?;
|
||||
Nis::<T>::process_queues(Perquintill::one(), 1, 2, &mut WeightCounter::unlimited());
|
||||
Nis::<T>::communify(RawOrigin::Signed(caller.clone()).into(), 0)?;
|
||||
}: _(RawOrigin::Signed(caller.clone()), 0)
|
||||
verify {
|
||||
assert_eq!(Nis::<T>::owner(&0), Some(caller));
|
||||
}
|
||||
|
||||
communify {
|
||||
let caller: T::AccountId = whitelisted_caller();
|
||||
T::Currency::make_free_balance_be(&caller, T::MinBid::get() * BalanceOf::<T>::from(3u32));
|
||||
Nis::<T>::place_bid(RawOrigin::Signed(caller.clone()).into(), T::MinBid::get(), 1)?;
|
||||
Nis::<T>::place_bid(RawOrigin::Signed(caller.clone()).into(), T::MinBid::get(), 1)?;
|
||||
Nis::<T>::process_queues(Perquintill::one(), 1, 2, &mut WeightCounter::unlimited());
|
||||
}: _(RawOrigin::Signed(caller.clone()), 0)
|
||||
verify {
|
||||
assert_eq!(Nis::<T>::owner(&0), None);
|
||||
}
|
||||
|
||||
process_queues {
|
||||
fill_queues::<T>()?;
|
||||
}: {
|
||||
|
||||
Reference in New Issue
Block a user