[][src]Enum pallet_treasury::Call

pub enum Call<T: Trait<I>, I: Instance = DefaultInstance> {
    propose_spend(<<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance, <T::Lookup as StaticLookup>::Source),
    reject_proposal(ProposalIndex),
    approve_proposal(ProposalIndex),
    report_awesome(Vec<u8>, T::AccountId),
    retract_tip(T::Hash),
    tip_new(Vec<u8>, T::AccountId, <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance),
    tip(T::Hash, <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance),
    close_tip(T::Hash),
    propose_bounty(<<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::BalanceVec<u8>),
    approve_bounty(ProposalIndex),
    propose_curator(ProposalIndex, <T::Lookup as StaticLookup>::Source, <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance),
    unassign_curator(ProposalIndex),
    accept_curator(ProposalIndex),
    award_bounty(ProposalIndex, <T::Lookup as StaticLookup>::Source),
    claim_bounty(BountyIndex),
    close_bounty(BountyIndex),
    extend_bounty_expiry(BountyIndexVec<u8>),
    // some variants omitted
}

Dispatchable calls.

Each variant of this enum maps to a dispatchable function from the associated module.

Variants

propose_spend(<<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance, <T::Lookup as StaticLookup>::Source)

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)
  • DbReads: ProposalCount, origin account
  • DbWrites: ProposalCount, Proposals, origin account

reject_proposal(ProposalIndex)

Reject a proposed spend. The original deposit will be slashed.

May only be called from T::RejectOrigin.

  • Complexity: O(1)
  • DbReads: Proposals, rejected proposer account
  • DbWrites: Proposals, rejected proposer account

approve_proposal(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).
  • DbReads: Proposals, Approvals
  • DbWrite: Approvals

report_awesome(Vec<u8>, T::AccountId)

Report something reason that deserves a tip and claim any eventual the finder's fee.

The dispatch origin for this call must be Signed.

Payment: TipReportDepositBase will be reserved from the origin account, as well as DataDepositPerByte for each byte in reason.

  • reason: The reason for, or the thing that deserves, the tip; generally this will be a UTF-8-encoded URL.
  • who: The account which should be credited for the tip.

Emits NewTip if successful.

  • Complexity: O(R) where R length of reason.
    • encoding and hashing of 'reason'
  • DbReads: Reasons, Tips
  • DbWrites: Reasons, Tips

retract_tip(T::Hash)

Retract a prior tip-report from report_awesome, and cancel the process of tipping.

If successful, the original deposit will be unreserved.

The dispatch origin for this call must be Signed and the tip identified by hash must have been reported by the signing account through report_awesome (and not through tip_new).

  • hash: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the original tip reason and the beneficiary account ID.

Emits TipRetracted if successful.

  • Complexity: O(1)
    • Depends on the length of T::Hash which is fixed.
  • DbReads: Tips, origin account
  • DbWrites: Reasons, Tips, origin account

tip_new(Vec<u8>, T::AccountId, <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance)

Give a tip for something new; no finder's fee will be taken.

The dispatch origin for this call must be Signed and the signing account must be a member of the Tippers set.

  • reason: The reason for, or the thing that deserves, the tip; generally this will be a UTF-8-encoded URL.
  • who: The account which should be credited for the tip.
  • tip_value: The amount of tip that the sender would like to give. The median tip value of active tippers will be given to the who.

Emits NewTip if successful.

  • Complexity: O(R + T) where R length of reason, T is the number of tippers.
    • O(T): decoding Tipper vec of length T T is charged as upper bound given by ContainsLengthBound. The actual cost depends on the implementation of T::Tippers.
    • O(R): hashing and encoding of reason of length R
  • DbReads: Tippers, Reasons
  • DbWrites: Reasons, Tips

tip(T::Hash, <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance)

Declare a tip value for an already-open tip.

The dispatch origin for this call must be Signed and the signing account must be a member of the Tippers set.

  • hash: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the hash of the original tip reason and the beneficiary account ID.
  • tip_value: The amount of tip that the sender would like to give. The median tip value of active tippers will be given to the who.

Emits TipClosing if the threshold of tippers has been reached and the countdown period has started.

  • Complexity: O(T) where T is the number of tippers. decoding Tipper vec of length T, insert tip and check closing, T is charged as upper bound given by ContainsLengthBound. The actual cost depends on the implementation of T::Tippers.

    Actually weight could be lower as it depends on how many tips are in OpenTip but it is weighted as if almost full i.e of length T-1.

  • DbReads: Tippers, Tips

  • DbWrites: Tips

close_tip(T::Hash)

Close and payout a tip.

The dispatch origin for this call must be Signed.

