Enum pallet_elections::pallet::Call [−][src]
pub enum Call<T: Config> { set_approvals(Vec<bool>, VoteIndex, u32, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance), reap_inactive_voter(u32, <T::Lookup as StaticLookup>::Source, u32, VoteIndex), retract_voter(u32), submit_candidacy(u32), present_winner(<T::Lookup as StaticLookup>::Source, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, VoteIndex), set_desired_seats(u32), remove_member(<T::Lookup as StaticLookup>::Source), set_presentation_duration(T::BlockNumber), set_term_duration(T::BlockNumber), // some variants omitted }
Expand description
Contains one variant per dispatchable that can be called by an extrinsic.
Variants
set_approvals(Vec<bool>, VoteIndex, u32, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance)
Set candidate approvals. Approval slots stay valid as long as candidates in those slots are registered.
Locks value
from the balance of origin
indefinitely. Only
retract_voter
or
reap_inactive_voter
can unlock the balance.
hint
argument is interpreted differently based on:
- if
origin
is setting approvals for the first time: The index will be checked for being a valid hole in the voter list.- if the hint is correctly pointing to a hole, no fee is deducted from
origin
. - Otherwise, the call will succeed but the index is ignored and simply a push to the
last chunk with free space happens. If the new push causes a new chunk to be
created, a fee indicated by
Config::VotingFee
is deducted.
- if the hint is correctly pointing to a hole, no fee is deducted from
- if
origin
is already a voter: the index must be valid and point to the correct position of theorigin
in the current voters list.
Note that any trailing false
votes in votes
is ignored; In approval voting, not
voting for a candidate and voting false, are equal.
- O(1).
- Two extra DB entries, one DB change.
- Argument
votes
is limited in length to number of candidates.
Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices must now be either unregistered or registered to a candidate that registered the slot after the voter gave their last approval set.
Both indices must be provided according to the following principle:
Voter index does not take holes into account. This means that any account submitting an
index at any point in time should submit:
VOTER_SET_SIZE * set_index + local_index
, meaning that you are ignoring all holes in
the first set_index
sets.
May be called by anyone. Returns the voter deposit to signed
.
- O(1).
- Two fewer DB entries, one DB change.
retract_voter(u32)
Remove a voter. All votes are cancelled and the voter deposit is returned.
The index must be provided according to the following principle:
Voter index does not take holes into account. This means that any account submitting an
index at any point in time should submit:
VOTER_SET_SIZE * set_index + local_index
, meaning that you are ignoring all holes in
the first set_index
sets.
Also removes the lock on the balance of the voter.
- O(1).
- Two fewer DB entries, one DB change.
submit_candidacy(u32)
Submit oneself for candidacy.
Account must have enough transferrable funds in it to pay the bond.
NOTE: if origin
has already assigned approvals via
set_approvals
, it will NOT have any usable funds to pass
candidacy bond and must first retract.
Note that setting approvals will lock the entire balance of the voter until
retraction or being reported.
- Independent of input.
- Three DB changes.
present_winner(<T::Lookup as StaticLookup>::Source, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, VoteIndex)
Claim that candidate
is one of the top carry_count + desired_seats
candidates. Only
works iff the presentation period is active. candidate
should have at least collected
some non-zero total
votes and origin
must have enough funds to pay for a potential
slash.
- O(voters) compute.
- One DB change.
set_desired_seats(u32)
Set the desired member count; if lower than the current count, then seats will not be up election when they expire. If more, then a new vote will be started if one is not already in progress.
remove_member(<T::Lookup as StaticLookup>::Source)
Remove a particular member from the set. This is effective immediately.
Note: A tally should happen instantly (if not already in a presentation period) to fill the seat if removal means that the desired members are not met.
set_presentation_duration(T::BlockNumber)
Set the presentation duration. If there is currently a vote being presented for, will
invoke finalize_vote
.
set_term_duration(T::BlockNumber)
Set the presentation duration. If there is current a vote being presented for, will
invoke finalize_vote
.
Trait Implementations
Attempt to deserialise the value from input.
Attempt to skip the encoded value from input. Read more
fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
Convert self to a slice and append it to the destination.
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
Return the function name of the Call.
Return all function names.
Return a DispatchInfo
, containing relevant information of this dispatch. Read more
Dispatch this call but do not check the filter in origin.
Auto Trait Implementations
impl<T> RefUnwindSafe for Call<T> where
T: RefUnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
<T as Config>::BlockNumber: RefUnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: RefUnwindSafe,
impl<T> Send for Call<T> where
T: Send,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Send,
<<T as Config>::Lookup as StaticLookup>::Source: Send,
impl<T> Sync for Call<T> where
T: Sync,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Sync,
<<T as Config>::Lookup as StaticLookup>::Source: Sync,
impl<T> Unpin for Call<T> where
T: Unpin,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Unpin,
<T as Config>::BlockNumber: Unpin,
<<T as Config>::Lookup as StaticLookup>::Source: Unpin,
impl<T> UnwindSafe for Call<T> where
T: UnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: UnwindSafe,
<T as Config>::BlockNumber: UnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
pub fn vzip(self) -> V
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode,
impl<T> MaybeDebug for T where
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,