Trait ExchangeOps

Source
pub trait ExchangeOps<C> {
Show 28 methods // Required methods fn toggle_feature( &self, store: &Pubkey, domian: DomainDisabledFlag, action: ActionDisabledFlag, enable: bool, ) -> TransactionBuilder<'_, C>; fn claim_fees( &self, store: &Pubkey, market_token: &Pubkey, is_long_token: bool, ) -> ClaimFeesBuilder<'_, C>; fn create_market( &self, store: &Pubkey, name: &str, index_token: &Pubkey, long_token: &Pubkey, short_token: &Pubkey, enable: bool, token_map: Option<&Pubkey>, ) -> impl Future<Output = Result<(TransactionBuilder<'_, C>, Pubkey)>>; fn fund_market( &self, store: &Pubkey, market_token: &Pubkey, source_account: &Pubkey, amount: u64, token: Option<&Pubkey>, ) -> impl Future<Output = Result<TransactionBuilder<'_, C>>>; fn create_deposit( &self, store: &Pubkey, market_token: &Pubkey, ) -> CreateDepositBuilder<'_, C>; fn close_deposit( &self, store: &Pubkey, deposit: &Pubkey, ) -> CloseDepositBuilder<'_, C>; fn execute_deposit( &self, store: &Pubkey, oracle: &Pubkey, deposit: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteDepositBuilder<'_, C>; fn create_withdrawal( &self, store: &Pubkey, market_token: &Pubkey, amount: u64, ) -> CreateWithdrawalBuilder<'_, C>; fn close_withdrawal( &self, store: &Pubkey, withdrawal: &Pubkey, ) -> CloseWithdrawalBuilder<'_, C>; fn execute_withdrawal( &self, store: &Pubkey, oracle: &Pubkey, withdrawal: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteWithdrawalBuilder<'_, C>; fn create_order( &self, store: &Pubkey, market_token: &Pubkey, is_output_token_long: bool, params: OrderParams, ) -> CreateOrderBuilder<'_, C>; fn update_order( &self, store: &Pubkey, market_token: &Pubkey, order: &Pubkey, params: UpdateOrderParams, ) -> Result<TransactionBuilder<'_, C>>; fn execute_order( &self, store: &Pubkey, oracle: &Pubkey, order: &Pubkey, cancel_on_execution_error: bool, ) -> Result<ExecuteOrderBuilder<'_, C>>; fn close_order(&self, order: &Pubkey) -> Result<CloseOrderBuilder<'_, C>>; fn cancel_order_if_no_position( &self, store: &Pubkey, order: &Pubkey, position_hint: Option<&Pubkey>, ) -> impl Future<Output = Result<TransactionBuilder<'_, C>>>; fn liquidate( &self, oracle: &Pubkey, position: &Pubkey, ) -> Result<PositionCutBuilder<'_, C>>; fn auto_deleverage( &self, oracle: &Pubkey, position: &Pubkey, size_delta_usd: u128, ) -> Result<PositionCutBuilder<'_, C>>; fn update_adl( &self, store: &Pubkey, oracle: &Pubkey, market_token: &Pubkey, for_long: bool, for_short: bool, ) -> Result<UpdateAdlBuilder<'_, C>>; fn create_shift( &self, store: &Pubkey, from_market_token: &Pubkey, to_market_token: &Pubkey, amount: u64, ) -> CreateShiftBuilder<'_, C>; fn close_shift(&self, shift: &Pubkey) -> CloseShiftBuilder<'_, C>; fn execute_shift( &self, oracle: &Pubkey, shift: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteShiftBuilder<'_, C>; // Provided methods fn market_increase( &self, store: &Pubkey, market_token: &Pubkey, is_collateral_token_long: bool, initial_collateral_amount: u64, is_long: bool, increment_size_in_usd: u128, ) -> CreateOrderBuilder<'_, C> { ... } fn market_decrease( &self, store: &Pubkey, market_token: &Pubkey, is_collateral_token_long: bool, collateral_withdrawal_amount: u64, is_long: bool, decrement_size_in_usd: u128, ) -> CreateOrderBuilder<'_, C> { ... } fn market_swap<'a, S>( &self, store: &Pubkey, market_token: &Pubkey, is_output_token_long: bool, initial_swap_in_token: &Pubkey, initial_swap_in_token_amount: u64, swap_path: impl IntoIterator<Item = &'a Pubkey>, ) -> CreateOrderBuilder<'_, C> where C: Deref<Target = S> + Clone, S: Signer { ... } fn limit_increase( &self, store: &Pubkey, market_token: &Pubkey, is_long: bool, increment_size_in_usd: u128, price: u128, is_collateral_token_long: bool, initial_collateral_amount: u64, ) -> CreateOrderBuilder<'_, C> { ... } fn limit_decrease( &self, store: &Pubkey, market_token: &Pubkey, is_long: bool, decrement_size_in_usd: u128, price: u128, is_collateral_token_long: bool, collateral_withdrawal_amount: u64, ) -> CreateOrderBuilder<'_, C> { ... } fn stop_loss( &self, store: &Pubkey, market_token: &Pubkey, is_long: bool, decrement_size_in_usd: u128, price: u128, is_collateral_token_long: bool, collateral_withdrawal_amount: u64, ) -> CreateOrderBuilder<'_, C> { ... } fn limit_swap<'a, S>( &self, store: &Pubkey, market_token: &Pubkey, is_output_token_long: bool, min_output_amount: u64, initial_swap_in_token: &Pubkey, initial_swap_in_token_amount: u64, swap_path: impl IntoIterator<Item = &'a Pubkey>, ) -> CreateOrderBuilder<'_, C> where C: Deref<Target = S> + Clone, S: Signer { ... }
}
Expand description

