Skip to content

Commit

Permalink
no collator shall be left unpaid
Browse files Browse the repository at this point in the history
  • Loading branch information
talhadaar committed Dec 4, 2024
1 parent fe5adc2 commit e6155b2
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion pallets/parachain-staking/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2917,7 +2917,25 @@ pub mod pallet {

let old_round = round - 1;
// Get total collator staking number of round that is ending
let (in_reads, total_stake) = Self::get_total_collator_staking_num(old_round);
let (in_reads, mut total_stake) = Self::get_total_collator_staking_num(old_round);

// Total stake cannot be zero
// We expect this is the case when runtime upgrade for token-economy-v2 is done.
// TODO this case can be removed in later upgrades.
if total_stake.is_zero() {
// there will be only 1 unfortunate author, as we force new round in runtime upgrade
CollatorBlocks::<T>::iter_prefix(old_round).for_each(|(collator, num)| {
if let Some(state) = CandidatePool::<T>::get(collator.clone()) {
let collator_total = T::CurrencyBalance::from(num)
.checked_mul(&state.total)
.unwrap_or_else(Zero::zero);
total_stake = total_stake.saturating_add(collator_total);
reads = reads.saturating_add(Weight::from_parts(1_u64, 0));
};
reads = reads.saturating_add(Weight::from_parts(1_u64, 0));
});
}

// Get total issuance of round that is ending
let (issuance_weight, total_issuance) = Self::pot_issuance();
reads = reads.saturating_add(in_reads).saturating_add(issuance_weight);
Expand Down

0 comments on commit e6155b2

Please sign in to comment.