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§
Sourcefn toggle_feature(
&self,
store: &Pubkey,
domian: DomainDisabledFlag,
action: ActionDisabledFlag,
enable: bool,
) -> TransactionBuilder<'_, C>
fn toggle_feature( &self, store: &Pubkey, domian: DomainDisabledFlag, action: ActionDisabledFlag, enable: bool, ) -> TransactionBuilder<'_, C>
Toggle feature.
Sourcefn claim_fees(
&self,
store: &Pubkey,
market_token: &Pubkey,
is_long_token: bool,
) -> ClaimFeesBuilder<'_, C>
fn claim_fees( &self, store: &Pubkey, market_token: &Pubkey, is_long_token: bool, ) -> ClaimFeesBuilder<'_, C>
Claim fees.
Sourcefn 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 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.
Sourcefn fund_market(
&self,
store: &Pubkey,
market_token: &Pubkey,
source_account: &Pubkey,
amount: u64,
token: Option<&Pubkey>,
) -> impl Future<Output = Result<TransactionBuilder<'_, C>>>
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.
Sourcefn create_deposit(
&self,
store: &Pubkey,
market_token: &Pubkey,
) -> CreateDepositBuilder<'_, C>
fn create_deposit( &self, store: &Pubkey, market_token: &Pubkey, ) -> CreateDepositBuilder<'_, C>
Create a deposit.
Sourcefn close_deposit(
&self,
store: &Pubkey,
deposit: &Pubkey,
) -> CloseDepositBuilder<'_, C>
fn close_deposit( &self, store: &Pubkey, deposit: &Pubkey, ) -> CloseDepositBuilder<'_, C>
Cancel a deposit.
Sourcefn execute_deposit(
&self,
store: &Pubkey,
oracle: &Pubkey,
deposit: &Pubkey,
cancel_on_execution_error: bool,
) -> ExecuteDepositBuilder<'_, C>
fn execute_deposit( &self, store: &Pubkey, oracle: &Pubkey, deposit: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteDepositBuilder<'_, C>
Execute a deposit.
Sourcefn create_withdrawal(
&self,
store: &Pubkey,
market_token: &Pubkey,
amount: u64,
) -> CreateWithdrawalBuilder<'_, C>
fn create_withdrawal( &self, store: &Pubkey, market_token: &Pubkey, amount: u64, ) -> CreateWithdrawalBuilder<'_, C>
Create a withdrawal.
Sourcefn close_withdrawal(
&self,
store: &Pubkey,
withdrawal: &Pubkey,
) -> CloseWithdrawalBuilder<'_, C>
fn close_withdrawal( &self, store: &Pubkey, withdrawal: &Pubkey, ) -> CloseWithdrawalBuilder<'_, C>
Close a withdrawal.
Sourcefn execute_withdrawal(
&self,
store: &Pubkey,
oracle: &Pubkey,
withdrawal: &Pubkey,
cancel_on_execution_error: bool,
) -> ExecuteWithdrawalBuilder<'_, C>
fn execute_withdrawal( &self, store: &Pubkey, oracle: &Pubkey, withdrawal: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteWithdrawalBuilder<'_, C>
Execute a withdrawal.
Sourcefn create_order(
&self,
store: &Pubkey,
market_token: &Pubkey,
is_output_token_long: bool,
params: OrderParams,
) -> CreateOrderBuilder<'_, C>
fn create_order( &self, store: &Pubkey, market_token: &Pubkey, is_output_token_long: bool, params: OrderParams, ) -> CreateOrderBuilder<'_, C>
Create an order.
Sourcefn update_order(
&self,
store: &Pubkey,
market_token: &Pubkey,
order: &Pubkey,
params: UpdateOrderParams,
) -> Result<TransactionBuilder<'_, C>>
fn update_order( &self, store: &Pubkey, market_token: &Pubkey, order: &Pubkey, params: UpdateOrderParams, ) -> Result<TransactionBuilder<'_, C>>
Update an order.
Sourcefn execute_order(
&self,
store: &Pubkey,
oracle: &Pubkey,
order: &Pubkey,
cancel_on_execution_error: bool,
) -> Result<ExecuteOrderBuilder<'_, C>>
fn execute_order( &self, store: &Pubkey, oracle: &Pubkey, order: &Pubkey, cancel_on_execution_error: bool, ) -> Result<ExecuteOrderBuilder<'_, C>>
Execute an order.
Sourcefn close_order(&self, order: &Pubkey) -> Result<CloseOrderBuilder<'_, C>>
fn close_order(&self, order: &Pubkey) -> Result<CloseOrderBuilder<'_, C>>
Close an order.
Sourcefn cancel_order_if_no_position(
&self,
store: &Pubkey,
order: &Pubkey,
position_hint: Option<&Pubkey>,
) -> impl Future<Output = Result<TransactionBuilder<'_, C>>>
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.
Sourcefn liquidate(
&self,
oracle: &Pubkey,
position: &Pubkey,
) -> Result<PositionCutBuilder<'_, C>>
fn liquidate( &self, oracle: &Pubkey, position: &Pubkey, ) -> Result<PositionCutBuilder<'_, C>>
Liquidate a position.
Sourcefn auto_deleverage(
&self,
oracle: &Pubkey,
position: &Pubkey,
size_delta_usd: u128,
) -> Result<PositionCutBuilder<'_, C>>
fn auto_deleverage( &self, oracle: &Pubkey, position: &Pubkey, size_delta_usd: u128, ) -> Result<PositionCutBuilder<'_, C>>
Auto-deleverage a position.
Sourcefn update_adl(
&self,
store: &Pubkey,
oracle: &Pubkey,
market_token: &Pubkey,
for_long: bool,
for_short: bool,
) -> Result<UpdateAdlBuilder<'_, C>>
fn update_adl( &self, store: &Pubkey, oracle: &Pubkey, market_token: &Pubkey, for_long: bool, for_short: bool, ) -> Result<UpdateAdlBuilder<'_, C>>
Update ADL state.
Sourcefn create_shift(
&self,
store: &Pubkey,
from_market_token: &Pubkey,
to_market_token: &Pubkey,
amount: u64,
) -> CreateShiftBuilder<'_, C>
fn create_shift( &self, store: &Pubkey, from_market_token: &Pubkey, to_market_token: &Pubkey, amount: u64, ) -> CreateShiftBuilder<'_, C>
Create shift.
Sourcefn close_shift(&self, shift: &Pubkey) -> CloseShiftBuilder<'_, C>
fn close_shift(&self, shift: &Pubkey) -> CloseShiftBuilder<'_, C>
Close shift.
Sourcefn execute_shift(
&self,
oracle: &Pubkey,
shift: &Pubkey,
cancel_on_execution_error: bool,
) -> ExecuteShiftBuilder<'_, C>
fn execute_shift( &self, oracle: &Pubkey, shift: &Pubkey, cancel_on_execution_error: bool, ) -> ExecuteShiftBuilder<'_, C>
Execute shift.
Provided Methods§
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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>
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>
Create a market swap order.
Sourcefn 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_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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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>
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>
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.