Struct pallet_elections::pallet::Pallet[][src]

pub struct Pallet<T>(_);
Expand description

The pallet implementing the on-chain logic.

Implementations

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 origin is already a voter: the index must be valid and point to the correct position of the origin 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.

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 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.

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 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 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 the presentation duration. If there is currently a vote being presented for, will invoke finalize_vote.

Set the presentation duration. If there is current a vote being presented for, will invoke finalize_vote.

How long to give each top candidate to present themselves after the vote ends.

How long each position is active for.

Number of accounts that should constitute the collective.

The current membership. When there’s a vote going on, this should still be used for executive matters. The block number (second element in the tuple) is the block that their position is active until (calculated by the sum of the block number when the member was elected and their term duration).

The total number of vote rounds that have happened or are in progress.

TWOX-NOTE: SAFE as AccountId is a crypto hash and SetIndex is not attacker-controlled.

The vote index and list slot that the candidate who was registered or None if they are not currently registered.

TWOX-NOTE: SAFE as AccountId is a crypto hash.

Basic information about a voter.

TWOX-NOTE: SAFE as AccountId is a crypto hash.

The present voter list (chunked and capped at VOTER_SET_SIZE).

TWOX-NOTE: OKAY ― SetIndex is not user-controlled data.

the next free set to store a voter in. This will keep growing.

Current number of Voters.

The present candidate list.

Current number of active candidates

The accounts holding the seats that will become free on the next tally.

Get the leaderboard if we’re in the presentation phase. The first element is the weight of each entry; It may be the direct summed approval stakes, or a weighted version of it. Sorted from low to high.

True if we’re currently in a presentation period.

If who a candidate at the moment?

Iff the member who still has a seat at blocknumber n returns true.

Determine the block that a vote can happen on which is no less than n.

The block number on which the tally for the next election will happen. None only if the desired seats of the set is zero.

Convert a vec of boolean approval flags to a vec of integers, as denoted by the type ApprovalFlag. see bool_to_flag_should_work test for examples.

Convert a vec of flags (u32) to boolean.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the current storage version as supported by the pallet.

Returns the on-chain storage version of the pallet as stored in the storage.

The block is being initialized. Implement to have something happen. Read more

The block is being finalized. Implement to have something happen.

This will be run when the block is being finalized (before on_finalize). Implement to have something happen using the remaining weight. Will not fire if the remaining weight is 0. Return the weight used, the hook will subtract it from current weight used and pass the result to the next on_idle hook if it exists. Read more

Perform a module upgrade. Read more

Execute some pre-checks prior to a runtime upgrade. Read more

Execute some post-checks after a runtime upgrade. Read more

Implementing this function on a module allows you to perform long-running tasks that make (by default) validators generate transactions that feed results of those long-running computations back on chain. Read more

Run integrity test. Read more

Run integrity test. Read more

This function is being called after every block import (when fully synced). Read more

The block is being finalized. Implement to have something happen. Read more

Something that should happen at genesis.

The block is being finalized. Implement to have something happen in case there is leftover weight. Check the passed remaining_weight to make sure it is high enough to allow for your pallet’s extra computation. Read more

The block is being initialized. Implement to have something happen. Read more

Perform a module upgrade. Read more

Execute some pre-checks prior to a runtime upgrade. Read more

Execute some post-checks after a runtime upgrade. Read more

Index of the pallet as configured in the runtime.

Name of the pallet as configured in the runtime.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert from a value of T into an equivalent instance of Option<Self>. Read more

Consume self to return Some equivalent value of Option<T>. Read more

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

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

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Cast reference.

Cast reference.

Cast mutable reference.

Cast mutable reference.

Get a reference to the inner from the outer.

Get a mutable reference to the inner from the outer.

Generate a storage key unique to this runtime upgrade. Read more

Get temporary storage data written by Self::set_temp_storage. Read more

Write some temporary data to a specific storage that can be read (potentially in post-upgrade hook) via Self::get_temp_storage. Read more

Should always be Self

Convert from a value of T into an equivalent instance of Self. Read more

Consume self to return an equivalent value of T. Read more

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The counterpart to unchecked_from.

Consume self to return an equivalent value of T.