[−][src]Enum pallet_elections_phragmen::Call
Dispatchable calls.
Each variant of this enum maps to a dispatchable function from the associated module.
Variants
Vote for a set of candidates for the upcoming round of election. This can be called to set the initial votes, or update already existing votes.
Upon initial voting, value
units of who
's balance is locked and a bond amount is
reserved.
The votes
should:
- not be empty.
- be less than the number of possible candidates. Note that all current members and runners-up are also automatically candidates for the next round.
It is the responsibility of the caller to not place all of their balance into the lock and keep some for further transactions.
Base weight: 47.93 µs State reads: - Candidates.len() + Members.len() + RunnersUp.len() - Voting (is_voter) - [AccountBalance(who) (unreserve + total_balance)] State writes: - Voting - Lock - [AccountBalance(who) (unreserve -- only when creating a new voter)]
Remove origin
as a voter. This removes the lock and returns the bond.
Base weight: 36.8 µs All state access is from do_remove_voter. State reads: - Voting - [AccountData(who)] State writes: - Voting - Locks - [AccountData(who)]
report_defunct_voter(DefunctVoter<<T::Lookup as StaticLookup>::Source>)
Report target
for being an defunct voter. In case of a valid report, the reporter is
rewarded by the bond amount of target
. Otherwise, the reporter itself is removed and
their bond is slashed.
A defunct voter is defined to be:
- a voter whose current submitted votes are all invalid. i.e. all of them are no longer a candidate nor an active member or a runner-up.
The origin must provide the number of current candidates and votes of the reported target for the purpose of accurate weight calculation.
No Base weight based on min square analysis. Complexity of candidate_count: 1.755 µs Complexity of vote_count: 18.51 µs State reads: - Voting(reporter) - Candidate.len() - Voting(Target) - Candidates, Members, RunnersUp (is_defunct_voter) State writes: - Lock(reporter || target) - [AccountBalance(reporter)] + AccountBalance(target) - Voting(reporter || target) Note: the db access is worse with respect to db, which is when the report is correct.
submit_candidacy(u32)
Submit oneself for candidacy.
A candidate will either:
- Lose at the end of the term and forfeit their deposit.
- Win and become a member. Members will eventually get their stash back.
- Become a runner-up. Runners-ups are reserved members in case one gets forcefully removed.
Base weight = 33.33 µs Complexity of candidate_count: 0.375 µs State reads: - Candidates.len() - Candidates - Members - RunnersUp - [AccountBalance(who)] State writes: - [AccountBalance(who)] - Candidates
renounce_candidacy(Renouncing)
Renounce one's intention to be a candidate for the next election round. 3 potential outcomes exist:
origin
is a candidate and not elected in any set. In this case, the bond is unreserved, returned and origin is removed as a candidate.origin
is a current runner-up. In this case, the bond is unreserved, returned and origin is removed as a runner-up.origin
is a current member. In this case, the bond is unreserved and origin is removed as a member, consequently not being a candidate for the next round anymore. Similar to [remove_voter
], if replacement runners exists, they are immediately used.If a candidate is renouncing: Base weight: 17.28 µs Complexity of candidate_count: 0.235 µs State reads: - Candidates - [AccountBalance(who) (unreserve)] State writes: - Candidates - [AccountBalance(who) (unreserve)] If member is renouncing: Base weight: 46.25 µs State reads: - Members, RunnersUp (remove_and_replace_member), - [AccountData(who) (unreserve)] State writes: - Members, RunnersUp (remove_and_replace_member), - [AccountData(who) (unreserve)] If runner is renouncing: Base weight: 46.25 µs State reads: - RunnersUp (remove_and_replace_member), - [AccountData(who) (unreserve)] State writes: - RunnersUp (remove_and_replace_member), - [AccountData(who) (unreserve)]
Weight note: The call into changeMembers need to be accounted for.
remove_member(<T::Lookup as StaticLookup>::Source, bool)
Remove a particular member from the set. This is effective immediately and the bond of the outgoing member is slashed.
If a runner-up is available, then the best runner-up will be removed and replaces the outgoing member. Otherwise, a new phragmen election is started.
Note that this does not affect the designated block number of the next election.
If we have a replacement: - Base weight: 50.93 µs - State reads: - RunnersUp.len() - Members, RunnersUp (remove_and_replace_member) - State writes: - Members, RunnersUp (remove_and_replace_member) Else, since this is a root call and will go into phragmen, we assume full block for now.
Trait Implementations
impl<T: Trait> Clone for Call<T>
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T: Trait> Debug for Call<T>
[src]
impl<T: Trait> Decode for Call<T> where
Vec<T::AccountId>: Decode,
Vec<T::AccountId>: Decode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Decode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
[src]
Vec<T::AccountId>: Decode,
Vec<T::AccountId>: Decode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Decode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
impl<T: Trait> Encode for Call<T> where
Vec<T::AccountId>: Encode,
Vec<T::AccountId>: Encode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Encode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
[src]
Vec<T::AccountId>: Encode,
Vec<T::AccountId>: Encode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Encode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
fn encode_to<EncOut: Output>(&self, dest: &mut EncOut)
[src]
fn size_hint(&self) -> usize
[src]
fn encode(&self) -> Vec<u8>
[src]
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
[src]
F: FnOnce(&[u8]) -> R,
impl<T: Trait> EncodeLike<Call<T>> for Call<T> where
Vec<T::AccountId>: Encode,
Vec<T::AccountId>: Encode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Encode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
[src]
Vec<T::AccountId>: Encode,
Vec<T::AccountId>: Encode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Encode,
DefunctVoter<<T::Lookup as StaticLookup>::Source>: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
impl<T: Trait> Eq for Call<T>
[src]
impl<T: Trait> GetCallName for Call<T>
[src]
fn get_call_name(&self) -> &'static str
[src]
fn get_call_names() -> &'static [&'static str]
[src]
impl<T: Trait> GetDispatchInfo for Call<T>
[src]
fn get_dispatch_info(&self) -> DispatchInfo
[src]
impl<T: Trait> PartialEq<Call<T>> for Call<T>
[src]
impl<T: Trait> UnfilteredDispatchable for Call<T>
[src]
type Origin = T::Origin
The origin type of the runtime, (i.e. frame_system::Trait::Origin
).
fn dispatch_bypass_filter(
self,
_origin: Self::Origin
) -> DispatchResultWithPostInfo
[src]
self,
_origin: Self::Origin
) -> DispatchResultWithPostInfo
Auto Trait Implementations
impl<T> RefUnwindSafe for Call<T> where
T: RefUnwindSafe,
<T as Trait>::AccountId: RefUnwindSafe,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: RefUnwindSafe,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: RefUnwindSafe,
T: RefUnwindSafe,
<T as Trait>::AccountId: RefUnwindSafe,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: RefUnwindSafe,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: RefUnwindSafe,
impl<T> Send for Call<T> where
T: Send,
<T as Trait>::AccountId: Send,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Send,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Send,
T: Send,
<T as Trait>::AccountId: Send,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Send,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Send,
impl<T> Sync for Call<T> where
T: Sync,
<T as Trait>::AccountId: Sync,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Sync,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Sync,
T: Sync,
<T as Trait>::AccountId: Sync,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Sync,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Sync,
impl<T> Unpin for Call<T> where
T: Unpin,
<T as Trait>::AccountId: Unpin,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Unpin,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Unpin,
T: Unpin,
<T as Trait>::AccountId: Unpin,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Unpin,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Unpin,
impl<T> UnwindSafe for Call<T> where
T: UnwindSafe,
<T as Trait>::AccountId: UnwindSafe,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: UnwindSafe,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: UnwindSafe,
T: UnwindSafe,
<T as Trait>::AccountId: UnwindSafe,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: UnwindSafe,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<S> Codec for S where
S: Encode + Decode,
[src]
S: Encode + Decode,
impl<T, X> Decode for X where
T: Decode + Into<X>,
X: WrapperTypeDecode<Wrapped = T>,
[src]
T: Decode + Into<X>,
X: WrapperTypeDecode<Wrapped = T>,
impl<T> DecodeAll for T where
T: Decode,
[src]
T: Decode,
impl<T> DecodeLimit for T where
T: Decode,
[src]
T: Decode,
fn decode_all_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>
[src]
fn decode_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>
[src]
impl<T, X> Encode for X where
T: Encode + ?Sized,
X: WrapperTypeEncode<Target = T>,
[src]
T: Encode + ?Sized,
X: WrapperTypeEncode<Target = T>,
fn size_hint(&self) -> usize
[src]
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
[src]
F: FnOnce(&[u8]) -> R,
fn encode(&self) -> Vec<u8>
[src]
fn encode_to<W>(&self, dest: &mut W) where
W: Output,
[src]
W: Output,
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode,
[src]
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode,
[src]
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode,
[src]
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode,
[src]
T: Encode,
impl<T> EncodeLike<Box<T>> for T where
T: Encode,
[src]
T: Encode,
impl<'a, T> EncodeLike<Cow<'a, T>> for T where
T: Encode + ToOwned,
[src]
T: Encode + ToOwned,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode,
[src]
T: Encode,
impl<T> From<T> for T
[src]
impl<S> FullCodec for S where
S: Decode + FullEncode,
[src]
S: Decode + FullEncode,
impl<S> FullEncode for S where
S: Encode + EncodeLike<S>,
[src]
S: Encode + EncodeLike<S>,
impl<T> Hashable for T where
T: Codec,
[src]
T: Codec,
fn blake2_128(&self) -> [u8; 16]
[src]
fn blake2_256(&self) -> [u8; 32]
[src]
fn blake2_128_concat(&self) -> Vec<u8>
[src]
fn twox_128(&self) -> [u8; 16]
[src]
fn twox_256(&self) -> [u8; 32]
[src]
fn twox_64_concat(&self) -> Vec<u8>
[src]
fn identity(&self) -> Vec<u8>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IsType<T> for T
[src]
fn from_ref(t: &T) -> &T
[src]
fn into_ref(&self) -> &T
[src]
fn from_mut(t: &mut T) -> &mut T
[src]
fn into_mut(&mut self) -> &mut T
[src]
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
fn from_ref(outer: &Outer) -> &T
Get a reference to the inner from the outer.
fn from_mut(outer: &mut Outer) -> &mut T
Get a mutable reference to the inner from the outer.
impl<T> KeyedVec for T where
T: Codec,
[src]
T: Codec,
impl<T> MaybeDebug for T where
T: Debug,
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Member for T where
T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug,
[src]
T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug,
impl<T> Parameter for T where
T: Codec + EncodeLike<T> + Clone + Eq + Debug,
[src]
T: Codec + EncodeLike<T> + Clone + Eq + Debug,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Self: UniqueSaturatedFrom<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
Self: UniqueSaturatedInto<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
T: UncheckedFrom<S>,
fn unchecked_into(self) -> T
impl<T, S> UniqueSaturatedInto<T> for S where
S: TryInto<T>,
T: Bounded,
S: TryInto<T>,
T: Bounded,
fn unique_saturated_into(self) -> T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,