pub struct TransferStake<T: Config, Staking: StakingInterface>(/* private fields */);๐Deprecated: consider migrating to DelegateStake
Expand description
A staking strategy implementation that supports transfer based staking.
In order to stake, this adapter transfers the funds from the member/delegator account to the
pool account and stakes through the pool account on Staking.
This is the older Staking strategy used by pools. To switch to the newer DelegateStake
strategy in an existing runtime, storage migration is required. See
migration::unversioned::DelegationStakeMigration. For new runtimes, it is highly recommended
to use the DelegateStake strategy.
Trait Implementationsยง
Sourceยงimpl<T: Config, Staking: StakingInterface<Balance = BalanceOf<T>, AccountId = T::AccountId>> StakeStrategy for TransferStake<T, Staking>
impl<T: Config, Staking: StakingInterface<Balance = BalanceOf<T>, AccountId = T::AccountId>> StakeStrategy for TransferStake<T, Staking>
type Balance = <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
type AccountId = <T as Config>::AccountId
type CoreStaking = Staking
Sourceยงfn strategy_type() -> StakeStrategyType
fn strategy_type() -> StakeStrategyType
The type of staking strategy of the current adapter.
Sourceยงfn transferable_balance(
pool_account: Pool<Self::AccountId>,
_: Member<Self::AccountId>,
) -> BalanceOf<T>
fn transferable_balance( pool_account: Pool<Self::AccountId>, _: Member<Self::AccountId>, ) -> BalanceOf<T>
Balance that can be transferred from pool account to member. Read more
Sourceยงfn total_balance(pool_account: Pool<Self::AccountId>) -> Option<BalanceOf<T>>
fn total_balance(pool_account: Pool<Self::AccountId>) -> Option<BalanceOf<T>>
Total balance of the pool including amount that is actively staked.
Sourceยงfn member_delegation_balance(
_member_account: Member<T::AccountId>,
) -> Option<Staking::Balance>
fn member_delegation_balance( _member_account: Member<T::AccountId>, ) -> Option<Staking::Balance>
Amount of tokens delegated by the member.
Sourceยงfn pledge_bond(
who: Member<T::AccountId>,
pool_account: Pool<Self::AccountId>,
reward_account: &Self::AccountId,
amount: BalanceOf<T>,
bond_type: BondType,
) -> DispatchResult
fn pledge_bond( who: Member<T::AccountId>, pool_account: Pool<Self::AccountId>, reward_account: &Self::AccountId, amount: BalanceOf<T>, bond_type: BondType, ) -> DispatchResult
Pledge
amount towards pool_account and update the pool bond. Also see
[StakingInterface::bond].Sourceยงfn member_withdraw(
who: Member<Self::AccountId>,
pool_account: Pool<Self::AccountId>,
amount: BalanceOf<T>,
_num_slashing_spans: u32,
) -> DispatchResult
fn member_withdraw( who: Member<Self::AccountId>, pool_account: Pool<Self::AccountId>, amount: BalanceOf<T>, _num_slashing_spans: u32, ) -> DispatchResult
Withdraw funds from pool account to member account.
Sourceยงfn dissolve(pool_account: Pool<Self::AccountId>) -> DispatchResult
fn dissolve(pool_account: Pool<Self::AccountId>) -> DispatchResult
Dissolve the pool account.
Sourceยงfn pending_slash(_: Pool<Self::AccountId>) -> Self::Balance
fn pending_slash(_: Pool<Self::AccountId>) -> Self::Balance
Check if there is any pending slash for the pool.
Sourceยงfn member_slash(
_who: Member<Self::AccountId>,
_pool: Pool<Self::AccountId>,
_amount: Staking::Balance,
_maybe_reporter: Option<T::AccountId>,
) -> DispatchResult
fn member_slash( _who: Member<Self::AccountId>, _pool: Pool<Self::AccountId>, _amount: Staking::Balance, _maybe_reporter: Option<T::AccountId>, ) -> DispatchResult
Slash the member account with
amount against pending slashes for the pool.Sourceยงfn migrate_nominator_to_agent(
_pool: Pool<Self::AccountId>,
_reward_account: &Self::AccountId,
) -> DispatchResult
fn migrate_nominator_to_agent( _pool: Pool<Self::AccountId>, _reward_account: &Self::AccountId, ) -> DispatchResult
Migrate pool account from being a direct nominator to a delegated agent. Read more
Sourceยงfn migrate_delegation(
_pool: Pool<Self::AccountId>,
_delegator: Member<Self::AccountId>,
_value: Self::Balance,
) -> DispatchResult
fn migrate_delegation( _pool: Pool<Self::AccountId>, _delegator: Member<Self::AccountId>, _value: Self::Balance, ) -> DispatchResult
Migrate member balance from pool account to member account. Read more
Sourceยงfn bonding_duration() -> EraIndex
fn bonding_duration() -> EraIndex
See [
StakingInterface::bonding_duration].Sourceยงfn current_era() -> EraIndex
fn current_era() -> EraIndex
See [
StakingInterface::current_era].Sourceยงfn minimum_nominator_bond() -> Self::Balance
fn minimum_nominator_bond() -> Self::Balance
See [
StakingInterface::minimum_nominator_bond].Sourceยงfn active_stake(pool_account: Pool<Self::AccountId>) -> Self::Balance
fn active_stake(pool_account: Pool<Self::AccountId>) -> Self::Balance
See [
StakingInterface::active_stake].Sourceยงfn total_stake(pool_account: Pool<Self::AccountId>) -> Self::Balance
fn total_stake(pool_account: Pool<Self::AccountId>) -> Self::Balance
See [
StakingInterface::total_stake].Sourceยงfn pool_strategy(pool_account: Pool<Self::AccountId>) -> StakeStrategyType
fn pool_strategy(pool_account: Pool<Self::AccountId>) -> StakeStrategyType
Which strategy the pool account is using. Read more
Sourceยงfn nominate(
pool_account: Pool<Self::AccountId>,
validators: Vec<Self::AccountId>,
) -> DispatchResult
fn nominate( pool_account: Pool<Self::AccountId>, validators: Vec<Self::AccountId>, ) -> DispatchResult
See [
StakingInterface::nominate].Sourceยงfn chill(pool_account: Pool<Self::AccountId>) -> DispatchResult
fn chill(pool_account: Pool<Self::AccountId>) -> DispatchResult
See [
StakingInterface::chill].Sourceยงfn unbond(
pool_account: Pool<Self::AccountId>,
amount: Self::Balance,
) -> DispatchResult
fn unbond( pool_account: Pool<Self::AccountId>, amount: Self::Balance, ) -> DispatchResult
See [
StakingInterface::unbond].Sourceยงfn withdraw_unbonded(
pool_account: Pool<Self::AccountId>,
num_slashing_spans: u32,
) -> Result<bool, DispatchError>
fn withdraw_unbonded( pool_account: Pool<Self::AccountId>, num_slashing_spans: u32, ) -> Result<bool, DispatchError>
See [
StakingInterface::withdraw_unbonded].Auto Trait Implementationsยง
impl<T, Staking> Freeze for TransferStake<T, Staking>
impl<T, Staking> RefUnwindSafe for TransferStake<T, Staking>
impl<T, Staking> Send for TransferStake<T, Staking>
impl<T, Staking> Sync for TransferStake<T, Staking>
impl<T, Staking> Unpin for TransferStake<T, Staking>
impl<T, Staking> UnwindSafe for TransferStake<T, Staking>
Blanket Implementationsยง
Sourceยงimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Sourceยงfn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
ยงimpl<T> CheckedConversion for T
impl<T> CheckedConversion for T
ยงfn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
ยงfn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
ยงimpl<T> Conv for T
impl<T> Conv for T
ยงimpl<T, U> DefensiveTruncateInto<U> for Twhere
U: DefensiveTruncateFrom<T>,
impl<T, U> DefensiveTruncateInto<U> for Twhere
U: DefensiveTruncateFrom<T>,
ยงfn defensive_truncate_into(self) -> U
fn defensive_truncate_into(self) -> U
Defensively truncate a value and convert it into its bounded form.
ยงimpl<T> FmtForward for T
impl<T> FmtForward for T
ยงfn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.ยงfn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.ยงfn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.ยงfn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.ยงfn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.ยงfn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.ยงfn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.ยงfn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.ยงfn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
ยงimpl<T> Instrument for T
impl<T> Instrument for T
ยงfn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
ยงfn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Sourceยงimpl<T> IntoEither for T
impl<T> IntoEither for T
Sourceยงfn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSourceยงfn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreยงimpl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
ยงimpl<T> IsType<T> for T
impl<T> IsType<T> for T
ยงimpl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
ยงimpl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
ยงfn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
ยงfn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreยงfn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreยงfn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
ยงfn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
ยงfn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.ยงfn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.ยงfn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.ยงimpl<T> Pointable for T
impl<T> Pointable for T
ยงimpl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
ยงfn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
ยงfn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T. Read moreยงimpl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
ยงfn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreยงfn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).ยงfn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.ยงfn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.ยงimpl<T> Tap for T
impl<T> Tap for T
ยงfn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreยงfn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreยงfn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreยงfn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreยงfn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreยงfn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreยงfn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.ยงfn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.ยงfn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.ยงfn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.ยงfn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.ยงfn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.ยงfn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.ยงimpl<T> TryConv for T
impl<T> TryConv for T
ยงimpl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
ยงimpl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
ยงfn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from.ยงimpl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
ยงfn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T.