[Staking] Adds a round check at signed solution submission (#2690)

This PR adds a round check to the `Call::submit` extrinsic to make sure
that the solution submission has been prepared for the current election
round and avoid penalties for delayed submissions.

Related to
https://github.com/paritytech-secops/srlabs_findings/issues/329

---------

Co-authored-by: command-bot <>
This commit is contained in:
Gonçalo Pestana
2023-12-13 17:49:43 +01:00
committed by GitHub
parent 6ff50526a7
commit cc846cc296
3 changed files with 46 additions and 0 deletions
@@ -112,6 +112,15 @@ pub fn roll_to_with_ocw(n: BlockNumber) {
}
}
pub fn roll_to_round(n: u32) {
assert!(MultiPhase::round() <= n);
while MultiPhase::round() != n {
roll_to_signed();
assert_ok!(MultiPhase::elect());
}
}
pub struct TrimHelpers {
pub voters: Vec<VoterOf<Runtime>>,
pub assignments: Vec<IndexAssignmentOf<Runtime>>,