* Initial implementation of mms
* Some more attempts at `mms`
* Functioning `MMS` algorithm implementation.
Adding some tests too
* More tests and typos fixed.
* Adding fuzzer for `mms`
(but could not test it on Mac M1)
* Missing imports
* Fixing rustdoc
* More accurate implementation of `mms`
* Removing the fuzzer `mms` implementation
* Implementing `NposSolver` for `MMS`
had to add the `Clone` trait, maybe I could see if I can get rid of it.
* Fixing rust docs by adding () to resolve ambiguity
* Amending `unwrap` to `expect`
removing unneeded `Clone` trait
* Removing redundant `mms3.rs`
* Implementing `BalancingConfig` and rustdoc changes
* Implementing `weight` for `MMS`
* Implementing `weight` for `MMS`
* Fixing post merge
* Initial implementation of mms
* Some more attempts at `mms`
* Functioning `MMS` algorithm implementation.
Adding some tests too
* More tests and typos fixed.
* Adding fuzzer for `mms`
(but could not test it on Mac M1)
* Missing imports
* Fixing rustdoc
* More accurate implementation of `mms`
* Removing the fuzzer `mms` implementation
* Implementing `NposSolver` for `MMS`
had to add the `Clone` trait, maybe I could see if I can get rid of it.
* Amending `unwrap` to `expect`
removing unneeded `Clone` trait
* Fixing rust docs by adding () to resolve ambiguity
* Removing redundant `mms3.rs`
* Implementing `BalancingConfig` and rustdoc changes
* Implementing `weight` for `MMS`
* Implementing `weight` for `MMS`
* Fixing post merge
* Removing left over from rebase
* Fixing tests
* Removing unneeded import
* Removing unneeded functions
* Removing useless imports
Co-authored-by: kianenigma <kian@parity.io>
* Splitting `SolutionImprovementThreshold` in 2.
One for Signed phase, and one for Unsgined.
* Adding missing imports
* Removing `GetDefault`, renaming trait
* update lockfile for {"substrate"}
Co-authored-by: parity-processbot <>
* Splitting `SolutionImprovementThreshold` in 2
One for Signed phase and one for Unsigned phase.
* Adding some tests
* Fixes after code review.
- Removing `GetDefault`.
- Shorter naming.
- More explicit test.
* Fail if `MaxVoters` too small
* Fixing benchmarking test, better naming of error
* reverting accidental change
* use fully qualified syntax
no need to interate to calculate len
* Fail directly if too many voters
* Adding `Fallback` on election failure
Use the newly introduced `BoundedOnChainSequentialPhragmen`
and `UnboundedOnChainSequentialPhragmen`
* Adding `BoundedOnchainExecution`
after changes in substrate
* Introducing `ExecutionConfig`
from `frame_election_provider_support::onchain`
* `OnChainSequentialPhragmen` > `OnChainSeqPhragmen`
Renaming to have a shorter name
* `BoundedOnchainExecution` -> `BoundedExecution`
And `UnboundedOnchainExecution` -> `UnboundedExecution`
* `Fallback` back to `NoFallback`
`UnboundedExecution` for `GovernanceFallback`
* Update runtime/test-runtime/src/lib.rs
* update lockfile for {"substrate"}
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: parity-processbot <>
* Allow `pallet-election-provider` to accept smaller
solutions, issue #9478
* Fixing a typo
* Adding some more tests
Removing a seemingly outdated comment
* making it a URL
* Updating test name as per suggestion
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Updating documentation to be more explicit
And to follow the general guidelines
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Fixing formatting
* `Fallback` now of type `InstantElectionProvider`
Some cleanups
* Allow `pallet-election-provider` to accept smaller
solutions, issue #9478
* Fixing a typo
* Adding some more tests
Removing a seemingly outdated comment
* making it a URL
* Updating test name as per suggestion
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Updating documentation to be more explicit
And to follow the general guidelines
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Fixing formatting
* `Fallback` now of type `InstantElectionProvider`
Some cleanups
* Merging types into one type with generics
* Removing `ConstUSize` and use `ConstU32`
* cleaning up the code
* deprecating `OnChainSequentialPhragmen`
Renaming it to `UnboundedSequentialPhragmen` which should only be used
at genesis and for testing.
Use preferrably `BoundedOnChainSequentialPhragmen`
* Amending docs
* Adding some explicit imports
* Implementing generic `BoundedOnchainExecution`
Removing the deprecated `OnChainSequentialPhragmen`
* Use the right Balancing strategy
* Refactoring `onchain::Config`
Creating `onchain::ExecutionConfig`
* Merge master
* fmt
* Name cleanups after review suggestions
* cosmetics
* renaming `instant_elect` to `elect_with_bounds`
Other corresponding changes as per @kianenigma feedback
* `BoundedOnchainExecution` -> `BoundedExecution`
And `UnboundedOnchainExecution` -> `UnboundedExecution`
* feedback from kian
* fmt + unneeded import
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: kianenigma <kian@parity.io>
* Move `sp-npos-elections-solution-type`
to `frame-election-provider-support`
First stab at it, will need to amend some more stuff
* Fixing tests
* Fixing tests
* Fixing cargo.toml for std configuration
* Implementing `MaxEncodedLen`
on `generate_solution_type`
* Full implementation of `max_encoded_len`
* Fixing implementation bug
adding some comments and documentation
* fmt
* Committing suggested changes
renaming, and re exporting macro.
* Removing unneeded imports
* Implementing `MaxEncodedLen`
on `generate_solution_type`
* Full implementation of `max_encoded_len`
* Fixing implementation bug
adding some comments and documentation
* Move `NposSolution` to frame
* Implementing `MaxEncodedLen`
on `generate_solution_type`
* Full implementation of `max_encoded_len`
* Fixing implementation bug
adding some comments and documentation
* Fixing test
* Removing unneeded dependencies
* `VoterSnapshotPerBlock` -> `MaxElectingVoters`
* rename `SizeBound` to `MaxVoters`
* Removing TODO and change bound
* renaming `size_bound` to `max_voters`
* Enabling tests for `solution-type`
These got dropped off after the crate was moved from `sp_npos_elections`
* Adding tests for `MaxEncodedLen` of solution_type
* Better rustdocs. Better indenting and comments.
Removing unneeded imports in tests.
* Allow `pallet-election-provider` to accept smaller
solutions, issue #9478
* Fixing a typo
* Adding some more tests
Removing a seemingly outdated comment
* making it a URL
* Updating test name as per suggestion
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Updating documentation to be more explicit
And to follow the general guidelines
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Fixing formatting
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Move `sp-npos-elections-solution-type`
to `frame-election-provider-support`
First stab at it, will need to amend some more stuff
* Fixing tests
* Fixing tests
* Fixing cargo.toml for std configuration
* fmt
* Committing suggested changes
renaming, and re exporting macro.
* Removing unneeded imports
* Move `NposSolution` to frame
* Removing `npos_election` dependencies
Implementing _fpes better
* some feedback for moving NPoSSolution to frame
* fmt
* more formatting
* Fixed some imports and fmt
* Fixing docs
Co-authored-by: kianenigma <kian@parity.io>
* Move `sp-npos-elections-solution-type`
to `frame-election-provider-support`
First stab at it, will need to amend some more stuff
* Fixing tests
* Fixing tests
* Fixing cargo.toml for std configuration
* fmt
* Committing suggested changes
renaming, and re exporting macro.
* Removing unneeded imports
* Adding MaxSegmentLength and MaxAuthorities
to pallet babe
* Missed a few to_vec
* Removing `MaxSegmentLength` as not needed anymore
* Adding `MaxAuthorities` to couple of missing place
* Adding missing definition of `MaxAuthorities`
* Adding a missing to_vec
* update Substrate
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: parity-processbot <>
* Adding MaxEncodedLen for:
* NextConfigDescriptor
* AllowedSlots
* BabeEpochConfiguration
In prepation for adding storage information on pallet babe
* Adding stotage_info to pallet babe
Refactored UNDER_CONSTRUCTION_SEGMENT_LENGTH to become a runtime
parameter MaxSegmentLength
* Reinstate Slice as opposed to Vec
* Refactoring code to make it neater
* Replace `MaxSegmentLength` by
`UNDER_CONSTRUCTION_SEGMENT_LENGTH`
Stop exposing the bounds to the runtime
* Removing extra line
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Adding `MaxAuthorities` to pallet grandpa
This is neede after changes to substrate
* Adding `MaxAuthorities` to granda in test-runtime
* Missed one `MaxAuthorities`
* update Substrate
Co-authored-by: parity-processbot <>
Converting some `Vec` to `WeakBoundedVec`
Adding `MaxAuthorities` type to bound the `WeakBoundedVec`
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Integrating WrapperOpaque from PR #9738
* Adding storage_info to pallet im-online
Changing some `Vec` to `WeakBoundedVec`
Adding the following bounds:
* `MaxKeys
* `MaxPeerInHeartbeats`
* `MaxPeerDataEncodingSize`
to limit the size of `WeakBoundedVec`
* Fix syntax
* Need to clone keys
* Changes in formatting
* Migrate Aura pallet to BoundedVec
Implementing issue #8629
* Fixed aura tests after BoundedVec change
* Moved Vec to BoundedVec in authority-discovery
* Merging into the main branch
* Added MaxEncodedLen to crypto
Need this without full_crypto to be able to add generate_store_info
* Add generate_store_info for aura
* Adding changes to Slot to add MaxEncodedLen
* Adding generate_store_info to authority discovery
* fmt
* removing panics in runtime if vec size too large
* authority-discovery: Remove panics in runtime
Can happen if vec size is too large, so truncate the vec in that case
* Adding logging when I truncate Vecs
* Got the sign the other way around
* Reverting pallet_aura changes
This is already being addressed by PR #9371
* Change BoundedVec to WeakBoundedVec
More robust implementation following @thiolliere recommendation.
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>