Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
0811cb9
update set_controller
Apr 28, 2023
6f0be00
clone
Apr 28, 2023
75beff4
bond uses `stash`
May 3, 2023
74d34ea
remove controller from bond(), chill_other test works
May 3, 2023
fc11538
remove ctlr from testing_utils & dead ctlr -> dead payee
May 3, 2023
35d873c
mvs controllers to stashes for 3 tests
May 3, 2023
6e73503
migrate mock bond fns & fix 1 test
May 3, 2023
0379c65
mvs controllers to stashes for 7 tests
May 3, 2023
d29a6a5
mvs controllers to stashes for 9 tests
May 3, 2023
71289da
remove double_controlling_should_fail
May 3, 2023
5198f53
remove double_staking_should_fail
May 3, 2023
db89911
mvs controllers to stashes for 10 tests
May 3, 2023
d13643e
mvs controllers to stashes for 2 tests
May 3, 2023
79f9756
remove payout_creates_controller
May 3, 2023
b5d5426
mvs controllers to stashes for 27 tests
May 3, 2023
b2f0ae1
remove println!
May 3, 2023
9eeb647
fix rewards_should_work
May 3, 2023
93c012f
fix test_payout_stakers
May 3, 2023
efec776
fix bond benchmark
May 3, 2023
b3a1e3f
clone
May 3, 2023
ceb8637
rm unused import
May 3, 2023
24f8dd0
rm unused var
May 3, 2023
c3bf984
rm controller from create_offender
May 3, 2023
dd857e6
fix GenesisConfig stakers
May 4, 2023
6fb61f4
fix controllers in consensus pallets
May 4, 2023
17bba2c
fix unqiue controller in chain_spec
May 4, 2023
465bc13
fmt
May 4, 2023
0d5adaa
fix create_offender
May 4, 2023
7b978ea
fix set_controller benchmark
May 4, 2023
bd91aae
add TODO
May 4, 2023
d8a38ca
Merge remote-tracking branch 'origin/master' into rb-set-controller-t…
May 8, 2023
09cf1d8
Merge remote-tracking branch 'origin/master' into rb-set-controller-t…
May 9, 2023
ada3aeb
create_unique_stash_controller
May 9, 2023
d63f28f
staking benchmarks working
May 9, 2023
36fe69e
fmt
May 9, 2023
e74e8df
fix args
May 9, 2023
e5ce360
rm println
May 9, 2023
d8b0012
import
May 9, 2023
0009a84
import
May 9, 2023
177896e
fix fast unstake tests
May 9, 2023
76547e0
fix staking-tests-e2e
May 9, 2023
55cf31a
fix root-offenses
May 9, 2023
bed8298
fmt
May 9, 2023
8b7e46e
differentiate controller to stash
May 9, 2023
4772a72
bring back change_controller_works w. unique ctrl
May 9, 2023
813f460
bring back double_staking_should_fail
May 9, 2023
dbdb1a6
double_controlling_attempt_should_fail
May 9, 2023
74314f8
bring back payout_creates_controller
May 9, 2023
5243561
add commnet to controller balances
May 9, 2023
cd751a2
+ set_controller call description
May 9, 2023
7580e0d
fmt
May 9, 2023
ead11a9
rm clones
May 9, 2023
e43a676
fmt
May 9, 2023
d94fa54
clippy fixes
May 9, 2023
ba21e58
fmt
May 9, 2023
7b52879
update README
May 9, 2023
74b29aa
small fixes
May 9, 2023
63c9c14
Merge remote-tracking branch 'origin/master' into rb-set-controller-t…
May 9, 2023
106f163
Merge remote-tracking branch 'origin/master' into rb-set-controller-t…
May 10, 2023
701359c
Merge remote-tracking branch 'origin/master' into rb-set-controller-t…
May 10, 2023
6572712
use controller_to_be_deprecated
May 10, 2023
d949382
.comment
May 10, 2023
b5a765e
Merge remote-tracking branch 'origin/master' into rb-set-controller-t…
May 11, 2023
86505f0
comment
May 11, 2023
8c0ae32
Merge remote-tracking branch 'origin/master' into rb-set-controller-t…
May 11, 2023
8a3e876
bump zombienet version
pepoviola May 11, 2023
fa530a3
ci
May 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix fast unstake tests
  • Loading branch information
