pub struct RevertibleLiquidityMarket<'a, 'info> { /* private fields */ }
Expand description
Convert a RevertibleMarket
to a LiquidityMarketMut
.
Trait Implementations§
Source§impl<'a, 'info> Bank<Pubkey> for RevertibleLiquidityMarket<'a, 'info>
impl<'a, 'info> Bank<Pubkey> for RevertibleLiquidityMarket<'a, 'info>
Source§fn record_transferred_in_by_token<Q: Borrow<Pubkey> + ?Sized>(
&mut self,
token: &Q,
amount: &Self::Num,
) -> Result<()>
fn record_transferred_in_by_token<Q: Borrow<Pubkey> + ?Sized>( &mut self, token: &Q, amount: &Self::Num, ) -> Result<()>
Record transferred in amount by token.
Source§fn record_transferred_out_by_token<Q: Borrow<Pubkey> + ?Sized>(
&mut self,
token: &Q,
amount: &Self::Num,
) -> Result<()>
fn record_transferred_out_by_token<Q: Borrow<Pubkey> + ?Sized>( &mut self, token: &Q, amount: &Self::Num, ) -> Result<()>
Record transferred out amount by token.
Source§impl<'a, 'info> BaseMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'a, 'info>
impl<'a, 'info> BaseMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'a, 'info>
Source§type Num = <RevertibleMarket<'a, 'info> as BaseMarket<{ constants::MARKET_DECIMALS }>>::Num
type Num = <RevertibleMarket<'a, 'info> as BaseMarket<{ constants::MARKET_DECIMALS }>>::Num
Unsigned number type used in the market.
Source§type Signed = <RevertibleMarket<'a, 'info> as BaseMarket<{ constants::MARKET_DECIMALS }>>::Signed
type Signed = <RevertibleMarket<'a, 'info> as BaseMarket<{ constants::MARKET_DECIMALS }>>::Signed
Signed number type used in the market.
Source§type Pool = <RevertibleMarket<'a, 'info> as BaseMarket<{ constants::MARKET_DECIMALS }>>::Pool
type Pool = <RevertibleMarket<'a, 'info> as BaseMarket<{ constants::MARKET_DECIMALS }>>::Pool
Pool type.
Source§fn liquidity_pool(&self) -> Result<&Self::Pool>
fn liquidity_pool(&self) -> Result<&Self::Pool>
Get the liquidity pool.
Source§fn claimable_fee_pool(&self) -> Result<&Self::Pool>
fn claimable_fee_pool(&self) -> Result<&Self::Pool>
Get the claimable fee pool.
Source§fn swap_impact_pool(&self) -> Result<&Self::Pool>
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>
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>
fn open_interest_in_tokens_pool(&self, is_long: bool) -> Result<&Self::Pool>
Get the open interest in (index) tokens pool.
Source§fn usd_to_amount_divisor(&self) -> Self::Num
fn usd_to_amount_divisor(&self) -> Self::Num
USD value to market token amount divisor. Read more
Source§fn pnl_factor_config(
&self,
kind: PnlFactorKind,
is_long: bool,
) -> Result<Self::Num>
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>
fn reserve_factor(&self) -> Result<Self::Num>
Get reserve factor.
Source§fn open_interest_reserve_factor(&self) -> Result<Self::Num>
fn open_interest_reserve_factor(&self) -> Result<Self::Num>
Get open interest reserve factor.
Source§fn ignore_open_interest_for_usage_factor(&self) -> Result<bool>
fn ignore_open_interest_for_usage_factor(&self) -> Result<bool>
Returns whether ignore open interest for usage factor.
Source§impl BaseMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl BaseMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Source§impl BorrowingFeeMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl BorrowingFeeMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Source§fn borrowing_factor_pool(&self) -> Result<&Self::Pool>
fn borrowing_factor_pool(&self) -> Result<&Self::Pool>
Get borrowing factor pool.
Source§fn total_borrowing_pool(&self) -> Result<&Self::Pool>
fn total_borrowing_pool(&self) -> Result<&Self::Pool>
Get total borrowing pool.
Source§fn borrowing_fee_params(&self) -> Result<BorrowingFeeParams<Self::Num>>
fn borrowing_fee_params(&self) -> Result<BorrowingFeeParams<Self::Num>>
Get borrowing fee params.
Source§fn passed_in_seconds_for_borrowing(&self) -> Result<u64>
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>>
fn borrowing_fee_kink_model_params( &self, ) -> Result<BorrowingFeeKinkModelParams<Self::Num>>
Get borrowing fee kink model params.
Source§impl BorrowingFeeMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl BorrowingFeeMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Source§impl HasMarketMeta for RevertibleLiquidityMarket<'_, '_>
impl HasMarketMeta for RevertibleLiquidityMarket<'_, '_>
fn market_meta(&self) -> &MarketMeta
fn is_pure(&self) -> bool
Source§impl LiquidityMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl LiquidityMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Source§fn total_supply(&self) -> Self::Num
fn total_supply(&self) -> Self::Num
Get total supply of the market token.
Source§impl LiquidityMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl LiquidityMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Source§impl PositionImpactMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl PositionImpactMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Source§fn position_impact_pool(&self) -> Result<&Self::Pool>
fn position_impact_pool(&self) -> Result<&Self::Pool>
Get position impact pool.
Source§fn position_impact_params(&self) -> Result<PriceImpactParams<Self::Num>>
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>>
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>
fn passed_in_seconds_for_position_impact_distribution(&self) -> Result<u64>
Get the passed time in seconds for the given kind of clock.
Source§impl PositionImpactMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl PositionImpactMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Source§impl Revertible for RevertibleLiquidityMarket<'_, '_>
impl Revertible for RevertibleLiquidityMarket<'_, '_>
Source§impl Revision for RevertibleLiquidityMarket<'_, '_>
impl Revision for RevertibleLiquidityMarket<'_, '_>
Source§impl SwapMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl SwapMarket<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Source§fn swap_impact_params(&self) -> Result<PriceImpactParams<Self::Num>>
fn swap_impact_params(&self) -> Result<PriceImpactParams<Self::Num>>
Get swap impact params.
Source§impl SwapMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
impl SwapMarketMut<{ constants::MARKET_DECIMALS }> for RevertibleLiquidityMarket<'_, '_>
Auto Trait Implementations§
impl<'a, 'info> Freeze for RevertibleLiquidityMarket<'a, 'info>
impl<'a, 'info> !RefUnwindSafe for RevertibleLiquidityMarket<'a, 'info>
impl<'a, 'info> !Send for RevertibleLiquidityMarket<'a, 'info>
impl<'a, 'info> !Sync for RevertibleLiquidityMarket<'a, 'info>
impl<'a, 'info> Unpin for RevertibleLiquidityMarket<'a, 'info>
impl<'a, 'info> !UnwindSafe for RevertibleLiquidityMarket<'a, 'info>
Blanket Implementations§
Source§impl<M, const DECIMALS: u8> BaseMarketExt<DECIMALS> for Mwhere
M: BaseMarket<DECIMALS> + ?Sized,
impl<M, const DECIMALS: u8> BaseMarketExt<DECIMALS> for Mwhere
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>
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>
fn open_interest(&self) -> Result<Merged<&Self::Pool, &Self::Pool>, Error>
Get total open interest as a
Balance
.Source§fn pnl(
&self,
index_token_price: &Price<Self::Num>,
is_long: bool,
maximize: bool,
) -> Result<Self::Signed, Error>
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>
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>
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>
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>
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>
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>
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>
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>
fn validate_reserve( &self, prices: &Prices<Self::Num>, is_long: bool, ) -> Result<(), Error>
Validate reserve.
Source§impl<M, const DECIMALS: u8> BaseMarketMutExt<DECIMALS> for Mwhere
M: BaseMarketMut<DECIMALS> + ?Sized,
impl<M, const DECIMALS: u8> BaseMarketMutExt<DECIMALS> for Mwhere
M: BaseMarketMut<DECIMALS> + ?Sized,
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
Source§impl<M, const DECIMALS: u8> BorrowingFeeMarketExt<DECIMALS> for Mwhere
M: BorrowingFeeMarket<DECIMALS> + ?Sized,
impl<M, const DECIMALS: u8> BorrowingFeeMarketExt<DECIMALS> for Mwhere
M: BorrowingFeeMarket<DECIMALS> + ?Sized,
Source§fn cumulative_borrowing_factor(&self, is_long: bool) -> Result<Self::Num, Error>
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>
fn borrowing_factor_per_second( &self, is_long: bool, prices: &Prices<Self::Num>, ) -> Result<Self::Num, Error>
Get borrowing factor per second.
Source§impl<M, const DECIMALS: u8> BorrowingFeeMarketMutExt<DECIMALS> for Mwhere
M: BorrowingFeeMarketMut<DECIMALS> + ?Sized,
impl<M, const DECIMALS: u8> BorrowingFeeMarketMutExt<DECIMALS> for Mwhere
M: BorrowingFeeMarketMut<DECIMALS> + ?Sized,
Source§fn update_borrowing(
&mut self,
prices: &Prices<Self::Num>,
) -> Result<UpdateBorrowingState<&mut Self, DECIMALS>, Error>where
Self: Sized,
fn update_borrowing(
&mut self,
prices: &Prices<Self::Num>,
) -> Result<UpdateBorrowingState<&mut Self, DECIMALS>, Error>where
Self: Sized,
Create a
UpdateBorrowingState
action.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 moreSource§impl<M, const DECIMALS: u8> LiquidityMarketExt<DECIMALS> for Mwhere
M: LiquidityMarket<DECIMALS>,
impl<M, const DECIMALS: u8> LiquidityMarketExt<DECIMALS> for Mwhere
M: LiquidityMarket<DECIMALS>,
Source§fn validate_pool_value_for_deposit(
&self,
prices: &Prices<Self::Num>,
is_long_token: bool,
) -> Result<(), Error>
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>
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>
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> LiquidityMarketMutExt<DECIMALS> for Mwhere
M: LiquidityMarketMut<DECIMALS>,
impl<M, const DECIMALS: u8> LiquidityMarketMutExt<DECIMALS> for Mwhere
M: LiquidityMarketMut<DECIMALS>,
Source§impl<M, const DECIMALS: u8> PositionImpactMarketExt<DECIMALS> for Mwhere
M: PositionImpactMarket<DECIMALS> + ?Sized,
impl<M, const DECIMALS: u8> PositionImpactMarketExt<DECIMALS> for Mwhere
M: PositionImpactMarket<DECIMALS> + ?Sized,
Source§impl<M, const DECIMALS: u8> PositionImpactMarketMutExt<DECIMALS> for Mwhere
M: PositionImpactMarketMut<DECIMALS> + ?Sized,
impl<M, const DECIMALS: u8> PositionImpactMarketMutExt<DECIMALS> for Mwhere
M: PositionImpactMarketMut<DECIMALS> + ?Sized,
Source§fn apply_delta_to_position_impact_pool(
&mut self,
delta: &Self::Signed,
) -> Result<(), Error>
fn apply_delta_to_position_impact_pool( &mut self, delta: &Self::Signed, ) -> Result<(), Error>
Apply delta to the position impact pool.
Source§fn distribute_position_impact(
&mut self,
) -> Result<DistributePositionImpact<&mut Self, DECIMALS>, Error>where
Self: Sized,
fn distribute_position_impact(
&mut self,
) -> Result<DistributePositionImpact<&mut Self, DECIMALS>, Error>where
Self: Sized,
Create a
DistributePositionImpact
action.