[][src]Enum pallet_dapps_staking::Call

pub enum Call<T: Trait> {
    bond(<T::Lookup as StaticLookup>::SourceBalanceOf<T>, RewardDestination),
    bond_extra(BalanceOf<T>),
    unbond(BalanceOf<T>),
    withdraw_unbonded(),
    nominate_contracts(Vec<(<T::Lookup as StaticLookup>::Source, BalanceOf<T>)>),
    chill(),
    set_payee(RewardDestination),
    set_controller(<T::Lookup as StaticLookup>::Source),
    claim_for_nominator(EraIndex),
    claim_for_operator(EraIndex),
    // some variants omitted
}

Dispatchable calls.

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

Variants

Take the origin account as a stash and lock up value of its balance. controller will be the account that controls it.

value must be more than the minimum_balance specified by T::Currency.

The dispatch origin for this call must be Signed by the stash account.

  • Independent of the arguments. Moderate complexity.
  • O(1).
  • Three extra DB entries.

NOTE: Two of the storage writes (Self::bonded, Self::payee) are never cleaned unless the origin falls below existential deposit and gets removed as dust.

TODO: weight

bond_extra(BalanceOf<T>)

Add some extra amount that have appeared in the stash free_balance into the balance up for staking.

Use this if there are additional funds in your stash account that you wish to bond. Unlike [bond] or [unbond] this function does not impose any limitation on the amount that can be added.

The dispatch origin for this call must be Signed by the stash, not the controller.

  • Independent of the arguments. Insignificant complexity.
  • O(1).
  • One DB entry.

TODO: weight

unbond(BalanceOf<T>)

Schedule a portion of the stash to be unlocked ready for transfer out after the bond period ends. If this leaves an amount actively bonded less than T::Currency::minimum_balance(), then it is increased to the full amount.

Once the unlock period is done, you can call withdraw_unbonded to actually move the funds out of management ready for transfer.

No more than a limited number of unlocking chunks (see MAX_UNLOCKING_CHUNKS) can co-exists at the same time. In that case, Call::withdraw_unbonded need to be called first to remove some of the chunks (if possible).

The dispatch origin for this call must be Signed by the controller, not the stash.

See also Call::withdraw_unbonded.

  • Independent of the arguments. Limited but potentially exploitable complexity.
  • Contains a limited number of reads.
  • Each call (requires the remainder of the bonded balance to be above minimum_balance) will cause a new entry to be inserted into a vector (Ledger.unlocking) kept in storage. The only way to clean the aforementioned storage item is also user-controlled via withdraw_unbonded.
  • One DB entry. TODO: weight
withdraw_unbonded()

Remove any unlocked chunks from the unlocking queue from our management.

This essentially frees up that balance to be used by the stash account to do whatever it wants.

The dispatch origin for this call must be Signed by the controller, not the stash.

Emits Withdrawn.

See also Call::unbond.

  • Could be dependent on the origin argument and how much unlocking chunks exist. It implies consolidate_unlocked which loops over Ledger.unlocking, which is indirectly user-controlled. See [unbond] for more detail.
  • Contains a limited number of reads, yet the size of which could be large based on ledger.
  • Writes are limited to the origin account key.

TODO: weight

nominate_contracts(Vec<(<T::Lookup as StaticLookup>::Source, BalanceOf<T>)>)

Declare the desire to nominate targets for the origin controller.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the controller, not the stash.

  • The transaction's complexity is proportional to the size of targets, which is capped at MAX_NOMINATIONS.
  • Both the reads and writes follow a similar pattern.

TODO: weight

chill()

Declare no desire to either validate or nominate.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the controller, not the stash.

  • Independent of the arguments. Insignificant complexity.
  • Contains one read.
  • Writes are limited to the origin account key.

TODO: weight

(Re-)set the payment target for a controller.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the controller, not the stash.

  • Independent of the arguments. Insignificant complexity.
  • Contains a limited number of reads.
  • Writes are limited to the origin account key.

TODO: weight

set_controller(<T::Lookup as StaticLookup>::Source)

(Re-)set the controller of a stash.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the stash, not the controller.

  • Independent of the arguments. Insignificant complexity.
  • Contains a limited number of reads.
  • Writes are limited to the origin account key.

TODO: weight

claim_for_nominator(EraIndex)

rewards are claimed by the nominator.

era must be in the range [current_era - history_depth; active_era).

The dispatch origin for this call must be Signed by the stash, not the controller. TODO: weight

claim_for_operator(EraIndex)

rewards are claimed by the operator.

era must be in the range [current_era - history_depth; active_era).

The dispatch origin for this call must be Signed by the stash, not the controller TODO: weight

Trait Implementations

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

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

impl<T: Trait> Decode for Call<T> where
    <T::Lookup as StaticLookup>::Source: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    Vec<(<T::Lookup as StaticLookup>::Source, BalanceOf<T>)>: Decode,
    Vec<(<T::Lookup as StaticLookup>::Source, BalanceOf<T>)>: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    <T::Lookup as StaticLookup>::Source: Decode,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact
[src]

impl<T: Trait> Encode for Call<T> where
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    Vec<(<T::Lookup as StaticLookup>::Source, BalanceOf<T>)>: Encode,
    Vec<(<T::Lookup as StaticLookup>::Source, BalanceOf<T>)>: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact
[src]

impl<T: Trait> EncodeLike<Call<T>> for Call<T> where
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    Vec<(<T::Lookup as StaticLookup>::Source, BalanceOf<T>)>: Encode,
    Vec<(<T::Lookup as StaticLookup>::Source, BalanceOf<T>)>: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    <T::Lookup as StaticLookup>::Source: Encode,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact,
    BalanceOf<T>: HasCompact
[src]

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

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

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

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

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

type Origin = T::Origin

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

Auto Trait Implementations

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

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

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

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

impl<T> UnwindSafe for Call<T> where
    T: UnwindSafe,
    <<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: UnwindSafe,
    <T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
    <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, 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>, 
[src]

fn from_ref(outer: &Outer) -> &T[src]

Get a reference to the inner from the outer.

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

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[src]

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>, 
[src]

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

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