Struct pallet_liquidity_mining::GlobalFarmData
source · pub struct GlobalFarmData<T: Config<I>, I: 'static = ()> {
pub id: GlobalFarmId,
pub reward_currency: T::AssetId,
pub incentivized_asset: T::AssetId,
/* private fields */
}
Expand description
This struct represents the state a of single liquidity mining program. YieldFarm
s are rewarded from
GlobalFarm
based on their stake in GlobalFarm
. YieldFarm
stake in GlobalFarm
is derived from
users stake in YieldFarm
.
Yield farm is considered live from global farm view if yield farm is active
or stopped
.
Fields§
§id: GlobalFarmId
§reward_currency: T::AssetId
§incentivized_asset: T::AssetId
Implementations§
source§impl<T: Config<I>, I: 'static> GlobalFarmData<T, I>
impl<T: Config<I>, I: 'static> GlobalFarmData<T, I>
pub fn new(
id: GlobalFarmId,
updated_at: <T as Config>::BlockNumber,
reward_currency: T::AssetId,
yield_per_period: Perquintill,
planned_yielding_periods: <T as Config>::BlockNumber,
blocks_per_period: T::BlockNumber,
owner: T::AccountId,
incentivized_asset: T::AssetId,
max_reward_per_period: Balance,
min_deposit: Balance,
price_adjustment: FixedU128
) -> Self
sourcepub fn increase_yield_farm_counts(&mut self) -> Result<(), ArithmeticError>
pub fn increase_yield_farm_counts(&mut self) -> Result<(), ArithmeticError>
This function updates yields_farm_count when new yield farm is added into the global farm. This function should be called only when new yield farm is created/added into the global farm.
sourcepub fn decrease_live_yield_farm_count(&mut self) -> Result<(), Error<T, I>>
pub fn decrease_live_yield_farm_count(&mut self) -> Result<(), Error<T, I>>
This function updates yield_farms_count
when yield farm is terminated from global farm.
This function should be called only when yield farm is removed from global farm.
sourcepub fn decrease_total_yield_farm_count(&mut self) -> Result<(), Error<T, I>>
pub fn decrease_total_yield_farm_count(&mut self) -> Result<(), Error<T, I>>
This function updates yield_farms_count
when yield farm is removed from storage.
This function should be called only if yield farm was removed from storage.
!!! DON’T call this function if yield farm is in stopped or terminated.
sourcepub fn has_live_farms(&self) -> bool
pub fn has_live_farms(&self) -> bool
Function returns true
if global farm has live yield farms.
sourcepub fn can_be_removed(&self) -> bool
pub fn can_be_removed(&self) -> bool
Function return true
if global farm can be removed from storage.
sourcepub fn is_full(&self) -> bool
pub fn is_full(&self) -> bool
This function returns true
if farm has no capacity for next yield farm(yield farm can’t
be added into global farm until some yield farm is removed from storage).
Trait Implementations§
source§impl<T: Clone + Config<I>, I: Clone + 'static> Clone for GlobalFarmData<T, I>where
T::AccountId: Clone,
T::AssetId: Clone,
impl<T: Clone + Config<I>, I: Clone + 'static> Clone for GlobalFarmData<T, I>where
T::AccountId: Clone,
T::AssetId: Clone,
source§fn clone(&self) -> GlobalFarmData<T, I>
fn clone(&self) -> GlobalFarmData<T, I>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T: Config<I>, I: 'static> Decode for GlobalFarmData<T, I>where
T::AccountId: Decode,
<T as Config>::BlockNumber: Decode,
T::AssetId: Decode,
BlockNumberFor<T>: Decode,
impl<T: Config<I>, I: 'static> Decode for GlobalFarmData<T, I>where
T::AccountId: Decode,
<T as Config>::BlockNumber: Decode,
T::AssetId: Decode,
BlockNumberFor<T>: Decode,
source§impl<T: Config<I>, I: 'static> Encode for GlobalFarmData<T, I>where
T::AccountId: Encode,
<T as Config>::BlockNumber: Encode,
T::AssetId: Encode,
BlockNumberFor<T>: Encode,
impl<T: Config<I>, I: 'static> Encode for GlobalFarmData<T, I>where
T::AccountId: Encode,
<T as Config>::BlockNumber: Encode,
T::AssetId: Encode,
BlockNumberFor<T>: Encode,
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 size_hint(&self) -> usize
fn size_hint(&self) -> usize
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> MaxEncodedLen for GlobalFarmData<T, I>
impl<T: Config<I>, I: 'static> MaxEncodedLen for GlobalFarmData<T, I>
source§fn max_encoded_len() -> usize
fn max_encoded_len() -> usize
source§impl<T: PartialEq + Config<I>, I: PartialEq + 'static> PartialEq<GlobalFarmData<T, I>> for GlobalFarmData<T, I>where
T::AccountId: PartialEq,
T::AssetId: PartialEq,
impl<T: PartialEq + Config<I>, I: PartialEq + 'static> PartialEq<GlobalFarmData<T, I>> for GlobalFarmData<T, I>where
T::AccountId: PartialEq,
T::AssetId: PartialEq,
source§fn eq(&self, other: &GlobalFarmData<T, I>) -> bool
fn eq(&self, other: &GlobalFarmData<T, I>) -> bool
source§impl<T: Config<I>, I: 'static> PriceAdjustment<GlobalFarmData<T, I>> for DefaultPriceAdjustment
impl<T: Config<I>, I: 'static> PriceAdjustment<GlobalFarmData<T, I>> for DefaultPriceAdjustment
type Error = DispatchError
type PriceAdjustment = FixedU128
source§fn get(
global_farm: &GlobalFarmData<T, I>
) -> Result<Self::PriceAdjustment, Self::Error>
fn get(
global_farm: &GlobalFarmData<T, I>
) -> Result<Self::PriceAdjustment, Self::Error>
PriceAdjustment
for given GlobalFarm
.source§impl<T, I> TypeInfo for GlobalFarmData<T, I>where
T::AccountId: TypeInfo + 'static,
<T as Config>::BlockNumber: TypeInfo + 'static,
T::AssetId: TypeInfo + 'static,
BlockNumberFor<T>: TypeInfo + 'static,
T: Config<I> + 'static,
I: 'static,
impl<T, I> TypeInfo for GlobalFarmData<T, I>where
T::AccountId: TypeInfo + 'static,
<T as Config>::BlockNumber: TypeInfo + 'static,
T::AssetId: TypeInfo + 'static,
BlockNumberFor<T>: TypeInfo + 'static,
T: Config<I> + 'static,
I: 'static,
impl<T: Config<I>, I: 'static> EncodeLike<GlobalFarmData<T, I>> for GlobalFarmData<T, I>where
T::AccountId: Encode,
<T as Config>::BlockNumber: Encode,
T::AssetId: Encode,
BlockNumberFor<T>: Encode,
impl<T: Eq + Config<I>, I: Eq + 'static> Eq for GlobalFarmData<T, I>where
T::AccountId: Eq,
T::AssetId: Eq,
impl<T: Config<I>, I: 'static> StructuralEq for GlobalFarmData<T, I>
impl<T: Config<I>, I: 'static> StructuralPartialEq for GlobalFarmData<T, I>
Auto Trait Implementations§
impl<T, I> RefUnwindSafe for GlobalFarmData<T, I>where
<T as Config>::AccountId: RefUnwindSafe,
<T as Config<I>>::AssetId: RefUnwindSafe,
<T as Config>::BlockNumber: RefUnwindSafe,
impl<T, I> Send for GlobalFarmData<T, I>
impl<T, I> Sync for GlobalFarmData<T, I>
impl<T, I> Unpin for GlobalFarmData<T, I>where
<T as Config>::AccountId: Unpin,
<T as Config<I>>::AssetId: Unpin,
<T as Config>::BlockNumber: Unpin,
impl<T, I> UnwindSafe for GlobalFarmData<T, I>where
<T as Config>::AccountId: UnwindSafe,
<T as Config<I>>::AssetId: UnwindSafe,
<T as Config>::BlockNumber: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
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> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
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<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§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,
self
and passes that borrow into the pipe function. Read moresource§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,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
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<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds. 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
.