Struct AsLiquidityMarket

Source
pub struct AsLiquidityMarket<'a, M> { /* private fields */ }
Expand description

As a liquidity market.

Implementations§

Source§

impl<'a, M> AsLiquidityMarket<'a, M>

Source

pub fn new(market: &'a M, market_token: &'a Mint) -> Self

Create a new AsLiquidityMarket.

Trait Implementations§

Source§

impl<M> BaseMarket<{ constants::MARKET_DECIMALS }> for AsLiquidityMarket<'_, M>
where M: BaseMarket<{ constants::MARKET_DECIMALS }, Num = u128, Signed = i128, Pool = Pool>,

Source§

type Num = u128

Unsigned number type used in the market.
Source§

type Signed = i128

Signed number type used in the market.
Source§

type Pool = Pool

Pool type.
Source§

fn liquidity_pool(&self) -> Result<&Self::Pool>

Get the liquidity pool.
Source§

fn claimable_fee_pool(&self) -> Result<&Self::Pool>

Get the claimable fee pool.
Source§

fn swap_impact_pool(&self) -> Result<&Self::Pool>

Get the swap impact pool.
Source§

fn open_interest_pool(&self, is_long: bool) -> Result<&Self::Pool>

Get the open interest pool.
Source§

fn open_interest_in_tokens_pool(&self, is_long: bool) -> Result<&Self::Pool>

Get the open interest in (index) tokens pool.
Source§

fn collateral_sum_pool(&self, is_long: bool) -> Result<&Self::Pool>

Get collateral sum pool.
Source§

fn usd_to_amount_divisor(&self) -> Self::Num

USD value to market token amount divisor. Read more
Source§

fn max_pool_amount(&self, is_long_token: bool) -> Result<Self::Num>

Get max pool amount.
Source§

fn pnl_factor_config( &self, kind: PnlFactorKind, is_long: bool, ) -> Result<Self::Num>

Get pnl factor config.
Source§

fn reserve_factor(&self) -> Result<Self::Num>

Get reserve factor.
Source§

fn open_interest_reserve_factor(&self) -> Result<Self::Num>

Get open interest reserve factor.
Source§

fn max_open_interest(&self, is_long: bool) -> Result<Self::Num>

Get max open interest.
Source§

fn ignore_open_interest_for_usage_factor(&self) -> Result<bool>

Returns whether ignore open interest for usage factor.
Source§

impl<M> BorrowingFeeMarket<{ constants::MARKET_DECIMALS }> for AsLiquidityMarket<'_, M>
where M: BorrowingFeeMarket<{ constants::MARKET_DECIMALS }, Num = u128, Signed = i128, Pool = Pool>,

Source§

fn borrowing_factor_pool(&self) -> Result<&Self::Pool>

Get borrowing factor pool.
Source§

fn total_borrowing_pool(&self) -> Result<&Self::Pool>

Get total borrowing pool.
Source§

fn borrowing_fee_params(&self) -> Result<BorrowingFeeParams<Self::Num>>

Get borrowing fee params.
Source§

fn passed_in_seconds_for_borrowing(&self) -> Result<u64>

Get the passed time in seconds for the given kind of clock.
Source§

fn borrowing_fee_kink_model_params( &self, ) -> Result<BorrowingFeeKinkModelParams<Self::Num>>

Get borrowing fee kink model params.
Source§

impl<M> HasMarketMeta for AsLiquidityMarket<'_, M>
where M: AsRef<Market>,

Source§

impl<M> LiquidityMarket<{ constants::MARKET_DECIMALS }> for AsLiquidityMarket<'_, M>
where M: BorrowingFeeMarket<{ constants::MARKET_DECIMALS }, Num = u128, Signed = i128, Pool = Pool> + PositionImpactMarket<{ constants::MARKET_DECIMALS }, Num = u128, Signed = i128, Pool = Pool> + AsRef<Market>,

Source§

fn total_supply(&self) -> Self::Num

Get total supply of the market token.
Source§

fn max_pool_value_for_deposit(&self, is_long_token: bool) -> Result<Self::Num>

Get max pool value for deposit.
Source§

impl<M> PositionImpactMarket<{ constants::MARKET_DECIMALS }> for AsLiquidityMarket<'_, M>
where M: PositionImpactMarket<{ constants::MARKET_DECIMALS }, Num = u128, Signed = i128, Pool = Pool>,

Source§

fn position_impact_pool(&self) -> Result<&Self::Pool>

Get position impact pool.
Source§

fn position_impact_params(&self) -> Result<PriceImpactParams<Self::Num>>

Get the position impact params.
Source§

fn position_impact_distribution_params( &self, ) -> Result<PositionImpactDistributionParams<Self::Num>>

Get position impact distribution params.
Source§

fn passed_in_seconds_for_position_impact_distribution(&self) -> Result<u64>

Get the passed time in seconds for the given kind of clock.

Auto Trait Implementations§

§

impl<'a, M> Freeze for AsLiquidityMarket<'a, M>

§

impl<'a, M> RefUnwindSafe for AsLiquidityMarket<'a, M>
where M: RefUnwindSafe,

§

impl<'a, M> Send for AsLiquidityMarket<'a, M>
where M: Sync,

§

