* Fix elections-phragmen and proxy issue * remove TODO * Update bond to be per-vote * Update frame/elections-phragmen/src/lib.rs * Fix benchmakrs * Fix weight as well. * Add license * Make weight interpreted wasm! 🤦🏻♂️ * Remove a bunch of TODOs * Add migration * Better storage version. * Functionify. * Fix deposit scheme. * remove legacy bond. * Master.into() * better logging. * Fix benchmarking test * Fix confused deposit collection. * Add fine * Better name for storage item * Fix name again. * remove unused * Update frame/elections-phragmen/src/lib.rs Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> * Update frame/elections-phragmen/src/lib.rs Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> * cargo run --release --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark --chain dev --steps 50 --repeat 20 --extrinsic * --execution=wasm --wasm-execution=compiled --output ./bin/node/runtime/src/weights --header ./HEADER --pallet pallet_elections_phragmen * new weight fns * Fix build * Fix line width * fix benchmakrs * fix warning * cargo run --release --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark --chain dev --steps 50 --repeat 20 --extrinsic * --execution=wasm --wasm-execution=compiled --output ./bin/node/runtime/src/weights --header ./HEADER --pallet pallet_elections_phragmen * Tune the stake again * cargo run --release --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark --chain dev --steps 50 --repeat 20 --extrinsic * --execution=wasm --wasm-execution=compiled --output ./bin/node/runtime/src/weights --header ./HEADER --pallet pallet_elections_phragmen * All tests work again. * A large number of fixes. * more fixes. * Fix node build * Some fixes to benchmarks * Fix some warnings. * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_elections_phragmen --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/elections-phragmen/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_elections_phragmen --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/elections-phragmen/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Update frame/elections-phragmen/src/lib.rs Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> * a batch of review comments. * Fix a test. * Fix some more tests. * do migration with pallet version??? * Final touches. * Remove unused storage. * another rounds of changes and fixes. * Update frame/elections-phragmen/src/lib.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Update frame/elections-phragmen/src/lib.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Review grumbles. * Fix a bit more. * Fix build * Experimental: independent migration. * WIP: isolated migration logics * clean up. * make migration struct private and move migration to own file * add doc * fix StorageInstance new syntax * Update frame/elections-phragmen/src/migrations_3_0_0.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * another round of self-review. * bit better formatting * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_elections_phragmen --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/elections-phragmen/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Fix tests. * Round of self-review * Clean migrations * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_elections_phragmen --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/elections-phragmen/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Revert unwanted change to construct-runtime Co-authored-by: Gavin Wood <gavin@parity.io> Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> Co-authored-by: Parity Benchmarking Bot <admin@parity.io>
Collective system: Members of a set of account IDs can make their collective feelings known through dispatched calls from one of two specialized origins.
The membership can be provided in one of two ways: either directly, using the Root-dispatchable
function set_members, or indirectly, through implementing the ChangeMembers.
The pallet assumes that the amount of members stays at or below MaxMembers for its weight
calculations, but enforces this neither in set_members nor in change_members_sorted.
A "prime" member may be set to help determine the default vote behavior based on chain
config. If PreimDefaultVote is used, the prime vote acts as the default vote in case of any
abstentions after the voting period. If MoreThanMajorityThenPrimeDefaultVote is used, then
abstentations will first follow the majority of the collective voting, and then the prime
member.
Voting happens through motions comprising a proposal (i.e. a curried dispatchable) plus a
number of approvals required for it to pass and be called. Motions are open for members to
vote on for a minimum period given by MotionDuration. As soon as the needed number of
approvals is given, the motion is closed and executed. If the number of approvals is not reached
during the voting period, then close may be called by any account in order to force the end
the motion explicitly. If a prime member is defined then their vote is used in place of any
abstentions and the proposal is executed if there are enough approvals counting the new votes.
If there are not, or if no prime is set, then the motion is dropped without being executed.
License: Apache-2.0