Enum pallet_treasury::pallet::Call
source · pub enum Call<T: Config<I>, I: 'static = ()> {
propose_spend {
value: BalanceOf<T, I>,
beneficiary: <<T as Config>::Lookup as StaticLookup>::Source,
},
reject_proposal {
proposal_id: ProposalIndex,
},
approve_proposal {
proposal_id: ProposalIndex,
},
spend {
amount: BalanceOf<T, I>,
beneficiary: <<T as Config>::Lookup as StaticLookup>::Source,
},
remove_approval {
proposal_id: ProposalIndex,
},
// some variants omitted
}
Expand description
Contains one variant per dispatchable that can be called by an extrinsic.
Variants§
propose_spend
Put forward a suggestion for spending. A deposit proportional to the value is reserved and slashed if the proposal is rejected. It is returned once the proposal is awarded.
Complexity
- O(1)
reject_proposal
Fields
proposal_id: ProposalIndex
Reject a proposed spend. The original deposit will be slashed.
May only be called from T::RejectOrigin
.
Complexity
- O(1)
approve_proposal
Fields
proposal_id: ProposalIndex
Approve a proposal. At a later time, the proposal will be allocated to the beneficiary and the original deposit will be returned.
May only be called from T::ApproveOrigin
.
Complexity
- O(1).
spend
Propose and approve a spend of treasury funds.
origin
: Must beSpendOrigin
with theSuccess
value being at leastamount
.amount
: The amount to be transferred from the treasury to thebeneficiary
.beneficiary
: The destination account for the transfer.
NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the beneficiary.
remove_approval
Fields
proposal_id: ProposalIndex
Force a previously approved proposal to be removed from the approval queue. The original deposit will no longer be returned.
May only be called from T::RejectOrigin
.
proposal_id
: The index of a proposal
Complexity
- O(A) where
A
is the number of approvals
Errors:
ProposalNotApproved
: Theproposal_id
supplied was not found in the approval queue, i.e., the proposal has not been approved. This could also mean the proposal does not exist altogether, thus there is no way it would have been approved in the first place.
Implementations§
source§impl<T: Config<I>, I: 'static> Call<T, I>
impl<T: Config<I>, I: 'static> Call<T, I>
sourcepub fn new_call_variant_propose_spend(
value: BalanceOf<T, I>,
beneficiary: <<T as Config>::Lookup as StaticLookup>::Source
) -> Self
pub fn new_call_variant_propose_spend(
value: BalanceOf<T, I>,
beneficiary: <<T as Config>::Lookup as StaticLookup>::Source
) -> Self
Create a call with the variant propose_spend
.
sourcepub fn new_call_variant_reject_proposal(proposal_id: ProposalIndex) -> Self
pub fn new_call_variant_reject_proposal(proposal_id: ProposalIndex) -> Self
Create a call with the variant reject_proposal
.
sourcepub fn new_call_variant_approve_proposal(proposal_id: ProposalIndex) -> Self
pub fn new_call_variant_approve_proposal(proposal_id: ProposalIndex) -> Self
Create a call with the variant approve_proposal
.
sourcepub fn new_call_variant_spend(
amount: BalanceOf<T, I>,
beneficiary: <<T as Config>::Lookup as StaticLookup>::Source
) -> Self
pub fn new_call_variant_spend(
amount: BalanceOf<T, I>,
beneficiary: <<T as Config>::Lookup as StaticLookup>::Source
) -> Self
Create a call with the variant spend
.
sourcepub fn new_call_variant_remove_approval(proposal_id: ProposalIndex) -> Self
pub fn new_call_variant_remove_approval(proposal_id: ProposalIndex) -> Self
Create a call with the variant remove_approval
.
Trait Implementations§
source§impl<T: Config<I>, I: 'static> Decode for Call<T, I>
impl<T: Config<I>, I: 'static> Decode for Call<T, I>
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
source§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
source§impl<T: Config<I>, I: 'static> Encode for Call<T, I>
impl<T: Config<I>, I: 'static> Encode for Call<T, I>
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
source§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<T: Config<I>, I: 'static> GetCallName for Call<T, I>
impl<T: Config<I>, I: 'static> GetCallName for Call<T, I>
source§fn get_call_name(&self) -> &'static str
fn get_call_name(&self) -> &'static str
source§fn get_call_names() -> &'static [&'static str]
fn get_call_names() -> &'static [&'static str]
source§impl<T: Config<I>, I: 'static> GetDispatchInfo for Call<T, I>
impl<T: Config<I>, I: 'static> GetDispatchInfo for Call<T, I>
source§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read moresource§impl<T: Config<I>, I: 'static> GetDispatchInfo for Call<T, I>
impl<T: Config<I>, I: 'static> GetDispatchInfo for Call<T, I>
source§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
frame_support::dispatch
source§impl<T: Config<I>, I: 'static> PartialEq<Call<T, I>> for Call<T, I>
impl<T: Config<I>, I: 'static> PartialEq<Call<T, I>> for Call<T, I>
source§impl<T, I> TypeInfo for Call<T, I>where
PhantomData<(T, I)>: TypeInfo + 'static,
BalanceOf<T, I>: HasCompact,
<<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
T: Config<I> + 'static,
I: 'static,
impl<T, I> TypeInfo for Call<T, I>where
PhantomData<(T, I)>: TypeInfo + 'static,
BalanceOf<T, I>: HasCompact,
<<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
T: Config<I> + 'static,
I: 'static,
source§impl<T: Config<I>, I: 'static> UnfilteredDispatchable for Call<T, I>
impl<T: Config<I>, I: 'static> UnfilteredDispatchable for Call<T, I>
§type RuntimeOrigin = <T as Config>::RuntimeOrigin
type RuntimeOrigin = <T as Config>::RuntimeOrigin
frame_system::Config::RuntimeOrigin
).source§fn dispatch_bypass_filter(
self,
origin: Self::RuntimeOrigin
) -> DispatchResultWithPostInfo
fn dispatch_bypass_filter(
self,
origin: Self::RuntimeOrigin
) -> DispatchResultWithPostInfo
impl<T: Config<I>, I: 'static> EncodeLike<Call<T, I>> for Call<T, I>
impl<T: Config<I>, I: 'static> Eq for Call<T, I>
Auto Trait Implementations§
impl<T, I> RefUnwindSafe for Call<T, I>where
I: RefUnwindSafe,
T: RefUnwindSafe,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: RefUnwindSafe,
impl<T, I> Send for Call<T, I>where
I: Send,
T: Send,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: Send,
<<T as Config>::Lookup as StaticLookup>::Source: Send,
impl<T, I> Sync for Call<T, I>where
I: Sync,
T: Sync,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: Sync,
<<T as Config>::Lookup as StaticLookup>::Source: Sync,
impl<T, I> Unpin for Call<T, I>where
I: Unpin,
T: Unpin,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: Unpin,
<<T as Config>::Lookup as StaticLookup>::Source: Unpin,
impl<T, I> UnwindSafe for Call<T, I>where
I: UnwindSafe,
T: UnwindSafe,
<<T as Config<I>>::Currency as Currency<<T as Config>::AccountId>>::Balance: UnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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 moresource§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresource§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read moresource§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read moresource§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
fn blake2_128(&self) -> [u8; 16]
fn blake2_256(&self) -> [u8; 32]
fn blake2_128_concat(&self) -> Vec<u8, Global> ⓘ
fn twox_128(&self) -> [u8; 16]
fn twox_256(&self) -> [u8; 32]
fn twox_64_concat(&self) -> Vec<u8, Global> ⓘ
fn identity(&self) -> Vec<u8, Global> ⓘ
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.