Ross Bulat committed May 9, 2023
commit 177896ea8e7f3eab8d9b8f16451b2fa8c53a43c6
16 changes: 5 additions & 11 deletions frame/fast-unstake/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -234,11 +234,11 @@ impl Default for ExtBuilder {
fn default() -> Self {
Self {
unexposed: vec![
(1, 2, 7 + 100),
(3, 4, 7 + 100),
(5, 6, 7 + 100),
(7, 8, 7 + 100),
(9, 10, 7 + 100),
(1, 1, 7 + 100),
(3, 3, 7 + 100),
(5, 5, 7 + 100),
(7, 7, 7 + 100),
(9, 9, 7 + 100),
],
}
}
Expand Down Expand Up @@ -290,12 +290,6 @@ impl ExtBuilder {
.clone()
.into_iter()
.map(|(stash, _, balance)| (stash, balance * 2))
.chain(
self.unexposed
.clone()
.into_iter()
.map(|(_, ctrl, balance)| (ctrl, balance * 2)),
)
.chain(validators_range.clone().map(|x| (x, 7 + 100)))
.chain(nominators_range.clone().map(|x| (x, 7 + 100)))
.collect::<Vec<_>>(),
Expand Down
90 changes: 45 additions & 45 deletions frame/fast-unstake/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ fn register_works() {
ExtBuilder::default().build_and_execute(|| {
ErasToCheckPerBlock::<T>::put(1);
// Controller account registers for fast unstake.
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
// Ensure stash is in the queue.
assert_ne!(Queue::<T>::get(1), None);
});
Expand All @@ -52,7 +52,7 @@ fn register_insufficient_funds_fails() {

// Controller account registers for fast unstake.
assert_noop!(
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)),
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)),
BalancesError::<T, _>::InsufficientBalance,
);