The tip identified by hash must have finished its countdown period.

  • hash: The identity of the open tip for which a tip value is declared. This is formed as the hash of the tuple of the original tip reason and the beneficiary account ID.

  • Complexity: O(T) where T is the number of tippers. decoding Tipper vec of length T. T is charged as upper bound given by ContainsLengthBound. The actual cost depends on the implementation of T::Tippers.
  • DbReads: Tips, Tippers, tip finder
  • DbWrites: Reasons, Tips, Tippers, tip finder

propose_bounty(<<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::BalanceVec<u8>)

Propose a new bounty.

The dispatch origin for this call must be Signed.

Payment: TipReportDepositBase will be reserved from the origin account, as well as DataDepositPerByte for each byte in reason. It will be unreserved upon approval, or slashed when rejected.

  • curator: The curator account whom will manage this bounty.
  • fee: The curator fee.
  • value: The total payment amount of this bounty, curator fee included.
  • description: The description of this bounty.
approve_bounty(ProposalIndex)

Approve a bounty proposal. At a later time, the bounty will be funded and become active and the original deposit will be returned.

May only be called from T::ApproveOrigin.

  • O(1).
  • Limited storage reads.
  • One DB change.

propose_curator(ProposalIndex, <T::Lookup as StaticLookup>::Source, <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance)

Assign a curator to a funded bounty.

May only be called from T::ApproveOrigin.

  • O(1).
  • Limited storage reads.
  • One DB change.

unassign_curator(ProposalIndex)

Unassign curator from a bounty.

This function can only be called by the RejectOrigin a signed origin.

If this function is called by the RejectOrigin, we assume that the curator is malicious or inactive. As a result, we will slash the curator when possible.

If the origin is the curator, we take this as a sign they are unable to do their job and they willingly give up. We could slash them, but for now we allow them to recover their deposit and exit without issue. (We may want to change this if it is abused.)

Finally, the origin can be anyone if and only if the curator is "inactive". This allows anyone in the community to call out that a curator is not doing their due diligence, and we should pick a new curator. In this case the curator should also be slashed.

  • O(1).
  • Limited storage reads.
  • One DB change.

accept_curator(ProposalIndex)

Accept the curator role for a bounty. A deposit will be reserved from curator and refund upon successful payout.

May only be called from the curator.

  • O(1).
  • Limited storage reads.
  • One DB change.

award_bounty(ProposalIndex, <T::Lookup as StaticLookup>::Source)

Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.

The dispatch origin for this call must be the curator of this bounty.

  • bounty_id: Bounty ID to award.
  • beneficiary: The beneficiary account whom will receive the payout.
claim_bounty(BountyIndex)

Claim the payout from an awarded bounty after payout delay.

The dispatch origin for this call must be the beneficiary of this bounty.

  • bounty_id: Bounty ID to claim.
close_bounty(BountyIndex)

Cancel a proposed or active bounty. All the funds will be sent to treasury and the curator deposit will be unreserved if possible.

Only T::RejectOrigin is able to cancel a bounty.

  • bounty_id: Bounty ID to cancel.
extend_bounty_expiry(BountyIndexVec<u8>)

Extend the expiry time of an active bounty.

The dispatch origin for this call must be the curator of this bounty.

  • bounty_id: Bounty ID to extend.
  • remark: additional information.

Trait Implementations

impl<T: Trait<I>, I: Instance> Clone for Call<T, I>[src]

impl<T: Trait<I>, I: Instance> Debug for Call<T, I>[src]

impl<T: Trait<I>, I: Instance> Decode for Call<T, I> where
    <T::Lookup as StaticLookup>::Source: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    T::AccountId: Decode,
    T::AccountId: Decode,
    T::Hash: Decode,
    T::Hash: Decode,
    T::AccountId: Decode,
    T::AccountId: Decode,
    T::Hash: Decode,
    T::Hash: Decode,
    T::Hash: Decode,
    T::Hash: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact
[src]

impl<T: Trait<I>, I: Instance> Encode for Call<T, I> where
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    T::AccountId: Encode,
    T::AccountId: Encode,
    T::Hash: Encode,
    T::Hash: Encode,
    T::AccountId: Encode,
    T::AccountId: Encode,
    T::Hash: Encode,
    T::Hash: Encode,
    T::Hash: Encode,
    T::Hash: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact
[src]

impl<T: Trait<I>, I: Instance> EncodeLike<Call<T, I>> for Call<T, I> where
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    T::AccountId: Encode,
    T::AccountId: Encode,
    T::Hash: Encode,
    T::Hash: Encode,
    T::AccountId: Encode,
    T::AccountId: Encode,
    T::Hash: Encode,
    T::Hash: Encode,
    T::Hash: Encode,
    T::Hash: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: HasCompact
[src]

