Struct pallet_democracy::pallet::Pallet [−][src]
pub struct Pallet<T>(_);
Expand description
The pallet implementing the on-chain logic.
Implementations
Propose a sensitive action to be taken.
The dispatch origin of this call must be Signed and the sender must have funds to cover the deposit.
proposal_hash
: The hash of the proposal preimage.value
: The amount of deposit (must be at leastMinimumDeposit
).
Emits Proposed
.
Weight: O(p)
Signals agreement with a particular proposal.
The dispatch origin of this call must be Signed and the sender must have funds to cover the deposit, equal to the original deposit.
proposal
: The index of the proposal to second.seconds_upper_bound
: an upper bound on the current number of seconds on this proposal. Extrinsic is weighted according to this value with no refund.
Weight: O(S)
where S is the number of seconds a proposal already has.
pub fn vote(
origin: OriginFor<T>,
ref_index: ReferendumIndex,
vote: AccountVote<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>
) -> DispatchResult
pub fn vote(
origin: OriginFor<T>,
ref_index: ReferendumIndex,
vote: AccountVote<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>
) -> DispatchResult
Vote in a referendum. If vote.is_aye()
, the vote is to enact the proposal;
otherwise it is a vote to keep the status quo.
The dispatch origin of this call must be Signed.
ref_index
: The index of the referendum to vote for.vote
: The vote configuration.
Weight: O(R)
where R is the number of referendums the voter has voted on.
Schedule an emergency cancellation of a referendum. Cannot happen twice to the same referendum.
The dispatch origin of this call must be CancellationOrigin
.
-ref_index
: The index of the referendum to cancel.
Weight: O(1)
.
Schedule a referendum to be tabled once it is legal to schedule an external referendum.
The dispatch origin of this call must be ExternalOrigin
.
proposal_hash
: The preimage hash of the proposal.
Weight: O(V)
with V number of vetoers in the blacklist of proposal.
Decoding vec of length V. Charged as maximum
pub fn external_propose_majority(
origin: OriginFor<T>,
proposal_hash: T::Hash
) -> DispatchResult
pub fn external_propose_majority(
origin: OriginFor<T>,
proposal_hash: T::Hash
) -> DispatchResult
Schedule a majority-carries referendum to be tabled next once it is legal to schedule an external referendum.
The dispatch of this call must be ExternalMajorityOrigin
.
proposal_hash
: The preimage hash of the proposal.
Unlike external_propose
, blacklisting has no effect on this and it may replace a
pre-scheduled external_propose
call.
Weight: O(1)
pub fn external_propose_default(
origin: OriginFor<T>,
proposal_hash: T::Hash
) -> DispatchResult
pub fn external_propose_default(
origin: OriginFor<T>,
proposal_hash: T::Hash
) -> DispatchResult
Schedule a negative-turnout-bias referendum to be tabled next once it is legal to schedule an external referendum.
The dispatch of this call must be ExternalDefaultOrigin
.
proposal_hash
: The preimage hash of the proposal.
Unlike external_propose
, blacklisting has no effect on this and it may replace a
pre-scheduled external_propose
call.
Weight: O(1)
pub fn fast_track(
origin: OriginFor<T>,
proposal_hash: T::Hash,
voting_period: T::BlockNumber,
delay: T::BlockNumber
) -> DispatchResult
pub fn fast_track(
origin: OriginFor<T>,
proposal_hash: T::Hash,
voting_period: T::BlockNumber,
delay: T::BlockNumber
) -> DispatchResult
Schedule the currently externally-proposed majority-carries referendum to be tabled immediately. If there is no externally-proposed referendum currently, or if there is one but it is not a majority-carries referendum then it fails.
The dispatch of this call must be FastTrackOrigin
.
proposal_hash
: The hash of the current external proposal.voting_period
: The period that is allowed for voting on this proposal. Increased toFastTrackVotingPeriod
if too low.delay
: The number of block after voting has ended in approval and this should be enacted. This doesn’t have a minimum amount.
Emits Started
.
Weight: O(1)
Veto and blacklist the external proposal hash.
The dispatch origin of this call must be VetoOrigin
.
proposal_hash
: The preimage hash of the proposal to veto and blacklist.
Emits Vetoed
.
Weight: O(V + log(V))
where V is number of existing vetoers
Remove a referendum.
The dispatch origin of this call must be Root.
ref_index
: The index of the referendum to cancel.
Weight: O(1)
.
Cancel a proposal queued for enactment.
The dispatch origin of this call must be Root.
which
: The index of the referendum to cancel.
Weight: O(D)
where D
is the items in the dispatch queue. Weighted as D = 10
.
Delegate the voting power (with some given conviction) of the sending account.
The balance delegated is locked for as long as it’s delegated, and thereafter for the time appropriate for the conviction’s lock period.
The dispatch origin of this call must be Signed, and the signing account must either:
-
be delegating already; or
-
have no voting activity (if there is, then it will need to be removed/consolidated through
reap_vote
orunvote
). -
to
: The account whose voting thetarget
account’s voting power will follow. -
conviction
: The conviction that will be attached to the delegated votes. When the account is undelegated, the funds will be locked for the corresponding period. -
balance
: The amount of the account’s balance to be used in delegating. This must not be more than the account’s current balance.
Emits Delegated
.
Weight: O(R)
where R is the number of referendums the voter delegating to has
voted on. Weight is charged as if maximum votes.
Undelegate the voting power of the sending account.
Tokens may be unlocked following once an amount of time consistent with the lock period of the conviction with which the delegation was issued.
The dispatch origin of this call must be Signed and the signing account must be currently delegating.
Emits Undelegated
.
Weight: O(R)
where R is the number of referendums the voter delegating to has
voted on. Weight is charged as if maximum votes.
Clears all public proposals.
The dispatch origin of this call must be Root.
Weight: O(1)
.
Register the preimage for an upcoming proposal. This doesn’t require the proposal to be in the dispatch queue but does require a deposit, returned once enacted.
The dispatch origin of this call must be Signed.
encoded_proposal
: The preimage of a proposal.
Emits PreimageNoted
.
Weight: O(E)
with E size of encoded_proposal
(protected by a required deposit).
pub fn note_preimage_operational(
origin: OriginFor<T>,
encoded_proposal: Vec<u8>
) -> DispatchResult
pub fn note_preimage_operational(
origin: OriginFor<T>,
encoded_proposal: Vec<u8>
) -> DispatchResult
Same as note_preimage
but origin is OperationalPreimageOrigin
.
pub fn note_imminent_preimage(
origin: OriginFor<T>,
encoded_proposal: Vec<u8>
) -> DispatchResultWithPostInfo
pub fn note_imminent_preimage(
origin: OriginFor<T>,
encoded_proposal: Vec<u8>
) -> DispatchResultWithPostInfo
Register the preimage for an upcoming proposal. This requires the proposal to be in the dispatch queue. No deposit is needed. When this call is successful, i.e. the preimage has not been uploaded before and matches some imminent proposal, no fee is paid.
The dispatch origin of this call must be Signed.
encoded_proposal
: The preimage of a proposal.
Emits PreimageNoted
.
Weight: O(E)
with E size of encoded_proposal
(protected by a required deposit).
pub fn note_imminent_preimage_operational(
origin: OriginFor<T>,
encoded_proposal: Vec<u8>
) -> DispatchResultWithPostInfo
pub fn note_imminent_preimage_operational(
origin: OriginFor<T>,
encoded_proposal: Vec<u8>
) -> DispatchResultWithPostInfo
Same as note_imminent_preimage
but origin is OperationalPreimageOrigin
.
pub fn reap_preimage(
origin: OriginFor<T>,
proposal_hash: T::Hash,
proposal_len_upper_bound: u32
) -> DispatchResult
pub fn reap_preimage(
origin: OriginFor<T>,
proposal_hash: T::Hash,
proposal_len_upper_bound: u32
) -> DispatchResult
Remove an expired proposal preimage and collect the deposit.
The dispatch origin of this call must be Signed.
proposal_hash
: The preimage hash of a proposal.proposal_length_upper_bound
: an upper bound on length of the proposal. Extrinsic is weighted according to this value with no refund.
This will only work after VotingPeriod
blocks from the time that the preimage was
noted, if it’s the same account doing it. If it’s a different account, then it’ll only
work an additional EnactmentPeriod
later.
Emits PreimageReaped
.
Weight: O(D)
where D is length of proposal.
Unlock tokens that have an expired lock.
The dispatch origin of this call must be Signed.
target
: The account to remove the lock on.
Weight: O(R)
with R number of vote of target.
Remove a vote for a referendum.
If:
- the referendum was cancelled, or
- the referendum is ongoing, or
- the referendum has ended such that
- the vote of the account was in opposition to the result; or
- there was no conviction to the account’s vote; or
- the account made a split vote
…then the vote is removed cleanly and a following call to
unlock
may result in more funds being available.
If, however, the referendum has ended and:
- it finished corresponding to the vote of the account, and
- the account made a standard vote with conviction, and
- the lock period of the conviction is not over …then the lock will be aggregated into the overall account’s lock, which may involve overlocking (where the two locks are combined into a single lock that is the maximum of both the amount locked and the time is it locked for).
The dispatch origin of this call must be Signed, and the signer must have a vote
registered for referendum index
.
index
: The index of referendum of the vote to be removed.
Weight: O(R + log R)
where R is the number of referenda that target
has voted on.
Weight is calculated for the maximum number of vote.
pub fn remove_other_vote(
origin: OriginFor<T>,
target: T::AccountId,
index: ReferendumIndex
) -> DispatchResult
pub fn remove_other_vote(
origin: OriginFor<T>,
target: T::AccountId,
index: ReferendumIndex
) -> DispatchResult
Remove a vote for a referendum.
If the target
is equal to the signer, then this function is exactly equivalent to
remove_vote
. If not equal to the signer, then the vote must have expired,
either because the referendum was cancelled, because the voter lost the referendum or
because the conviction period is over.
The dispatch origin of this call must be Signed.
target
: The account of the vote to be removed; this account must have voted for referendumindex
.index
: The index of referendum of the vote to be removed.
Weight: O(R + log R)
where R is the number of referenda that target
has voted on.
Weight is calculated for the maximum number of vote.
pub fn enact_proposal(
origin: OriginFor<T>,
proposal_hash: T::Hash,
index: ReferendumIndex
) -> DispatchResult
pub fn enact_proposal(
origin: OriginFor<T>,
proposal_hash: T::Hash,
index: ReferendumIndex
) -> DispatchResult
Enact a proposal from a referendum. For now we just make the weight be the maximum.
pub fn blacklist(
origin: OriginFor<T>,
proposal_hash: T::Hash,
maybe_ref_index: Option<ReferendumIndex>
) -> DispatchResult
pub fn blacklist(
origin: OriginFor<T>,
proposal_hash: T::Hash,
maybe_ref_index: Option<ReferendumIndex>
) -> DispatchResult
Permanently place a proposal into the blacklist. This prevents it from ever being proposed again.
If called on a queued public or external proposal, then this will result in it being
removed. If the ref_index
supplied is an active referendum with the proposal hash,
then it will be cancelled.
The dispatch origin of this call must be BlacklistOrigin
.
proposal_hash
: The proposal hash to blacklist permanently.ref_index
: An ongoing referendum whose hash isproposal_hash
, which will be cancelled.
Weight: O(p)
(though as this is an high-privilege dispatch, we assume it has a
reasonable value).
Remove a proposal.
The dispatch origin of this call must be CancelProposalOrigin
.
prop_index
: The index of the proposal to cancel.
Weight: O(p)
where p = PublicProps::<T>::decode_len()
The number of (public) proposals that have been made so far.
The next free referendum index, aka the number of referenda started so far.
The lowest referendum index representing an unbaked referendum. Equal to
ReferendumCount
if there isn’t a unbaked referendum.
pub fn referendum_info<KArg>(
k: KArg
) -> Option<ReferendumInfo<T::BlockNumber, T::Hash, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>> where
KArg: EncodeLike<ReferendumIndex>,
pub fn referendum_info<KArg>(
k: KArg
) -> Option<ReferendumInfo<T::BlockNumber, T::Hash, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>> where
KArg: EncodeLike<ReferendumIndex>,
Information concerning any given referendum.
TWOX-NOTE: SAFE as indexes are not under an attacker’s control.
Accounts for which there are locks in action which may be removed at some point in the future. The value is the block number at which the lock expires and may be removed.
TWOX-NOTE: OK ― AccountId
is a secure hash.
Get the amount locked in support of proposal
; None
if proposal isn’t a valid proposal
index.
pub fn maturing_referenda_at(
n: T::BlockNumber
) -> Vec<(ReferendumIndex, ReferendumStatus<T::BlockNumber, T::Hash, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>)>
pub fn maturing_referenda_at(
n: T::BlockNumber
) -> Vec<(ReferendumIndex, ReferendumStatus<T::BlockNumber, T::Hash, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>)>
Get all referenda ready for tally at block n
.
pub fn internal_start_referendum(
proposal_hash: T::Hash,
threshold: VoteThreshold,
delay: T::BlockNumber
) -> ReferendumIndex
pub fn internal_start_referendum(
proposal_hash: T::Hash,
threshold: VoteThreshold,
delay: T::BlockNumber
) -> ReferendumIndex
Start a referendum.
Remove a referendum.
Trait Implementations
Get the benchmarks available for this pallet. Generally there is one benchmark per extrinsic, so these are sometimes just called “extrinsics”. Read more
fn run_benchmark(
extrinsic: &[u8],
c: &[(BenchmarkParameter, u32)],
whitelist: &[TrackedStorageKey],
verify: bool,
internal_repeats: u32
) -> Result<Vec<BenchmarkResult>, BenchmarkError>
fn run_benchmark(
extrinsic: &[u8],
c: &[(BenchmarkParameter, u32)],
whitelist: &[TrackedStorageKey],
verify: bool,
internal_repeats: u32
) -> Result<Vec<BenchmarkResult>, BenchmarkError>
Run the benchmarks for this pallet.
Returns the current storage version as supported by the pallet.
Returns the on-chain storage version of the pallet as stored in the storage.
Weight: see begin_block
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
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
Name of the Rust module containing the pallet.
Version of the crate containing the pallet.
Extend the given vector by all of the pallets’ information that this type represents. Read more
All of the pallets’ information that this type represents.
Auto Trait Implementations
impl<T> RefUnwindSafe for Pallet<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Pallet<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. 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
Compare self to key
and return true
if they are equal.
Causes self
to use its Binary
implementation when Debug
-formatted.
Causes self
to use its Display
implementation when
Debug
-formatted. Read more
Causes self
to use its LowerExp
implementation when
Debug
-formatted. Read more
Causes self
to use its LowerHex
implementation when
Debug
-formatted. Read more
Causes self
to use its Octal
implementation when Debug
-formatted.
Causes self
to use its Pointer
implementation when
Debug
-formatted. Read more
Causes self
to use its UpperExp
implementation when
Debug
-formatted. Read more
Causes self
to use its UpperHex
implementation when
Debug
-formatted. Read more
impl<T> PalletVersionToStorageVersionHelper for T where
T: GetStorageVersion + PalletInfoAccess,
impl<T> PalletVersionToStorageVersionHelper for T where
T: GetStorageVersion + PalletInfoAccess,
Pipes by value. This is generally the method you want to use. Read more
Borrows self
and passes that borrow into the pipe function. Read more
Mutably borrows self
and passes that borrow into the pipe function. Read more
Borrows self
, then passes self.borrow()
into the pipe function. Read more
Mutably borrows self
, then passes self.borrow_mut()
into the pipe
function. Read more
Borrows self
, then passes self.as_ref()
into the pipe function.
Mutably borrows self
, then passes self.as_mut()
into the pipe
function. Read more
Borrows self
, then passes self.deref()
into the pipe function.
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
Pipes a dereference into a function that cannot normally be called in suffix position. Read more
Pipes a reference into a function that cannot ordinarily be called in suffix position. Read more
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
Checks if self
is actually part of its subset T
(and can be converted to it).
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
The inclusion map: converts self
to the equivalent element of its superset.
Immutable access to the Borrow<B>
of a value. Read more
Mutable access to the BorrowMut<B>
of a value. Read more
Immutable access to the AsRef<R>
view of a value. Read more
Mutable access to the AsMut<R>
view of a value. Read more
Immutable access to the Deref::Target
of a value. Read more
Mutable access to the Deref::Target
of a value. Read more
Calls .tap()
only in debug builds, and is erased in release builds.
Calls .tap_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_borrow()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_ref()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_deref()
only in debug builds, and is erased in release
builds. Read more
Provides immutable access to the reference for inspection.
Calls tap_ref
in debug builds, and does nothing in release builds.
Provides mutable access to the reference for modification.
Calls tap_ref_mut
in debug builds, and does nothing in release builds.
Provides immutable access to the borrow for inspection. Read more
Calls tap_borrow
in debug builds, and does nothing in release builds.
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the borrow for modification.
Immutably dereferences self
for inspection.
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Calls tap_deref
in debug builds, and does nothing in release builds.
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Mutably dereferences self
for modification.
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more