impl<'a, M> Sync for AsLiquidityMarket<'a, M>
where M: Sync,

§

impl<'a, M> Unpin for AsLiquidityMarket<'a, M>

§

impl<'a, M> UnwindSafe for AsLiquidityMarket<'a, M>
where M: RefUnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<M, const DECIMALS: u8> BaseMarketExt<DECIMALS> for M
where M: BaseMarket<DECIMALS> + ?Sized,

Source§

fn pool_value_without_pnl_for_one_side( &self, prices: &Prices<Self::Num>, is_long: bool, maximize: bool, ) -> Result<Self::Num, Error>

Get the usd value of primary pool without pnl for one side.
Source§

fn open_interest(&self) -> Result<Merged<&Self::Pool, &Self::Pool>, Error>

Get total open interest as a Balance.
Source§

fn open_interest_in_tokens( &self, ) -> Result<Merged<&Self::Pool, &Self::Pool>, Error>

Get total open interest in tokens as a merged Balance. Read more
Source§

fn pnl( &self, index_token_price: &Price<Self::Num>, is_long: bool, maximize: bool, ) -> Result<Self::Signed, Error>

Get total pnl of the market for one side.
Source§

fn pnl_factor_with_pool_value( &self, prices: &Prices<Self::Num>, is_long: bool, maximize: bool, ) -> Result<(Self::Signed, Self::Num), Error>

Get pnl factor with pool value.
Source§

fn pnl_factor( &self, prices: &Prices<Self::Num>, is_long: bool, maximize: bool, ) -> Result<Self::Signed, Error>

Get pnl factor.
Source§

fn validate_pool_amount(&self, is_long_token: bool) -> Result<(), Error>

Validate (primary) pool amount.
Source§

fn pnl_factor_exceeded( &self, prices: &Prices<Self::Num>, kind: PnlFactorKind, is_long: bool, ) -> Result<Option<PnlFactorExceeded<Self::Num>>, Error>

Get the excess of pending pnl. Read more
Source§

fn validate_pnl_factor( &self, prices: &Prices<Self::Num>, kind: PnlFactorKind, is_long: bool, ) -> Result<(), Error>

Validate pnl factor.
Source§

fn validate_max_pnl( &self, prices: &Prices<Self::Num>, long_kind: PnlFactorKind, short_kind: PnlFactorKind, ) -> Result<(), Error>

Validate max pnl.
Source§

fn reserved_value( &self, index_token_price: &Price<Self::Num>, is_long: bool, ) -> Result<Self::Num, Error>

Get reserved value.
Source§

fn validate_reserve( &self, prices: &Prices<Self::Num>, is_long: bool, ) -> Result<(), Error>

Validate reserve.
Source§

fn expected_min_token_balance_excluding_collateral_amount_for_one_token_side( &self, is_long_side: bool, ) -> Result<Self::Num, Error>

Expected min token balance excluding collateral amount. Read more
Source§

fn total_collateral_amount_for_one_token_side( &self, is_long_side: bool, ) -> Result<Self::Num, Error>

Get total collateral amount for one token side. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<M, const DECIMALS: u8> BorrowingFeeMarketExt<DECIMALS> for M
where M: BorrowingFeeMarket<DECIMALS> + ?Sized,

Source§

fn cumulative_borrowing_factor(&self, is_long: bool) -> Result<Self::Num, Error>

Get current borrowing factor.
Source§

fn borrowing_factor_per_second( &self, is_long: bool, prices: &Prices<Self::Num>, ) -> Result<Self::Num, Error>

Get borrowing factor per second.
Source§

fn next_cumulative_borrowing_factor( &self, is_long: bool, prices: &Prices<Self::Num>, duration_in_second: u64, ) -> Result<(Self::Num, Self::Num), Error>

Get next cumulative borrowing factor of the given side.
Source§

fn total_pending_borrowing_fees( &self, prices: &Prices<Self::Num>, is_long: bool, ) -> Result<Self::Num, Error>

Get total pending borrowing fees.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<M, const DECIMALS: u8> LiquidityMarketExt<DECIMALS> for M
where M: LiquidityMarket<DECIMALS>,

Source§

fn validate_pool_value_for_deposit( &self, prices: &Prices<Self::Num>, is_long_token: bool, ) -> Result<(), Error>

Validate (primary) pool value for deposit.
Source§

fn pool_value( &self, prices: &Prices<Self::Num>, pnl_factor: PnlFactorKind, maximize: bool, ) -> Result<Self::Signed, Error>

Get the usd value of primary pool.
Source§

fn market_token_price( &self, prices: &Prices<Self::Num>, pnl_factor: PnlFactorKind, maximize: bool, ) -> Result<Self::Num, Error>

Get market token price.
Source§

impl<M, const DECIMALS: u8> PositionImpactMarketExt<DECIMALS> for M
where M: PositionImpactMarket<DECIMALS> + ?Sized,

Source§

fn position_impact_pool_amount(&self) -> Result<Self::Num, Error>

Get position impact pool amount.
Source§

fn pending_position_impact_pool_distribution_amount( &self, duration_in_secs: u64, ) -> Result<(Self::Num, Self::Num), Error>

Get pending position impact pool distribution amount.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

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

§

fn vzip(self) -> V