Ensure referenda TracksInfo is sorted (#3325)

Changes:
- Add `integrity_check` to trait `TracksInfo` to assert the sorting 
- Use the check in `integrity_test`
- Rely upon sorted property in the `info` for speedup

Note that the pallet already relies upon this (so far) untested
assumption
[here](https://github.com/paritytech/polkadot-sdk/blob/44c7a5eb8c375d77f685abf585961421e5f8b228/substrate/frame/referenda/src/lib.rs#L1280).

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
This commit is contained in:
Oliver Tale-Yazdi
2024-02-17 12:34:34 +01:00
committed by GitHub
parent de73dd9ac5
commit 8dc910c8a1
4 changed files with 105 additions and 3 deletions
+5
View File
@@ -433,6 +433,11 @@ pub mod pallet {
Self::do_try_state()?;
Ok(())
}
#[cfg(any(feature = "std", test))]
fn integrity_test() {
T::Tracks::check_integrity().expect("Static tracks configuration is valid.");
}
}
#[pallet::call]