mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 18:37:59 +00:00
Decouple Phragmen from Staking. (#3498)
* Move phragmen to primitives * Improved docs * New crate. * Update lock. * Fix dependency. * Fix build. * Add basic testing and truth-value implementation with float types * Update srml/staking/src/lib.rs * Nits. * Bump. * Fix benchmarks.
This commit is contained in:
@@ -18,7 +18,6 @@
|
||||
|
||||
use super::*;
|
||||
use runtime_io::with_externalities;
|
||||
use phragmen;
|
||||
use sr_primitives::traits::OnInitialize;
|
||||
use sr_staking_primitives::offence::{OffenceDetails, OnOffenceHandler};
|
||||
use srml_support::{assert_ok, assert_noop, assert_eq_uvec, EnumerableStorageMap};
|
||||
@@ -1429,19 +1428,20 @@ fn phragmen_poc_2_works() {
|
||||
assert_ok!(Staking::bond(Origin::signed(3), 4, 1000, RewardDestination::default()));
|
||||
assert_ok!(Staking::nominate(Origin::signed(4), vec![11, 31]));
|
||||
|
||||
let winners = phragmen::elect::<Test, _, _, _>(
|
||||
let results = phragmen::elect::<_, _, _, <Test as Trait>::CurrencyToVote>(
|
||||
2,
|
||||
Staking::minimum_validator_count() as usize,
|
||||
<Validators<Test>>::enumerate(),
|
||||
<Nominators<Test>>::enumerate(),
|
||||
<Validators<Test>>::enumerate().map(|(who, _)| who).collect::<Vec<u64>>(),
|
||||
<Nominators<Test>>::enumerate().collect(),
|
||||
Staking::slashable_balance_of,
|
||||
true,
|
||||
);
|
||||
|
||||
let (winners, assignment) = winners.unwrap();
|
||||
let phragmen::PhragmenResult { winners, assignments } = results.unwrap();
|
||||
|
||||
// 10 and 30 must be the winners
|
||||
assert_eq!(winners, vec![11, 31]);
|
||||
assert_eq!(assignment, vec![
|
||||
assert_eq!(assignments, vec![
|
||||
(3, vec![(11, 2816371998), (31, 1478595298)]),
|
||||
(1, vec![(11, 4294967296)]),
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user