Exchange instructions.

Required Methods§

Source

fn toggle_feature( &self, store: &Pubkey, domian: DomainDisabledFlag, action: ActionDisabledFlag, enable: bool, ) -> TransactionBuilder<'_, C>

Toggle feature.

Source

fn claim_fees( &self, store: &Pubkey, market_token: &Pubkey, is_long_token: bool, ) -> ClaimFeesBuilder<'_, C>

Claim fees.

Source

fn create_market( &self, store: &Pubkey, name: &str, index_token: &Pubkey, long_token: &Pubkey, short_token: &Pubkey, enable: bool, token_map: Option<&Pubkey>, ) -> impl Future<Output = Result<(TransactionBuilder<'_, C>, Pubkey)>>

Create a new market and return its token mint address.

Source

fn fund_market( &self, store: &Pubkey, market_token: &Pubkey, source_account: &Pubkey, amount: u64, token: Option<&Pubkey>, ) -> impl Future<Output = Result<TransactionBuilder<'_, C>>>

Fund the given market.

Source

fn create_deposit( &self, store: &Pubkey, market_token: &Pubkey, ) -> CreateDepositBuilder<'_, C>

Create a deposit.

Source

fn close_deposit( &self, store: &Pubkey, deposit: &Pubkey, ) -> CloseDepositBuilder<'_, C>

Cancel a deposit.

Source

fn execute_deposit( &self, store: &Pubkey, oracle: &Pubkey, deposit: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteDepositBuilder<'_, C>

Execute a deposit.

Source

fn create_withdrawal( &self, store: &Pubkey, market_token: &Pubkey, amount: u64, ) -> CreateWithdrawalBuilder<'_, C>

Create a withdrawal.

Source

fn close_withdrawal( &self, store: &Pubkey, withdrawal: &Pubkey, ) -> CloseWithdrawalBuilder<'_, C>

Close a withdrawal.

Source

fn execute_withdrawal( &self, store: &Pubkey, oracle: &Pubkey, withdrawal: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteWithdrawalBuilder<'_, C>

Execute a withdrawal.

Source

fn create_order( &self, store: &Pubkey, market_token: &Pubkey, is_output_token_long: bool, params: OrderParams, ) -> CreateOrderBuilder<'_, C>

Create an order.

Source

fn update_order( &self, store: &Pubkey, market_token: &Pubkey, order: &Pubkey, params: UpdateOrderParams, ) -> Result<TransactionBuilder<'_, C>>

Update an order.

Source

fn execute_order( &self, store: &Pubkey, oracle: &Pubkey, order: &Pubkey, cancel_on_execution_error: bool, ) -> Result<ExecuteOrderBuilder<'_, C>>

Execute an order.

Source

fn close_order(&self, order: &Pubkey) -> Result<CloseOrderBuilder<'_, C>>

Close an order.

Source

fn cancel_order_if_no_position( &self, store: &Pubkey, order: &Pubkey, position_hint: Option<&Pubkey>, ) -> impl Future<Output = Result<TransactionBuilder<'_, C>>>

Cancel order if the position does not exist.

Source

fn liquidate( &self, oracle: &Pubkey, position: &Pubkey, ) -> Result<PositionCutBuilder<'_, C>>

Liquidate a position.

Source

fn auto_deleverage( &self, oracle: &Pubkey, position: &Pubkey, size_delta_usd: u128, ) -> Result<PositionCutBuilder<'_, C>>

Auto-deleverage a position.

Source

fn update_adl( &self, store: &Pubkey, oracle: &Pubkey, market_token: &Pubkey, for_long: bool, for_short: bool, ) -> Result<UpdateAdlBuilder<'_, C>>

Update ADL state.

Source

fn create_shift( &self, store: &Pubkey, from_market_token: &Pubkey, to_market_token: &Pubkey, amount: u64, ) -> CreateShiftBuilder<'_, C>

Create shift.

Source

fn close_shift(&self, shift: &Pubkey) -> CloseShiftBuilder<'_, C>

Close shift.

Source

fn execute_shift( &self, oracle: &Pubkey, shift: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteShiftBuilder<'_, C>

Execute shift.

Provided Methods§

Source

fn market_increase( &self, store: &Pubkey, market_token: &Pubkey, is_collateral_token_long: bool, initial_collateral_amount: u64, is_long: bool, increment_size_in_usd: u128, ) -> CreateOrderBuilder<'_, C>

Create a market increase position order.

Source

fn market_decrease( &self, store: &Pubkey, market_token: &Pubkey, is_collateral_token_long: bool, collateral_withdrawal_amount: u64, is_long: bool, decrement_size_in_usd: u128, ) -> CreateOrderBuilder<'_, C>

Create a market decrease position order.

Source

fn market_swap<'a, S>( &self, store: &Pubkey, market_token: &Pubkey, is_output_token_long: bool, initial_swap_in_token: &Pubkey, initial_swap_in_token_amount: u64, swap_path: impl IntoIterator<Item = &'a Pubkey>, ) -> CreateOrderBuilder<'_, C>
where C: Deref<Target = S> + Clone, S: Signer,

Create a market swap order.

Source

fn limit_increase( &self, store: &Pubkey, market_token: &Pubkey, is_long: bool, increment_size_in_usd: u128, price: u128, is_collateral_token_long: bool, initial_collateral_amount: u64, ) -> CreateOrderBuilder<'_, C>

Create a limit increase order.

Source

fn limit_decrease( &self, store: &Pubkey, market_token: &Pubkey, is_long: bool, decrement_size_in_usd: u128, price: u128, is_collateral_token_long: bool, collateral_withdrawal_amount: u64, ) -> CreateOrderBuilder<'_, C>

Create a limit decrease order.

Source

fn stop_loss( &self, store: &Pubkey, market_token: &Pubkey, is_long: bool, decrement_size_in_usd: u128, price: u128, is_collateral_token_long: bool, collateral_withdrawal_amount: u64, ) -> CreateOrderBuilder<'_, C>

Create a stop-loss decrease order.

Source

fn limit_swap<'a, S>( &self, store: &Pubkey, market_token: &Pubkey, is_output_token_long: bool, min_output_amount: u64, initial_swap_in_token: &Pubkey, initial_swap_in_token_amount: u64, swap_path: impl IntoIterator<Item = &'a Pubkey>, ) -> CreateOrderBuilder<'_, C>
where C: Deref<Target = S> + Clone, S: Signer,

Create a limit swap order.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<S, C> ExchangeOps<C> for Client<C>
where C: Deref<Target = S> + Clone, S: Signer,