mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 05:51:02 +00:00
Remove Default bound for AccountId (#10403)
* Remove Default for AccountId * More removals of default * Update frame/authorship/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/authorship/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/authorship/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/authorship/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * More work * More work * Remove old code * More work * pallet-asset-tx-payment * tips * sc-consensus-babe * sc-finality-grandpa * sc-consensus-babe-rpc * sc-cli * make npos crates accept non-default account (#10420) * minimal changes to make npos pallets all work * make this pesky reduce.rs a bit cleaner * more work * more work * Tests build * Fix imonline tests * Formatting * Fixes * Fixes * Fix bench * Fixes * Fixes * Fixes * Fixes * Fixes * Formatting * Fixes * Formatting * Fixes * Formatting * Fixes * Formatting * Fixes * Formatting * Update client/keystore/src/local.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/finality-grandpa/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/keystore/src/local.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update client/keystore/src/local.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/staking/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update frame/staking/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Update primitives/runtime/src/traits.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Formatting Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by: kianenigma <kian@parity.io>
This commit is contained in:
@@ -21,6 +21,7 @@ use super::*;
|
||||
use crate::Pallet as Staking;
|
||||
use testing_utils::*;
|
||||
|
||||
use codec::Decode;
|
||||
use frame_election_provider_support::SortedListProvider;
|
||||
use frame_support::{
|
||||
dispatch::UnfilteredDispatchable,
|
||||
@@ -28,7 +29,7 @@ use frame_support::{
|
||||
traits::{Currency, CurrencyToVote, Get, Imbalance},
|
||||
};
|
||||
use sp_runtime::{
|
||||
traits::{Bounded, One, StaticLookup, Zero},
|
||||
traits::{Bounded, One, StaticLookup, TrailingZeroInput, Zero},
|
||||
Perbill, Percent,
|
||||
};
|
||||
use sp_staking::SessionIndex;
|
||||
@@ -535,8 +536,9 @@ benchmarks! {
|
||||
let s in 1 .. MAX_SLASHES;
|
||||
let mut unapplied_slashes = Vec::new();
|
||||
let era = EraIndex::one();
|
||||
let dummy = || T::AccountId::decode(&mut TrailingZeroInput::zeroes()).unwrap();
|
||||
for _ in 0 .. MAX_SLASHES {
|
||||
unapplied_slashes.push(UnappliedSlash::<T::AccountId, BalanceOf<T>>::default());
|
||||
unapplied_slashes.push(UnappliedSlash::<T::AccountId, BalanceOf<T>>::default_from(dummy()));
|
||||
}
|
||||
UnappliedSlashes::<T>::insert(era, &unapplied_slashes);
|
||||
|
||||
@@ -667,10 +669,11 @@ benchmarks! {
|
||||
let e in 1 .. 100;
|
||||
HistoryDepth::<T>::put(e);
|
||||
CurrentEra::<T>::put(e);
|
||||
let dummy = || -> T::AccountId { codec::Decode::decode(&mut TrailingZeroInput::zeroes()).unwrap() };
|
||||
for i in 0 .. e {
|
||||
<ErasStakers<T>>::insert(i, T::AccountId::default(), Exposure::<T::AccountId, BalanceOf<T>>::default());
|
||||
<ErasStakersClipped<T>>::insert(i, T::AccountId::default(), Exposure::<T::AccountId, BalanceOf<T>>::default());
|
||||
<ErasValidatorPrefs<T>>::insert(i, T::AccountId::default(), ValidatorPrefs::default());
|
||||
<ErasStakers<T>>::insert(i, dummy(), Exposure::<T::AccountId, BalanceOf<T>>::default());
|
||||
<ErasStakersClipped<T>>::insert(i, dummy(), Exposure::<T::AccountId, BalanceOf<T>>::default());
|
||||
<ErasValidatorPrefs<T>>::insert(i, dummy(), ValidatorPrefs::default());
|
||||
<ErasValidatorReward<T>>::insert(i, BalanceOf::<T>::one());
|
||||
<ErasRewardPoints<T>>::insert(i, EraRewardPoints::<T::AccountId>::default());
|
||||
<ErasTotalStake<T>>::insert(i, BalanceOf::<T>::one());
|
||||
@@ -695,7 +698,14 @@ benchmarks! {
|
||||
let stash = scenario.origin_stash1.clone();
|
||||
|
||||
add_slashing_spans::<T>(&stash, s);
|
||||
Ledger::<T>::insert(&controller, StakingLedger { active: T::Currency::minimum_balance() - One::one(), total: T::Currency::minimum_balance() - One::one(), ..Default::default() });
|
||||
let l = StakingLedger {
|
||||
stash: stash.clone(),
|
||||
active: T::Currency::minimum_balance() - One::one(),
|
||||
total: T::Currency::minimum_balance() - One::one(),
|
||||
unlocking: vec![],
|
||||
claimed_rewards: vec![],
|
||||
};
|
||||
Ledger::<T>::insert(&controller, l);
|
||||
|
||||
assert!(Bonded::<T>::contains_key(&stash));
|
||||
assert!(T::SortedListProvider::contains(&stash));
|
||||
|
||||
@@ -364,7 +364,7 @@ pub struct ActiveEraInfo {
|
||||
/// Reward points of an era. Used to split era total payout between validators.
|
||||
///
|
||||
/// This points will be used to reward validators and their respective nominators.
|
||||
#[derive(PartialEq, Encode, Decode, Default, RuntimeDebug, TypeInfo)]
|
||||
#[derive(PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct EraRewardPoints<AccountId: Ord> {
|
||||
/// Total number of points. Equals the sum of reward points for each validator.
|
||||
total: RewardPoint,
|
||||
@@ -372,9 +372,15 @@ pub struct EraRewardPoints<AccountId: Ord> {
|
||||
individual: BTreeMap<AccountId, RewardPoint>,
|
||||
}
|
||||
|
||||
impl<AccountId: Ord> Default for EraRewardPoints<AccountId> {
|
||||
fn default() -> Self {
|
||||
EraRewardPoints { total: Default::default(), individual: BTreeMap::new() }
|
||||
}
|
||||
}
|
||||
|
||||
/// Indicates the initial status of the staker.
|
||||
#[derive(RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize, Clone))]
|
||||
pub enum StakerStatus<AccountId> {
|
||||
/// Chilling.
|
||||
Idle,
|
||||
@@ -436,7 +442,6 @@ pub struct UnlockChunk<Balance: HasCompact> {
|
||||
}
|
||||
|
||||
/// The ledger of a (bonded) stash.
|
||||
#[cfg_attr(feature = "runtime-benchmarks", derive(Default))]
|
||||
#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct StakingLedger<AccountId, Balance: HasCompact> {
|
||||
/// The stash account whose balance is actually locked and at stake.
|
||||
@@ -457,9 +462,20 @@ pub struct StakingLedger<AccountId, Balance: HasCompact> {
|
||||
pub claimed_rewards: Vec<EraIndex>,
|
||||
}
|
||||
|
||||
impl<AccountId, Balance: HasCompact + Copy + Saturating + AtLeast32BitUnsigned>
|
||||
impl<AccountId, Balance: HasCompact + Copy + Saturating + AtLeast32BitUnsigned + Zero>
|
||||
StakingLedger<AccountId, Balance>
|
||||
{
|
||||
/// Initializes the default object using the given `validator`.
|
||||
pub fn default_from(stash: AccountId) -> Self {
|
||||
Self {
|
||||
stash,
|
||||
total: Zero::zero(),
|
||||
active: Zero::zero(),
|
||||
unlocking: vec![],
|
||||
claimed_rewards: vec![],
|
||||
}
|
||||
}
|
||||
|
||||
/// Remove entries from `unlocking` that are sufficiently old and reduce the
|
||||
/// total by the sum of their balances.
|
||||
fn consolidate_unlocked(self, current_era: EraIndex) -> Self {
|
||||
@@ -593,9 +609,7 @@ pub struct IndividualExposure<AccountId, Balance: HasCompact> {
|
||||
}
|
||||
|
||||
/// A snapshot of the stake backing a single validator in the system.
|
||||
#[derive(
|
||||
PartialEq, Eq, PartialOrd, Ord, Clone, Encode, Decode, Default, RuntimeDebug, TypeInfo,
|
||||
)]
|
||||
#[derive(PartialEq, Eq, PartialOrd, Ord, Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct Exposure<AccountId, Balance: HasCompact> {
|
||||
/// The total balance backing this validator.
|
||||
#[codec(compact)]
|
||||
@@ -607,9 +621,15 @@ pub struct Exposure<AccountId, Balance: HasCompact> {
|
||||
pub others: Vec<IndividualExposure<AccountId, Balance>>,
|
||||
}
|
||||
|
||||
impl<AccountId, Balance: Default + HasCompact> Default for Exposure<AccountId, Balance> {
|
||||
fn default() -> Self {
|
||||
Self { total: Default::default(), own: Default::default(), others: vec![] }
|
||||
}
|
||||
}
|
||||
|
||||
/// A pending slash record. The value of the slash has been computed but not applied yet,
|
||||
/// rather deferred for several eras.
|
||||
#[derive(Encode, Decode, Default, RuntimeDebug, TypeInfo)]
|
||||
#[derive(Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct UnappliedSlash<AccountId, Balance: HasCompact> {
|
||||
/// The stash ID of the offending validator.
|
||||
validator: AccountId,
|
||||
@@ -623,6 +643,19 @@ pub struct UnappliedSlash<AccountId, Balance: HasCompact> {
|
||||
payout: Balance,
|
||||
}
|
||||
|
||||
impl<AccountId, Balance: HasCompact + Zero> UnappliedSlash<AccountId, Balance> {
|
||||
/// Initializes the default object using the given `validator`.
|
||||
pub fn default_from(validator: AccountId) -> Self {
|
||||
Self {
|
||||
validator,
|
||||
own: Zero::zero(),
|
||||
others: vec![],
|
||||
reporters: vec![],
|
||||
payout: Zero::zero(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Means for interacting with a specialized version of the `session` trait.
|
||||
///
|
||||
/// This is needed because `Staking` sets the `ValidatorIdOf` of the `pallet_session::Config`
|
||||
|
||||
@@ -480,7 +480,7 @@ impl ExtBuilder {
|
||||
}
|
||||
|
||||
let _ = pallet_staking::GenesisConfig::<Test> {
|
||||
stakers,
|
||||
stakers: stakers.clone(),
|
||||
validator_count: self.validator_count,
|
||||
minimum_validator_count: self.minimum_validator_count,
|
||||
invulnerables: self.invulnerables,
|
||||
@@ -493,12 +493,15 @@ impl ExtBuilder {
|
||||
|
||||
let _ = pallet_session::GenesisConfig::<Test> {
|
||||
keys: if self.has_stakers {
|
||||
// genesis election will overwrite this, no worries.
|
||||
Default::default()
|
||||
// set the keys for the first session.
|
||||
stakers
|
||||
.into_iter()
|
||||
.map(|(id, ..)| (id, id, SessionKeys { other: id.into() }))
|
||||
.collect()
|
||||
} else {
|
||||
// set some dummy validators in genesis.
|
||||
(0..self.validator_count as u64)
|
||||
.map(|x| (x, x, SessionKeys { other: UintAuthorityId(x as u64) }))
|
||||
.map(|id| (id, id, SessionKeys { other: id.into() }))
|
||||
.collect()
|
||||
},
|
||||
}
|
||||
@@ -644,6 +647,7 @@ pub(crate) fn bond(stash: AccountId, ctrl: AccountId, val: Balance) {
|
||||
pub(crate) fn bond_validator(stash: AccountId, ctrl: AccountId, val: Balance) {
|
||||
bond(stash, ctrl, val);
|
||||
assert_ok!(Staking::validate(Origin::signed(ctrl), ValidatorPrefs::default()));
|
||||
assert_ok!(Session::set_keys(Origin::signed(ctrl), SessionKeys { other: ctrl.into() }, vec![]));
|
||||
}
|
||||
|
||||
pub(crate) fn bond_nominator(
|
||||
|
||||
@@ -1089,8 +1089,13 @@ where
|
||||
fn note_author(author: T::AccountId) {
|
||||
Self::reward_by_ids(vec![(author, 20)])
|
||||
}
|
||||
fn note_uncle(author: T::AccountId, _age: T::BlockNumber) {
|
||||
Self::reward_by_ids(vec![(<pallet_authorship::Pallet<T>>::author(), 2), (author, 1)])
|
||||
fn note_uncle(uncle_author: T::AccountId, _age: T::BlockNumber) {
|
||||
// defensive-only: block author must exist.
|
||||
if let Some(block_author) = <pallet_authorship::Pallet<T>>::author() {
|
||||
Self::reward_by_ids(vec![(block_author, 2), (uncle_author, 1)])
|
||||
} else {
|
||||
crate::log!(warn, "block author not set, this should never happen");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1238,8 +1243,13 @@ impl<T: Config> VoteWeightProvider<T::AccountId> for Pallet<T> {
|
||||
// this will clearly results in an inconsistent state, but it should not matter for a
|
||||
// benchmark.
|
||||
let active: BalanceOf<T> = weight.try_into().map_err(|_| ()).unwrap();
|
||||
let mut ledger = Self::ledger(who).unwrap_or_default();
|
||||
ledger.active = active;
|
||||
let ledger = match Self::ledger(who) {
|
||||
None => StakingLedger::default_from(who.clone()),
|
||||
Some(mut l) => {
|
||||
l.active = active;
|
||||
l
|
||||
},
|
||||
};
|
||||
<Ledger<T>>::insert(who, ledger);
|
||||
<Bonded<T>>::insert(who, who);
|
||||
|
||||
|
||||
@@ -217,16 +217,17 @@ fn rewards_should_work() {
|
||||
Payee::<Test>::insert(21, RewardDestination::Controller);
|
||||
Payee::<Test>::insert(101, RewardDestination::Controller);
|
||||
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 50)]);
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 50)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 50)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 50)]);
|
||||
// This is the second validator of the current elected set.
|
||||
<Pallet<Test>>::reward_by_ids(vec![(21, 50)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(21, 50)]);
|
||||
|
||||
// Compute total payout now for whole duration of the session.
|
||||
let total_payout_0 = current_total_payout_for_duration(reward_time_per_era());
|
||||
let maximum_payout = maximum_payout_for_duration(reward_time_per_era());
|
||||
|
||||
start_session(1);
|
||||
assert_eq_uvec!(Session::validators(), vec![11, 21]);
|
||||
|
||||
assert_eq!(Balances::total_balance(&10), init_balance_10);
|
||||
assert_eq!(Balances::total_balance(&11), init_balance_11);
|
||||
@@ -234,7 +235,6 @@ fn rewards_should_work() {
|
||||
assert_eq!(Balances::total_balance(&21), init_balance_21);
|
||||
assert_eq!(Balances::total_balance(&100), init_balance_100);
|
||||
assert_eq!(Balances::total_balance(&101), init_balance_101);
|
||||
assert_eq_uvec!(Session::validators(), vec![11, 21]);
|
||||
assert_eq!(
|
||||
Staking::eras_reward_points(active_era()),
|
||||
EraRewardPoints {
|
||||
@@ -283,7 +283,7 @@ fn rewards_should_work() {
|
||||
assert_eq_error_rate!(Balances::total_balance(&101), init_balance_101, 2);
|
||||
|
||||
assert_eq_uvec!(Session::validators(), vec![11, 21]);
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
let total_payout_1 = current_total_payout_for_duration(reward_time_per_era());
|
||||
@@ -338,6 +338,7 @@ fn staking_should_work() {
|
||||
// add a new candidate for being a validator. account 3 controlled by 4.
|
||||
assert_ok!(Staking::bond(Origin::signed(3), 4, 1500, RewardDestination::Controller));
|
||||
assert_ok!(Staking::validate(Origin::signed(4), ValidatorPrefs::default()));
|
||||
assert_ok!(Session::set_keys(Origin::signed(4), SessionKeys { other: 4.into() }, vec![]));
|
||||
|
||||
// No effects will be seen so far.
|
||||
assert_eq_uvec!(validator_controllers(), vec![20, 10]);
|
||||
@@ -519,8 +520,8 @@ fn nominating_and_rewards_should_work() {
|
||||
|
||||
// the total reward for era 0
|
||||
let total_payout_0 = current_total_payout_for_duration(reward_time_per_era());
|
||||
<Pallet<Test>>::reward_by_ids(vec![(41, 1)]);
|
||||
<Pallet<Test>>::reward_by_ids(vec![(21, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(41, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(21, 1)]);
|
||||
|
||||
mock::start_active_era(1);
|
||||
|
||||
@@ -561,8 +562,8 @@ fn nominating_and_rewards_should_work() {
|
||||
|
||||
// the total reward for era 1
|
||||
let total_payout_1 = current_total_payout_for_duration(reward_time_per_era());
|
||||
<Pallet<Test>>::reward_by_ids(vec![(21, 2)]);
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(21, 2)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
|
||||
mock::start_active_era(2);
|
||||
|
||||
@@ -942,7 +943,7 @@ fn reward_destination_works() {
|
||||
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
let total_payout_0 = current_total_payout_for_duration(reward_time_per_era());
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
|
||||
mock::start_active_era(1);
|
||||
mock::make_all_reward_payment(0);
|
||||
@@ -968,7 +969,7 @@ fn reward_destination_works() {
|
||||
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
let total_payout_1 = current_total_payout_for_duration(reward_time_per_era());
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
|
||||
mock::start_active_era(2);
|
||||
mock::make_all_reward_payment(1);
|
||||
@@ -999,7 +1000,7 @@ fn reward_destination_works() {
|
||||
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
let total_payout_2 = current_total_payout_for_duration(reward_time_per_era());
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
|
||||
mock::start_active_era(3);
|
||||
mock::make_all_reward_payment(2);
|
||||
@@ -1049,7 +1050,7 @@ fn validator_payment_prefs_work() {
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
let total_payout_1 = current_total_payout_for_duration(reward_time_per_era());
|
||||
let exposure_1 = Staking::eras_stakers(active_era(), 11);
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
|
||||
mock::start_active_era(2);
|
||||
mock::make_all_reward_payment(1);
|
||||
@@ -1610,8 +1611,8 @@ fn reward_to_stake_works() {
|
||||
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
let total_payout_0 = current_total_payout_for_duration(reward_time_per_era());
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
<Pallet<Test>>::reward_by_ids(vec![(21, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(21, 1)]);
|
||||
|
||||
// New era --> rewards are paid --> stakes are changed
|
||||
mock::start_active_era(1);
|
||||
@@ -1707,6 +1708,7 @@ fn switching_roles() {
|
||||
// add a new validator candidate
|
||||
assert_ok!(Staking::bond(Origin::signed(5), 6, 1000, RewardDestination::Controller));
|
||||
assert_ok!(Staking::validate(Origin::signed(6), ValidatorPrefs::default()));
|
||||
assert_ok!(Session::set_keys(Origin::signed(6), SessionKeys { other: 6.into() }, vec![]));
|
||||
|
||||
mock::start_active_era(1);
|
||||
|
||||
@@ -1715,6 +1717,7 @@ fn switching_roles() {
|
||||
|
||||
// 2 decides to be a validator. Consequences:
|
||||
assert_ok!(Staking::validate(Origin::signed(2), ValidatorPrefs::default()));
|
||||
assert_ok!(Session::set_keys(Origin::signed(2), SessionKeys { other: 2.into() }, vec![]));
|
||||
// new stakes:
|
||||
// 10: 1000 self vote
|
||||
// 20: 1000 self vote + 250 vote
|
||||
@@ -1819,6 +1822,11 @@ fn bond_with_little_staked_value_bounded() {
|
||||
// Stingy validator.
|
||||
assert_ok!(Staking::bond(Origin::signed(1), 2, 1, RewardDestination::Controller));
|
||||
assert_ok!(Staking::validate(Origin::signed(2), ValidatorPrefs::default()));
|
||||
assert_ok!(Session::set_keys(
|
||||
Origin::signed(2),
|
||||
SessionKeys { other: 2.into() },
|
||||
vec![]
|
||||
));
|
||||
|
||||
// 1 era worth of reward. BUT, we set the timestamp after on_initialize, so outdated by
|
||||
// one block.
|
||||
@@ -2051,12 +2059,12 @@ fn reward_from_authorship_event_handler_works() {
|
||||
ExtBuilder::default().build_and_execute(|| {
|
||||
use pallet_authorship::EventHandler;
|
||||
|
||||
assert_eq!(<pallet_authorship::Pallet<Test>>::author(), 11);
|
||||
assert_eq!(<pallet_authorship::Pallet<Test>>::author(), Some(11));
|
||||
|
||||
<Pallet<Test>>::note_author(11);
|
||||
<Pallet<Test>>::note_uncle(21, 1);
|
||||
Pallet::<Test>::note_author(11);
|
||||
Pallet::<Test>::note_uncle(21, 1);
|
||||
// Rewarding the same two times works.
|
||||
<Pallet<Test>>::note_uncle(11, 1);
|
||||
Pallet::<Test>::note_uncle(11, 1);
|
||||
|
||||
// Not mandatory but must be coherent with rewards
|
||||
assert_eq_uvec!(Session::validators(), vec![11, 21]);
|
||||
@@ -2079,9 +2087,9 @@ fn add_reward_points_fns_works() {
|
||||
// Not mandatory but must be coherent with rewards
|
||||
assert_eq_uvec!(Session::validators(), vec![21, 11]);
|
||||
|
||||
<Pallet<Test>>::reward_by_ids(vec![(21, 1), (11, 1), (11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(21, 1), (11, 1), (11, 1)]);
|
||||
|
||||
<Pallet<Test>>::reward_by_ids(vec![(21, 1), (11, 1), (11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(21, 1), (11, 1), (11, 1)]);
|
||||
|
||||
assert_eq!(
|
||||
ErasRewardPoints::<Test>::get(active_era()),
|
||||
@@ -3091,13 +3099,13 @@ fn claim_reward_at_the_last_era_and_no_double_claim_and_invalid_claim() {
|
||||
Payee::<Test>::insert(11, RewardDestination::Controller);
|
||||
Payee::<Test>::insert(101, RewardDestination::Controller);
|
||||
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
let total_payout_0 = current_total_payout_for_duration(reward_time_per_era());
|
||||
|
||||
mock::start_active_era(1);
|
||||
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
// Change total issuance in order to modify total payout
|
||||
let _ = Balances::deposit_creating(&999, 1_000_000_000);
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
@@ -3106,7 +3114,7 @@ fn claim_reward_at_the_last_era_and_no_double_claim_and_invalid_claim() {
|
||||
|
||||
mock::start_active_era(2);
|
||||
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
// Change total issuance in order to modify total payout
|
||||
let _ = Balances::deposit_creating(&999, 1_000_000_000);
|
||||
// Compute total payout now for whole duration as other parameter won't change
|
||||
@@ -3266,7 +3274,7 @@ fn test_max_nominator_rewarded_per_validator_and_cant_steal_someone_else_reward(
|
||||
}
|
||||
mock::start_active_era(1);
|
||||
|
||||
<Pallet<Test>>::reward_by_ids(vec![(11, 1)]);
|
||||
Pallet::<Test>::reward_by_ids(vec![(11, 1)]);
|
||||
// compute and ensure the reward amount is greater than zero.
|
||||
let _ = current_total_payout_for_duration(reward_time_per_era());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user