* make instantiable
* update
* cargo fmt
* Clean up
* bags-list: Make it generic over node value
* Respond to some feedback
* Apply suggestions from code review
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Add back default impl for weight update worst case
* Update to Score in more places'
* Use VoteWeight, not u64 to reduce test diff
* FMT
* FullCodec implies Codec
* formatting
* Fixup bags list remote test
Co-authored-by: doordashcon <jesse.chejieh@gmail.com>
Co-authored-by: Doordashcon <90750465+Doordashcon@users.noreply.github.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* use free balance rather than total balance
* Docs
* Migration for over-locked phrag voters
* New line
* comment
* Update frame/elections-phragmen/src/migrations/v5.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Only set lock, don't remove it
* delete commented out
* docs
* Update migration to just take a set of accounts
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* pallet-bags-list: Add `put_in_front_of` extrinsic
This PR adds the extrinsic `put_in_front_of` which allows the user to specify a `lighter` and `heavier` account within the same bag. The extrinsic will move `heavier` directly in front of `lighter`. The parameter names refer to the fact that `lighter` must have a lower `VoteWeight` then `heavier`.
In the ideal use case, where a user wants to improve the position of their account within a bag, the user would iterate the bag, starting from the head, and find the first node who's `VoteWeight` is less than theirs. They would then supply the `id` of the node as the `lighter` argument and their own `id` as the `heavier` argument.
* Test & Benchmarks
* Respect line width
* Remove List::put_in_fron_of tests; Remove AlreadyHigher error
* The dispatch origin for this call must be ...
* Add some periods
* Add back test to list module: put_in_front_of_exits_early_if_bag_not_found
* add test tests::pallet::heavier_is_head_lighter_is_not_terminal
* Cater for edge case of heavier being head
* Add ExtBuilder::add_aux_data; try to make some tests use simpler data
* Update frame/bags-list/src/list/tests.rs
* make insert_at_unchecked infallible
* Make it permissioned - only callable by heavier
* Add test cases for insert_at_unchecked
* Move counter update to insert_at; fix comments
* Address some feedback
* Make voteweight constructed with parameter_types
* Always set vote weight for Ids in build
* Add skip_genesis_ids
* Do not pass weight fn to List put_in_front_of
* Remove remants of CounterForListNodes
* fmt
* cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_bags_list --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/bags-list/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* Delete messed up weights file
* Some place holder stuff so we can run bench in CI
* Fix
* cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_bags_list --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/bags-list/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* Update frame/bags-list/src/list/mod.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* fmt
* Log + debug assert when refetching an Id
Co-authored-by: Parity Bot <admin@parity.io>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>