Enum pallet_collective::pallet::Call [−][src]
pub enum Call<T: Config<I>, I: 'static = ()> {
set_members {
new_members: Vec<T::AccountId>,
prime: Option<T::AccountId>,
old_count: MemberCount,
},
execute {
proposal: Box<<T as Config<I>>::Proposal>,
length_bound: u32,
},
propose {
threshold: MemberCount,
proposal: Box<<T as Config<I>>::Proposal>,
length_bound: u32,
},
vote {
proposal: T::Hash,
index: ProposalIndex,
approve: bool,
},
close {
proposal_hash: T::Hash,
index: ProposalIndex,
proposal_weight_bound: Weight,
length_bound: u32,
},
disapprove_proposal {
proposal_hash: T::Hash,
},
// some variants omitted
}Expand description
Contains one variant per dispatchable that can be called by an extrinsic.
Variants
Set the collective’s membership.
new_members: The new member list. Be nice to the chain and provide it sorted.prime: The prime member whose vote sets the default.old_count: The upper bound for the previous number of members in storage. Used for weight estimation.
Requires root origin.
NOTE: Does not enforce the expected MaxMembers limit on the amount of members, but
the weight estimations rely on it to estimate dispatchable weight.
WARNING:
The pallet-collective can also be managed by logic outside of the pallet through the
implementation of the trait ChangeMembers.
Any call to set_members must be careful that the member set doesn’t get out of sync
with other logic managing the member set.
Weight
O(MP + N)where:Mold-members-count (code- and governance-bounded)Nnew-members-count (code- and governance-bounded)Pproposals-count (code-bounded)
- DB:
- 1 storage mutation (codec
O(M)read,O(N)write) for reading and writing the members - 1 storage read (codec
O(P)) for reading the proposals Pstorage mutations (codecO(M)) for updating the votes for each proposal- 1 storage write (codec
O(1)) for deleting the oldprimeand setting the new one
- 1 storage mutation (codec
Fields of set_members
Dispatch a proposal from a member using the Member origin.
Origin must be a member of the collective.
Weight
O(M + P)whereMmembers-count (code-bounded) andPcomplexity of dispatchingproposal- DB: 1 read (codec
O(M)) + DB access ofproposal - 1 event
Add a new proposal to either be voted on or executed directly.
Requires the sender to be member.
threshold determines whether proposal is executed directly (threshold < 2)
or put up for voting.
Weight
O(B + M + P1)orO(B + M + P2)where:Bisproposalsize in bytes (length-fee-bounded)Mis members-count (code- and governance-bounded)- branching is influenced by
thresholdwhere:P1is proposal execution complexity (threshold < 2)P2is proposals-count (code-bounded) (threshold >= 2)
- DB:
- 1 storage read
is_member(codecO(M)) - 1 storage read
ProposalOf::contains_key(codecO(1)) - DB accesses influenced by
threshold:- EITHER storage accesses done by
proposal(threshold < 2) - OR proposal insertion (
threshold <= 2)- 1 storage mutation
Proposals(codecO(P2)) - 1 storage mutation
ProposalCount(codecO(1)) - 1 storage write
ProposalOf(codecO(B)) - 1 storage write
Voting(codecO(M))
- 1 storage mutation
- EITHER storage accesses done by
- 1 event
- 1 storage read
Fields of propose
Add an aye or nay vote for the sender to the given proposal.
Requires the sender to be a member.
Transaction fees will be waived if the member is voting on any particular proposal for the first time and the call is successful. Subsequent vote changes will charge a fee.
Weight
O(M)whereMis members-count (code- and governance-bounded)- DB:
- 1 storage read
Members(codecO(M)) - 1 storage mutation
Voting(codecO(M))
- 1 storage read
- 1 event
Fields of vote
Close a vote that is either approved, disapproved or whose voting period has ended.
May be called by any signed account in order to finish voting and close the proposal.
If called before the end of the voting period it will only close the vote if it is has enough votes to be approved or disapproved.
If called after the end of the voting period abstentions are counted as rejections unless there is a prime member set and the prime member cast an approval.
If the close operation completes successfully with disapproval, the transaction fee will be waived. Otherwise execution of the approved operation will be charged to the caller.
proposal_weight_bound: The maximum amount of weight consumed by executing the closed proposal.length_bound: The upper bound for the length of the proposal in storage. Checked viastorage::readso it issize_of::<u32>() == 4larger than the pure length.
Weight
O(B + M + P1 + P2)where:Bisproposalsize in bytes (length-fee-bounded)Mis members-count (code- and governance-bounded)P1is the complexity ofproposalpreimage.P2is proposal-count (code-bounded)
- DB:
- 2 storage reads (
Members: codecO(M),Prime: codecO(1)) - 3 mutations (
Voting: codecO(M),ProposalOf: codecO(B),Proposals: codecO(P2)) - any mutations done while executing
proposal(P1) - up to 3 events
Fields of close
Disapprove a proposal, close, and remove it from the system, regardless of its current state.
Must be called by the Root origin.
Parameters:
proposal_hash: The hash of the proposal that should be disapproved.
Complexity: O(P) where P is the number of max proposals DB Weight:
- Reads: Proposals
- Writes: Voting, Proposals, ProposalOf
Fields of disapprove_proposal
proposal_hash: T::HashImplementations
pub fn new_call_variant_set_members(
new_members: Vec<T::AccountId>,
prime: Option<T::AccountId>,
old_count: MemberCount
) -> Self
pub fn new_call_variant_set_members(
new_members: Vec<T::AccountId>,
prime: Option<T::AccountId>,
old_count: MemberCount
) -> Self
Create a call with the variant set_members.
Create a call with the variant execute.
pub fn new_call_variant_propose(
threshold: MemberCount,
proposal: Box<<T as Config<I>>::Proposal>,
length_bound: u32
) -> Self
pub fn new_call_variant_propose(
threshold: MemberCount,
proposal: Box<<T as Config<I>>::Proposal>,
length_bound: u32
) -> Self
Create a call with the variant propose.
Create a call with the variant vote.
pub fn new_call_variant_close(
proposal_hash: T::Hash,
index: ProposalIndex,
proposal_weight_bound: Weight,
length_bound: u32
) -> Self
pub fn new_call_variant_close(
proposal_hash: T::Hash,
index: ProposalIndex,
proposal_weight_bound: Weight,
length_bound: u32
) -> Self
Create a call with the variant close.
Create a call with the variant disapprove_proposal.
Trait Implementations
Return the function name of the Call.
Return all function names.
Return a DispatchInfo, containing relevant information of this dispatch. Read more
impl<T: Config<I>, I: 'static> TypeInfo for Call<T, I> where
PhantomData<(T, I)>: TypeInfo + 'static,
Vec<T::AccountId>: TypeInfo + 'static,
Option<T::AccountId>: TypeInfo + 'static,
Box<<T as Config<I>>::Proposal>: TypeInfo + 'static,
Box<<T as Config<I>>::Proposal>: TypeInfo + 'static,
T::Hash: TypeInfo + 'static,
T::Hash: TypeInfo + 'static,
T::Hash: TypeInfo + 'static,
T: Config<I> + 'static,
I: 'static,
impl<T: Config<I>, I: 'static> TypeInfo for Call<T, I> where
PhantomData<(T, I)>: TypeInfo + 'static,
Vec<T::AccountId>: TypeInfo + 'static,
Option<T::AccountId>: TypeInfo + 'static,
Box<<T as Config<I>>::Proposal>: TypeInfo + 'static,
Box<<T as Config<I>>::Proposal>: TypeInfo + 'static,
T::Hash: TypeInfo + 'static,
T::Hash: TypeInfo + 'static,
T::Hash: TypeInfo + 'static,
T: Config<I> + 'static,
I: 'static,
Dispatch this call but do not check the filter in origin.
Auto Trait Implementations
impl<T, I> RefUnwindSafe for Call<T, I> where
I: RefUnwindSafe,
T: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<T as Config>::Hash: RefUnwindSafe,
<T as Config<I>>::Proposal: RefUnwindSafe,
impl<T, I> Unpin for Call<T, I> where
I: Unpin,
T: Unpin,
<T as Config>::AccountId: Unpin,
<T as Config>::Hash: Unpin,
impl<T, I> UnwindSafe for Call<T, I> where
I: UnwindSafe,
T: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<T as Config>::Hash: UnwindSafe,
<T as Config<I>>::Proposal: 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
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