impl<T: Trait<I>, I: Instance> Eq for Call<T, I>[src]

impl<T: Trait<I>, I: Instance> GetCallName for Call<T, I>[src]

impl<T: Trait<I>, I: Instance> GetDispatchInfo for Call<T, I>[src]

impl<T: Trait<I>, I: Instance> PartialEq<Call<T, I>> for Call<T, I>[src]

impl<T: Trait<I>, I: Instance> UnfilteredDispatchable for Call<T, I>[src]

type Origin = T::Origin

The origin type of the runtime, (i.e. frame_system::Trait::Origin).

Auto Trait Implementations

impl<T, I> RefUnwindSafe for Call<T, I> where
    I: RefUnwindSafe,
    T: RefUnwindSafe,
    <T as Trait>::AccountId: RefUnwindSafe,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: RefUnwindSafe,
    <T as Trait<I>>::Currency: Currency<<T as Trait>::AccountId>,
    <T as Trait>::Hash: RefUnwindSafe,
    <T as Trait>::Lookup: StaticLookup,
    <<T as Trait>::Lookup as StaticLookup>::Source: RefUnwindSafe

impl<T, I> Send for Call<T, I> where
    I: Send,
    T: Send,
    <T as Trait>::AccountId: Send,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Send,
    <T as Trait<I>>::Currency: Currency<<T as Trait>::AccountId>,
    <T as Trait>::Hash: Send,
    <T as Trait>::Lookup: StaticLookup,
    <<T as Trait>::Lookup as StaticLookup>::Source: Send

impl<T, I> Sync for Call<T, I> where
    I: Sync,
    T: Sync,
    <T as Trait>::AccountId: Sync,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Sync,
    <T as Trait<I>>::Currency: Currency<<T as Trait>::AccountId>,
    <T as Trait>::Hash: Sync,
    <T as Trait>::Lookup: StaticLookup,
    <<T as Trait>::Lookup as StaticLookup>::Source: Sync

impl<T, I> Unpin for Call<T, I> where
    I: Unpin,
    T: Unpin,
    <T as Trait>::AccountId: Unpin,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Unpin,
    <T as Trait<I>>::Currency: Currency<<T as Trait>::AccountId>,
    <T as Trait>::Hash: Unpin,
    <T as Trait>::Lookup: StaticLookup,
    <<T as Trait>::Lookup as StaticLookup>::Source: Unpin

impl<T, I> UnwindSafe for Call<T, I> where
    I: UnwindSafe,
    T: UnwindSafe,
    <T as Trait>::AccountId: UnwindSafe,
    <<T as Trait<I>>::Currency as Currency<<T as Trait>::AccountId>>::Balance: UnwindSafe,
    <T as Trait<I>>::Currency: Currency<<T as Trait>::AccountId>,
    <T as Trait>::Hash: UnwindSafe,
    <T as Trait>::Lookup: StaticLookup,
    <<T as Trait>::Lookup as StaticLookup>::Source: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<S> Codec for S where
    S: Encode + Decode
[src]

impl<T, X> Decode for X where
    T: Decode + Into<X>,
    X: WrapperTypeDecode<Wrapped = T>, 
[src]

impl<T> DecodeAll for T where
    T: Decode
[src]

impl<T> DecodeLimit for T where
    T: Decode
[src]

impl<T> DynClone for T where
    T: Clone
[src]

impl<T, X> Encode for X where
    T: Encode + ?Sized,
    X: WrapperTypeEncode<Target = T>, 
[src]

impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ T> for T where
    T: Encode
[src]

impl<'_, T> EncodeLike<&'_ mut T> for T where
    T: Encode
[src]

impl<T> EncodeLike<Arc<T>> for T where
    T: Encode
[src]

impl<T> EncodeLike<Box<T>> for T where
    T: Encode
[src]

impl<'a, T> EncodeLike<Cow<'a, T>> for T where
    T: Encode + ToOwned
[src]

impl<T> EncodeLike<Rc<T>> for T where
    T: Encode
[src]

impl<T> From<T> for T[src]

impl<S> FullCodec for S where
    S: Decode + FullEncode
[src]

impl<S> FullEncode for S where
    S: Encode + EncodeLike<S>, 
[src]

impl<T> Hashable for T where
    T: Codec
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IsType<T> for T[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    Outer: AsRef<T> + AsMut<T> + From<T>,
    T: From<Outer>, 

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

impl<T> KeyedVec for T where
    T: Codec
[src]

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe

impl<T> Member for T where
    T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug
[src]

impl<T> Parameter for T where
    T: Codec + EncodeLike<T> + Clone + Eq + Debug
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatedConversion for T

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 

impl<T, S> UniqueSaturatedInto<T> for S where
    S: TryInto<T>,
    T: Bounded

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,