pub struct LighterExecutionClient { /* private fields */ }Implementations§
Source§impl LighterExecutionClient
impl LighterExecutionClient
Sourcepub fn new(
core: ExecutionClientCore,
config: LighterExecClientConfig,
) -> Result<Self>
pub fn new( core: ExecutionClientCore, config: LighterExecClientConfig, ) -> Result<Self>
Creates a new LighterExecutionClient instance.
Resolves credentials from config or the matching environment
variables (see crate::common::credential). Missing credentials
degrade to an unauthenticated client that can bootstrap instruments
but cannot submit transactions; the constructor returns an error if
supplied values are malformed.
§Errors
Returns an error if the HTTP client fails to initialize or if any supplied credential value cannot be parsed.
Sourcepub fn config(&self) -> &LighterExecClientConfig
pub fn config(&self) -> &LighterExecClientConfig
Returns a reference to the configuration.
Sourcepub fn has_credentials(&self) -> bool
pub fn has_credentials(&self) -> bool
Returns true when the client holds resolved Lighter credentials.
Sourcepub fn pending_tasks_all_finished(&self) -> bool
pub fn pending_tasks_all_finished(&self) -> bool
Returns true when every background task spawned by this client has
completed. Useful in tests to wait for fire-and-forget HTTP work.
§Panics
Panics if the internal mutex is poisoned, which can only occur if a task holding the lock previously panicked.
Sourcepub fn update_leverage(
&self,
instrument_id: InstrumentId,
initial_margin_fraction: u16,
margin_mode: LighterPositionMarginMode,
) -> Result<()>
pub fn update_leverage( &self, instrument_id: InstrumentId, initial_margin_fraction: u16, margin_mode: LighterPositionMarginMode, ) -> Result<()>
Submit Lighter’s native UpdateLeverage tx (tx_type = 20).
Changes the initial margin fraction and the position margin mode for
the given market. initial_margin_fraction is in venue ticks
(1e-4 fraction): 500 = 5% initial margin = 20x leverage,
1000 = 10% = 10x, etc. Valid range is 1..=10_000
(the upstream MarginFractionTick cap).
Nautilus does not expose a set_leverage command on the execution
trait, so this method is callable directly from strategy or bootstrap
code.
§Errors
Returns an error if credentials are missing, the instrument is not
registered, initial_margin_fraction is outside 1..=10_000, or
the dispatch pre-flight (nonce allocation, signing) fails. Transport
errors after dispatch are logged but not returned synchronously.
Trait Implementations§
Source§impl Debug for LighterExecutionClient
impl Debug for LighterExecutionClient
Source§impl ExecutionClient for LighterExecutionClient
impl ExecutionClient for LighterExecutionClient
fn is_connected(&self) -> bool
fn client_id(&self) -> ClientId
fn account_id(&self) -> AccountId
fn venue(&self) -> Venue
fn oms_type(&self) -> OmsType
fn get_account(&self) -> Option<AccountAny>
Source§fn generate_account_state(
&self,
balances: Vec<AccountBalance>,
margins: Vec<MarginBalance>,
reported: bool,
ts_event: UnixNanos,
) -> Result<()>
fn generate_account_state( &self, balances: Vec<AccountBalance>, margins: Vec<MarginBalance>, reported: bool, ts_event: UnixNanos, ) -> Result<()>
Source§fn connect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn connect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn disconnect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn disconnect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn submit_order(&self, cmd: SubmitOrder) -> Result<()>
fn submit_order(&self, cmd: SubmitOrder) -> Result<()>
Source§fn submit_order_list(&self, cmd: SubmitOrderList) -> Result<()>
fn submit_order_list(&self, cmd: SubmitOrderList) -> Result<()>
Source§fn batch_cancel_orders(&self, cmd: BatchCancelOrders) -> Result<()>
fn batch_cancel_orders(&self, cmd: BatchCancelOrders) -> Result<()>
Source§fn query_account(&self, _cmd: QueryAccount) -> Result<()>
fn query_account(&self, _cmd: QueryAccount) -> Result<()>
Source§fn query_order(&self, cmd: QueryOrder) -> Result<()>
fn query_order(&self, cmd: QueryOrder) -> Result<()>
Source§fn generate_order_status_report<'life0, 'life1, 'async_trait>(
&'life0 self,
cmd: &'life1 GenerateOrderStatusReport,
) -> Pin<Box<dyn Future<Output = Result<Option<OrderStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn generate_order_status_report<'life0, 'life1, 'async_trait>(
&'life0 self,
cmd: &'life1 GenerateOrderStatusReport,
) -> Pin<Box<dyn Future<Output = Result<Option<OrderStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn generate_order_status_reports<'life0, 'life1, 'async_trait>(
&'life0 self,
cmd: &'life1 GenerateOrderStatusReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<OrderStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn generate_order_status_reports<'life0, 'life1, 'async_trait>(
&'life0 self,
cmd: &'life1 GenerateOrderStatusReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<OrderStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn generate_fill_reports<'life0, 'async_trait>(
&'life0 self,
cmd: GenerateFillReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<FillReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn generate_fill_reports<'life0, 'async_trait>(
&'life0 self,
cmd: GenerateFillReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<FillReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn generate_position_status_reports<'life0, 'life1, 'async_trait>(
&'life0 self,
cmd: &'life1 GeneratePositionStatusReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<PositionStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn generate_position_status_reports<'life0, 'life1, 'async_trait>(
&'life0 self,
cmd: &'life1 GeneratePositionStatusReports,
) -> Pin<Box<dyn Future<Output = Result<Vec<PositionStatusReport>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn generate_mass_status<'life0, 'async_trait>(
&'life0 self,
lookback_mins: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<Option<ExecutionMassStatus>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn generate_mass_status<'life0, 'async_trait>(
&'life0 self,
lookback_mins: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<Option<ExecutionMassStatus>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
§fn handles_order_venue(&self, venue: Venue) -> bool
fn handles_order_venue(&self, venue: Venue) -> bool
§fn reset(&mut self) -> Result<(), Error>
fn reset(&mut self) -> Result<(), Error>
§fn batch_modify_orders(&self, cmd: BatchModifyOrders) -> Result<(), Error>
fn batch_modify_orders(&self, cmd: BatchModifyOrders) -> Result<(), Error>
§fn register_external_order(
&self,
_client_order_id: ClientOrderId,
_venue_order_id: VenueOrderId,
_instrument_id: InstrumentId,
_strategy_id: StrategyId,
_ts_init: UnixNanos,
)
fn register_external_order( &self, _client_order_id: ClientOrderId, _venue_order_id: VenueOrderId, _instrument_id: InstrumentId, _strategy_id: StrategyId, _ts_init: UnixNanos, )
§fn on_instrument(&mut self, _instrument: InstrumentAny)
fn on_instrument(&mut self, _instrument: InstrumentAny)
§fn calculate_commission(
&self,
instrument: &InstrumentAny,
last_qty: Quantity,
last_px: Price,
liquidity_side: LiquiditySide,
) -> Option<Money>
fn calculate_commission( &self, instrument: &InstrumentAny, last_qty: Quantity, last_px: Price, liquidity_side: LiquiditySide, ) -> Option<Money>
Auto Trait Implementations§
impl !Freeze for LighterExecutionClient
impl !RefUnwindSafe for LighterExecutionClient
impl !Send for LighterExecutionClient
impl !Sync for LighterExecutionClient
impl !UnwindSafe for LighterExecutionClient
impl Unpin for LighterExecutionClient
impl UnsafeUnpin for LighterExecutionClient
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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