pub struct MarketModel { /* private fields */ }Expand description
Market Model.
Implementations§
Source§impl MarketModel
impl MarketModel
Sourcepub fn from_parts(market: Arc<Market>, supply: u64) -> MarketModel
pub fn from_parts(market: Arc<Market>, supply: u64) -> MarketModel
Create from parts.
Sourcepub fn passed_in_seconds_for_funding(&self) -> Result<u64, Error>
pub fn passed_in_seconds_for_funding(&self) -> Result<u64, Error>
Returns the time in seconds since last funding fee state update.
Sourcepub fn into_empty_position(
self,
is_long: bool,
collateral_token: Pubkey,
) -> Result<PositionModel, Error>
pub fn into_empty_position( self, is_long: bool, collateral_token: Pubkey, ) -> Result<PositionModel, Error>
Convert into an empty position model.
§Notes
- All position parameters unrelated to the model,
such as
ownerandbump, use zeroed values.
Sourcepub fn into_empty_position_opts(
self,
is_long: bool,
collateral_token: Pubkey,
options: PositionOptions,
) -> Result<PositionModel, Error>
pub fn into_empty_position_opts( self, is_long: bool, collateral_token: Pubkey, options: PositionOptions, ) -> Result<PositionModel, Error>
Convert into an empty position model with options.
Trait Implementations§
Source§impl Bank<Pubkey> for MarketModel
impl Bank<Pubkey> for MarketModel
Source§fn record_transferred_in_by_token<Q>(
&mut self,
token: &Q,
amount: &<MarketModel as Bank<Pubkey>>::Num,
) -> Result<(), Error>
fn record_transferred_in_by_token<Q>( &mut self, token: &Q, amount: &<MarketModel as Bank<Pubkey>>::Num, ) -> Result<(), Error>
Record transferred in amount by token.
Source§fn record_transferred_out_by_token<Q>(
&mut self,
token: &Q,
amount: &<MarketModel as Bank<Pubkey>>::Num,
) -> Result<(), Error>
fn record_transferred_out_by_token<Q>( &mut self, token: &Q, amount: &<MarketModel as Bank<Pubkey>>::Num, ) -> Result<(), Error>
Record transferred out amount by token.
Source§impl BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}> for MarketModel
impl BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}> for MarketModel
Source§fn liquidity_pool(
&self,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
fn liquidity_pool( &self, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
Get the liquidity pool.
Source§fn claimable_fee_pool(
&self,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
fn claimable_fee_pool( &self, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
Get the claimable fee pool.
Source§fn swap_impact_pool(
&self,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
fn swap_impact_pool( &self, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
Get the swap impact pool.
Source§fn open_interest_pool(
&self,
is_long: bool,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
fn open_interest_pool( &self, is_long: bool, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
Get the open interest pool.
Source§fn open_interest_in_tokens_pool(
&self,
is_long: bool,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
fn open_interest_in_tokens_pool( &self, is_long: bool, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
Get the open interest in (index) tokens pool.
Source§fn collateral_sum_pool(
&self,
is_long: bool,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
fn collateral_sum_pool( &self, is_long: bool, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool, Error>
Get collateral sum pool.
Source§fn virtual_inventory_for_swaps_pool(
&self,
) -> Result<Option<impl Deref<Target = <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool>>, Error>
fn virtual_inventory_for_swaps_pool( &self, ) -> Result<Option<impl Deref<Target = <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool>>, Error>
Get virtual inventory for swaps.
Source§fn virtual_inventory_for_positions_pool(
&self,
) -> Result<Option<impl Deref<Target = <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool>>, Error>
fn virtual_inventory_for_positions_pool( &self, ) -> Result<Option<impl Deref<Target = <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Pool>>, Error>
Get virtual inventory for positions.
Source§fn usd_to_amount_divisor(
&self,
) -> <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num
fn usd_to_amount_divisor( &self, ) -> <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num
USD value to market token amount divisor. Read more
Source§fn max_pool_amount(
&self,
is_long_token: bool,
) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
fn max_pool_amount( &self, is_long_token: bool, ) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
Get max pool amount.
Source§fn pnl_factor_config(
&self,
kind: PnlFactorKind,
is_long: bool,
) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
fn pnl_factor_config( &self, kind: PnlFactorKind, is_long: bool, ) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
Get pnl factor config.
Source§fn reserve_factor(
&self,
) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
fn reserve_factor( &self, ) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
Get reserve factor.
Source§fn open_interest_reserve_factor(
&self,
) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
fn open_interest_reserve_factor( &self, ) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
Get open interest reserve factor.
Source§fn max_open_interest(
&self,
is_long: bool,
) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
fn max_open_interest( &self, is_long: bool, ) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#7}::{constant#0}>>::Num, Error>
Get max open interest.
Source§impl BaseMarketMut<gmsol_programs::::model::market::{impl#14}::{constant#0}> for MarketModel
impl BaseMarketMut<gmsol_programs::::model::market::{impl#14}::{constant#0}> for MarketModel
Source§fn liquidity_pool_mut(
&mut self,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#14}::{constant#0}>>::Pool, Error>
fn liquidity_pool_mut( &mut self, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#14}::{constant#0}>>::Pool, Error>
Get the liquidity pool mutably. Read more
Source§fn claimable_fee_pool_mut(
&mut self,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#14}::{constant#0}>>::Pool, Error>
fn claimable_fee_pool_mut( &mut self, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#14}::{constant#0}>>::Pool, Error>
Get the mutable reference of the claimable fee pool. Read more
Source§impl BorrowingFeeMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}> for MarketModel
impl BorrowingFeeMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}> for MarketModel
Source§fn borrowing_factor_pool(
&self,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}>>::Pool, Error>
fn borrowing_factor_pool( &self, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}>>::Pool, Error>
Get borrowing factor pool.
Source§fn total_borrowing_pool(
&self,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}>>::Pool, Error>
fn total_borrowing_pool( &self, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}>>::Pool, Error>
Get total borrowing pool.
Source§fn borrowing_fee_params(
&self,
) -> Result<BorrowingFeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}>>::Num>, Error>
fn borrowing_fee_params( &self, ) -> Result<BorrowingFeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}>>::Num>, Error>
Get borrowing fee params.
Source§fn passed_in_seconds_for_borrowing(&self) -> Result<u64, Error>
fn passed_in_seconds_for_borrowing(&self) -> Result<u64, Error>
Get the passed time in seconds for the given kind of clock.
Source§fn borrowing_fee_kink_model_params(
&self,
) -> Result<BorrowingFeeKinkModelParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}>>::Num>, Error>
fn borrowing_fee_kink_model_params( &self, ) -> Result<BorrowingFeeKinkModelParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#10}::{constant#0}>>::Num>, Error>
Get borrowing fee kink model params.
Source§impl Clone for MarketModel
impl Clone for MarketModel
Source§fn clone(&self) -> MarketModel
fn clone(&self) -> MarketModel
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MarketModel
impl Debug for MarketModel
Source§impl Deref for MarketModel
impl Deref for MarketModel
Source§impl From<MarketModel> for JsMarketModel
Available on crate feature js only.
impl From<MarketModel> for JsMarketModel
Available on crate feature
js only.Source§fn from(model: MarketModel) -> Self
fn from(model: MarketModel) -> Self
Converts to this type from the input type.
Source§impl LiquidityMarket<gmsol_programs::::model::market::{impl#12}::{constant#0}> for MarketModel
impl LiquidityMarket<gmsol_programs::::model::market::{impl#12}::{constant#0}> for MarketModel
Source§fn total_supply(
&self,
) -> <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#12}::{constant#0}>>::Num
fn total_supply( &self, ) -> <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#12}::{constant#0}>>::Num
Get total supply of the market token.
Source§fn max_pool_value_for_deposit(
&self,
is_long_token: bool,
) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#12}::{constant#0}>>::Num, Error>
fn max_pool_value_for_deposit( &self, is_long_token: bool, ) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#12}::{constant#0}>>::Num, Error>
Get max pool value for deposit.
Source§impl LiquidityMarketMut<gmsol_programs::::model::market::{impl#18}::{constant#0}> for MarketModel
impl LiquidityMarketMut<gmsol_programs::::model::market::{impl#18}::{constant#0}> for MarketModel
Source§fn mint(
&mut self,
amount: &<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#18}::{constant#0}>>::Num,
) -> Result<(), Error>
fn mint( &mut self, amount: &<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#18}::{constant#0}>>::Num, ) -> Result<(), Error>
Perform mint.
Source§fn burn(
&mut self,
amount: &<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#18}::{constant#0}>>::Num,
) -> Result<(), Error>
fn burn( &mut self, amount: &<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#18}::{constant#0}>>::Num, ) -> Result<(), Error>
Perform burn.
Source§impl MarketCalculations for MarketModel
impl MarketCalculations for MarketModel
Source§impl PerpMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}> for MarketModel
impl PerpMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}> for MarketModel
Source§fn funding_factor_per_second(
&self,
) -> &<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Signed
fn funding_factor_per_second( &self, ) -> &<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Signed
Get funding factor per second.
Source§fn funding_amount_per_size_pool(
&self,
is_long: bool,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Pool, Error>
fn funding_amount_per_size_pool( &self, is_long: bool, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Pool, Error>
Get funding amount per size pool.
Source§fn claimable_funding_amount_per_size_pool(
&self,
is_long: bool,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Pool, Error>
fn claimable_funding_amount_per_size_pool( &self, is_long: bool, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Pool, Error>
Get claimable funding amount per size pool.
Source§fn funding_amount_per_size_adjustment(
&self,
) -> <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num
fn funding_amount_per_size_adjustment( &self, ) -> <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num
Adjustment factor for packing funding amount per size.
Source§fn funding_fee_params(
&self,
) -> Result<FundingFeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num>, Error>
fn funding_fee_params( &self, ) -> Result<FundingFeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num>, Error>
Get funding fee params.
Source§fn position_params(
&self,
) -> Result<PositionParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num>, Error>
fn position_params( &self, ) -> Result<PositionParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num>, Error>
Get basic position params.
Source§fn order_fee_params(
&self,
) -> Result<FeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num>, Error>
fn order_fee_params( &self, ) -> Result<FeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num>, Error>
Get the order fee params.
Source§fn min_collateral_factor_for_open_interest_multiplier(
&self,
is_long: bool,
) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num, Error>
fn min_collateral_factor_for_open_interest_multiplier( &self, is_long: bool, ) -> Result<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num, Error>
Get min collateral factor for open interest multiplier.
Source§fn liquidation_fee_params(
&self,
) -> Result<LiquidationFeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num>, Error>
fn liquidation_fee_params( &self, ) -> Result<LiquidationFeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#11}::{constant#0}>>::Num>, Error>
Get liquidation fee params.
Source§impl PerpMarketMut<gmsol_programs::::model::market::{impl#17}::{constant#0}> for MarketModel
impl PerpMarketMut<gmsol_programs::::model::market::{impl#17}::{constant#0}> for MarketModel
Source§fn just_passed_in_seconds_for_funding(&mut self) -> Result<u64, Error>
fn just_passed_in_seconds_for_funding(&mut self) -> Result<u64, Error>
Get the just passed time in seconds for the given kind of clock.
Source§fn funding_factor_per_second_mut(
&mut self,
) -> &mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Signed
fn funding_factor_per_second_mut( &mut self, ) -> &mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Signed
Get funding factor per second mutably.
Source§fn open_interest_pool_mut(
&mut self,
is_long: bool,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
fn open_interest_pool_mut( &mut self, is_long: bool, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
Get mutable reference of open interest pool. Read more
Source§fn open_interest_in_tokens_pool_mut(
&mut self,
is_long: bool,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
fn open_interest_in_tokens_pool_mut( &mut self, is_long: bool, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
Get mutable reference of open interest pool. Read more
Source§fn funding_amount_per_size_pool_mut(
&mut self,
is_long: bool,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
fn funding_amount_per_size_pool_mut( &mut self, is_long: bool, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
Get funding amount per size pool mutably. Read more
Source§fn claimable_funding_amount_per_size_pool_mut(
&mut self,
is_long: bool,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
fn claimable_funding_amount_per_size_pool_mut( &mut self, is_long: bool, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
Get claimable funding amount per size pool mutably. Read more
Source§fn collateral_sum_pool_mut(
&mut self,
is_long: bool,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
fn collateral_sum_pool_mut( &mut self, is_long: bool, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
Get collateral sum pool mutably. Read more
Source§fn total_borrowing_pool_mut(
&mut self,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
fn total_borrowing_pool_mut( &mut self, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#17}::{constant#0}>>::Pool, Error>
Get total borrowing pool mutably. Read more
Source§impl PositionImpactMarket<gmsol_programs::::model::market::{impl#9}::{constant#0}> for MarketModel
impl PositionImpactMarket<gmsol_programs::::model::market::{impl#9}::{constant#0}> for MarketModel
Source§fn position_impact_pool(
&self,
) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#9}::{constant#0}>>::Pool, Error>
fn position_impact_pool( &self, ) -> Result<&<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#9}::{constant#0}>>::Pool, Error>
Get position impact pool.
Source§fn position_impact_params(
&self,
) -> Result<PriceImpactParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#9}::{constant#0}>>::Num>, Error>
fn position_impact_params( &self, ) -> Result<PriceImpactParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#9}::{constant#0}>>::Num>, Error>
Get the position impact params.
Source§fn position_impact_distribution_params(
&self,
) -> Result<PositionImpactDistributionParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#9}::{constant#0}>>::Num>, Error>
fn position_impact_distribution_params( &self, ) -> Result<PositionImpactDistributionParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#9}::{constant#0}>>::Num>, Error>
Get position impact distribution params.
Source§impl PositionImpactMarketMut<gmsol_programs::::model::market::{impl#16}::{constant#0}> for MarketModel
impl PositionImpactMarketMut<gmsol_programs::::model::market::{impl#16}::{constant#0}> for MarketModel
Source§fn position_impact_pool_mut(
&mut self,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#16}::{constant#0}>>::Pool, Error>
fn position_impact_pool_mut( &mut self, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#16}::{constant#0}>>::Pool, Error>
Get position impact pool mutably. Read more
Source§impl SwapMarket<gmsol_programs::::model::market::{impl#8}::{constant#0}> for MarketModel
impl SwapMarket<gmsol_programs::::model::market::{impl#8}::{constant#0}> for MarketModel
Source§fn swap_impact_params(
&self,
) -> Result<PriceImpactParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#8}::{constant#0}>>::Num>, Error>
fn swap_impact_params( &self, ) -> Result<PriceImpactParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#8}::{constant#0}>>::Num>, Error>
Get swap impact params.
Source§fn swap_fee_params(
&self,
) -> Result<FeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#8}::{constant#0}>>::Num>, Error>
fn swap_fee_params( &self, ) -> Result<FeeParams<<MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#8}::{constant#0}>>::Num>, Error>
Get the swap fee params.
Source§impl SwapMarketMut<gmsol_programs::::model::market::{impl#15}::{constant#0}> for MarketModel
impl SwapMarketMut<gmsol_programs::::model::market::{impl#15}::{constant#0}> for MarketModel
Source§fn swap_impact_pool_mut(
&mut self,
) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#15}::{constant#0}>>::Pool, Error>
fn swap_impact_pool_mut( &mut self, ) -> Result<&mut <MarketModel as BaseMarket<gmsol_programs::::model::market::{impl#15}::{constant#0}>>::Pool, Error>
Get the swap impact pool mutably. Read more
Auto Trait Implementations§
impl Freeze for MarketModel
impl RefUnwindSafe for MarketModel
impl Send for MarketModel
impl Sync for MarketModel
impl Unpin for MarketModel
impl UnwindSafe for MarketModel
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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§fn expected_min_token_balance_excluding_collateral_amount_for_one_token_side(
&self,
is_long_side: bool,
) -> Result<Self::Num, Error>
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§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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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_value(
&self,
amount: &Self::Num,
prices: &Prices<Self::Num>,
pnl_factor: PnlFactorKind,
maximize: bool,
) -> Result<Option<MarketTokenValue<Self::Num>>, Error>
fn market_token_value( &self, amount: &Self::Num, prices: &Prices<Self::Num>, pnl_factor: PnlFactorKind, maximize: bool, ) -> Result<Option<MarketTokenValue<Self::Num>>, Error>
Returns the market token value if evaluated, otherwise
None.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> PerpMarketExt<DECIMALS> for Mwhere
M: PerpMarket<DECIMALS>,
impl<M, const DECIMALS: u8> PerpMarketExt<DECIMALS> for Mwhere
M: PerpMarket<DECIMALS>,
Source§fn funding_fee_amount_per_size(
&self,
is_long: bool,
is_long_collateral: bool,
) -> Result<Self::Num, Error>
fn funding_fee_amount_per_size( &self, is_long: bool, is_long_collateral: bool, ) -> Result<Self::Num, Error>
Get current funding fee amount per size.
Source§fn claimable_funding_fee_amount_per_size(
&self,
is_long: bool,
is_long_collateral: bool,
) -> Result<Self::Num, Error>
fn claimable_funding_fee_amount_per_size( &self, is_long: bool, is_long_collateral: bool, ) -> Result<Self::Num, Error>
Get current claimable funding fee amount per size.
Source§fn validate_open_interest_reserve(
&self,
prices: &Prices<Self::Num>,
is_long: bool,
) -> Result<(), Error>
fn validate_open_interest_reserve( &self, prices: &Prices<Self::Num>, is_long: bool, ) -> Result<(), Error>
Validate open interest reserve.
Source§fn min_collateral_factor_for_open_interest(
&self,
delta: &Self::Signed,
is_long: bool,
) -> Result<Self::Num, Error>
fn min_collateral_factor_for_open_interest( &self, delta: &Self::Signed, is_long: bool, ) -> Result<Self::Num, Error>
Get min collateral factor for open interest.
Source§impl<M, const DECIMALS: u8> PerpMarketMutExt<DECIMALS> for Mwhere
M: PerpMarketMut<DECIMALS>,
impl<M, const DECIMALS: u8> PerpMarketMutExt<DECIMALS> for Mwhere
M: PerpMarketMut<DECIMALS>,
Source§fn update_funding(
&mut self,
prices: &Prices<Self::Num>,
) -> Result<UpdateFundingState<&mut Self, DECIMALS>, Error>where
Self: Sized,
fn update_funding(
&mut self,
prices: &Prices<Self::Num>,
) -> Result<UpdateFundingState<&mut Self, DECIMALS>, Error>where
Self: Sized,
Create a
UpdateFundingState action.Source§fn apply_delta_to_funding_amount_per_size(
&mut self,
is_long: bool,
is_long_collateral: bool,
delta: &Self::Signed,
) -> Result<(), Error>
fn apply_delta_to_funding_amount_per_size( &mut self, is_long: bool, is_long_collateral: bool, delta: &Self::Signed, ) -> Result<(), Error>
Apply delta to funding amount per size.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
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.Source§impl<M, const DECIMALS: u8> SwapMarketExt<DECIMALS> for Mwhere
M: SwapMarket<DECIMALS> + ?Sized,
impl<M, const DECIMALS: u8> SwapMarketExt<DECIMALS> for Mwhere
M: SwapMarket<DECIMALS> + ?Sized,
Source§fn swap_impact_value(
&self,
liquidity_pool_delta: &PoolDelta<Self::Num>,
include_virtual_inventory_impact: bool,
) -> Result<PriceImpact<Self::Signed>, Error>
fn swap_impact_value( &self, liquidity_pool_delta: &PoolDelta<Self::Num>, include_virtual_inventory_impact: bool, ) -> Result<PriceImpact<Self::Signed>, Error>
Calculate swap price impact.