Expand All @@ -65,7 +65,7 @@ fn register_insufficient_funds_fails() {
fn register_disabled_fails() {
ExtBuilder::default().build_and_execute(|| {
assert_noop!(
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)),
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)),
Error::<T>::CallNotAllowed
);
});
Expand All @@ -81,7 +81,7 @@ fn cannot_register_if_not_bonded() {
}
// Attempt to fast unstake.
assert_noop!(
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)),
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)),
Error::<T>::NotController
);
});
Expand All @@ -95,7 +95,7 @@ fn cannot_register_if_in_queue() {
Queue::<T>::insert(1, 10);
// Cannot re-register, already in queue
assert_noop!(
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)),
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)),
Error::<T>::AlreadyQueued
);
});
Expand All @@ -112,7 +112,7 @@ fn cannot_register_if_head() {
});
// Controller attempts to regsiter
assert_noop!(
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)),
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)),
Error::<T>::AlreadyHead
);
});
Expand All @@ -123,10 +123,10 @@ fn cannot_register_if_has_unlocking_chunks() {
ExtBuilder::default().build_and_execute(|| {
ErasToCheckPerBlock::<T>::put(1);
// Start unbonding half of staked tokens
assert_ok!(Staking::unbond(RuntimeOrigin::signed(2), 50_u128));
assert_ok!(Staking::unbond(RuntimeOrigin::signed(1), 50_u128));
// Cannot register for fast unstake with unlock chunks active
assert_noop!(
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)),
FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)),
Error::<T>::NotFullyBonded
);
});
Expand All @@ -140,11 +140,11 @@ fn deregister_works() {
assert_eq!(<T as Config>::Currency::reserved_balance(&1), 0);

// Controller account registers for fast unstake.
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_eq!(<T as Config>::Currency::reserved_balance(&1), Deposit::get());

// Controller then changes mind and deregisters.
assert_ok!(FastUnstake::deregister(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::deregister(RuntimeOrigin::signed(1)));
assert_eq!(<T as Config>::Currency::reserved_balance(&1), 0);

// Ensure stash no longer exists in the queue.
Expand All @@ -156,20 +156,20 @@ fn deregister_works() {
fn deregister_disabled_fails() {
ExtBuilder::default().build_and_execute(|| {
ErasToCheckPerBlock::<T>::put(1);
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
ErasToCheckPerBlock::<T>::put(0);
assert_noop!(FastUnstake::deregister(RuntimeOrigin::signed(2)), Error::<T>::CallNotAllowed);
assert_noop!(FastUnstake::deregister(RuntimeOrigin::signed(1)), Error::<T>::CallNotAllowed);
});
}

#[test]
fn cannot_deregister_if_not_controller() {
ExtBuilder::default().build_and_execute(|| {
ErasToCheckPerBlock::<T>::put(1);
// Controller account registers for fast unstake.
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
// Stash tries to deregister.
assert_noop!(FastUnstake::deregister(RuntimeOrigin::signed(1)), Error::<T>::NotController);
// Controller (same as stash) account registers for fast unstake.
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
// Another account tries to deregister.
assert_noop!(FastUnstake::deregister(RuntimeOrigin::signed(2)), Error::<T>::NotController);
});
}

Expand All @@ -178,7 +178,7 @@ fn cannot_deregister_if_not_queued() {
ExtBuilder::default().build_and_execute(|| {
ErasToCheckPerBlock::<T>::put(1);
// Controller tries to deregister without first registering
assert_noop!(FastUnstake::deregister(RuntimeOrigin::signed(2)), Error::<T>::NotQueued);
assert_noop!(FastUnstake::deregister(RuntimeOrigin::signed(1)), Error::<T>::NotQueued);
});
}

Expand All @@ -187,14 +187,14 @@ fn cannot_deregister_already_head() {
ExtBuilder::default().build_and_execute(|| {
ErasToCheckPerBlock::<T>::put(1);
// Controller attempts to register, should fail
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
// Insert some Head item for stash.
Head::<T>::put(UnstakeRequest {
stashes: bounded_vec![(1, Deposit::get())],
checked: bounded_vec![],
});
// Controller attempts to deregister
assert_noop!(FastUnstake::deregister(RuntimeOrigin::signed(2)), Error::<T>::AlreadyHead);
assert_noop!(FastUnstake::deregister(RuntimeOrigin::signed(1)), Error::<T>::AlreadyHead);
});
}

Expand All @@ -210,7 +210,7 @@ fn control_works() {
fn control_must_be_control_origin() {
ExtBuilder::default().build_and_execute(|| {
// account without control (root) origin wants to only check 1 era per block.
assert_noop!(FastUnstake::control(RuntimeOrigin::signed(1), 1_u32), BadOrigin);
assert_noop!(FastUnstake::control(RuntimeOrigin::signed(2), 1_u32), BadOrigin);
});
}

Expand All @@ -224,7 +224,7 @@ mod on_idle {
CurrentEra::<T>::put(BondingDuration::get());

// set up Queue item
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_eq!(Queue::<T>::get(1), Some(Deposit::get()));

// call on_idle with no remaining weight
Expand All @@ -245,11 +245,11 @@ mod on_idle {
// given
assert_eq!(<T as Config>::Currency::reserved_balance(&1), 0);

assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(4)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(6)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(8)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(10)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(3)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(5)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(7)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(9)));

assert_eq!(<T as Config>::Currency::reserved_balance(&1), Deposit::get());

Expand Down Expand Up @@ -310,9 +310,9 @@ mod on_idle {
CurrentEra::<T>::put(BondingDuration::get());

// register multi accounts for fast unstake
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_eq!(Queue::<T>::get(1), Some(Deposit::get()));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(4)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(3)));
assert_eq!(Queue::<T>::get(3), Some(Deposit::get()));

// assert 2 queue items are in Queue & None in Head to start with
Expand Down Expand Up @@ -363,7 +363,7 @@ mod on_idle {
CurrentEra::<T>::put(BondingDuration::get());

// register for fast unstake
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_eq!(Queue::<T>::get(1), Some(Deposit::get()));

// process on idle
Expand Down Expand Up @@ -405,7 +405,7 @@ mod on_idle {
Balances::make_free_balance_be(&2, 100);

// register for fast unstake
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_eq!(Queue::<T>::get(1), Some(Deposit::get()));

// process on idle
Expand Down Expand Up @@ -446,7 +446,7 @@ mod on_idle {
CurrentEra::<T>::put(BondingDuration::get());

// register for fast unstake
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_eq!(Queue::<T>::get(1), Some(Deposit::get()));

// process on idle
Expand Down Expand Up @@ -524,7 +524,7 @@ mod on_idle {
CurrentEra::<T>::put(BondingDuration::get());

// register for fast unstake
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_eq!(Queue::<T>::get(1), Some(Deposit::get()));

next_block(true);
Expand Down Expand Up @@ -605,7 +605,7 @@ mod on_idle {
CurrentEra::<T>::put(BondingDuration::get());

// register for fast unstake
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));

// process 2 blocks
next_block(true);
Expand Down Expand Up @@ -851,10 +851,10 @@ mod batched {
ErasToCheckPerBlock::<T>::put(BondingDuration::get() + 1);
CurrentEra::<T>::put(BondingDuration::get());

assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(4)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(6)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(8)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(3)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(5)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(7)));

assert_eq!(Queue::<T>::count(), 4);
assert_eq!(Head::<T>::get(), None);
Expand Down Expand Up @@ -902,10 +902,10 @@ mod batched {
ErasToCheckPerBlock::<T>::put(2);
CurrentEra::<T>::put(BondingDuration::get());

assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(4)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(6)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(8)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(3)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(5)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(7)));

assert_eq!(Queue::<T>::count(), 4);
assert_eq!(Head::<T>::get(), None);
Expand Down Expand Up @@ -969,8 +969,8 @@ mod batched {
CurrentEra::<T>::put(BondingDuration::get());

// register two good ones.
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(4)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(3)));
create_exposed_nominator(666, 1);
create_exposed_nominator(667, 3);

Expand Down Expand Up @@ -1045,8 +1045,8 @@ mod batched {
next_block(true);

// ..and register two good ones.
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(2)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(4)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(1)));
assert_ok!(FastUnstake::register_fast_unstake(RuntimeOrigin::signed(3)));

// then one of the bad ones is reaped.
assert_eq!(
Expand Down