pub struct LighterExecutionClient { /* private fields */ }Implementations§
Source§impl LighterExecutionClient
impl LighterExecutionClient
Sourcepub fn new(
core: ExecutionClientCore,
config: LighterExecutionClientConfig,
) -> Result<Self>
pub fn new( core: ExecutionClientCore, config: LighterExecutionClientConfig, ) -> 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 configuration or supplied credentials are invalid, or if the HTTP client fails to initialize.
Sourcepub fn config(&self) -> &LighterExecutionClientConfig
pub fn config(&self) -> &LighterExecutionClientConfig
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 retained background task has completed.
Useful in tests to wait for fire-and-forget HTTP work.
Sourcepub async fn cancel_all_orders_account(&self) -> Result<String>
pub async fn cancel_all_orders_account(&self) -> Result<String>
Cancels all open orders across the account’s markets and strategies, including uncached orders.
Does not close positions or change instrument-scoped CancelAllOrders.
§Submission
Returns an accepted transaction hash; venue updates confirm cancellation. Dropping the future does not stop submission, even while rate limited. Shutdown can discard unsent work. Transport, confirmation, or shutdown failures can leave the outcome unknown.
§Errors
Returns an error if:
- Credentials or nonce readiness are unavailable, or signing fails.
- Submission or confirmation fails, including shutdown or venue rejection.
Sourcepub async fn schedule_cancel(&self, time: Option<u64>) -> Result<String>
pub async fn schedule_cancel(&self, time: Option<u64>) -> Result<String>
Arms, replaces, or revokes account-wide scheduled cancellation of open orders.
§Deadline
Some(time) sets or replaces a Unix timestamp in milliseconds, five minutes to fifteen days
ahead of the local clock. Allow headroom for latency, rate limits, and clock skew.
None revokes it. Armed schedules survive disconnect or exit, without automatic renewal.
§Submission
Returns an accepted hash, not proof of arming, replacement, or revocation.
Account scope and submission behavior follow Self::cancel_all_orders_account,
including when the future is dropped.
§Errors
Returns an error if:
- The deadline is outside the supported window.
- Preparation, submission, or confirmation fails.
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,
info: Option<Params>,
) -> Result<()>
fn generate_account_state( &self, balances: Vec<AccountBalance>, margins: Vec<MarginBalance>, reported: bool, ts_event: UnixNanos, info: Option<Params>, ) -> 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_modify_orders(&self, cmd: BatchModifyOrders) -> Result<()>
fn batch_modify_orders(&self, cmd: BatchModifyOrders) -> 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_task(
&self,
cmd: &GenerateOrderStatusReport,
) -> Option<ExecutionReportTask<Option<OrderStatusReport>>>
fn generate_order_status_report_task( &self, cmd: &GenerateOrderStatusReport, ) -> Option<ExecutionReportTask<Option<OrderStatusReport>>>
Source§fn generate_order_status_reports_task(
&self,
cmd: &GenerateOrderStatusReports,
) -> Option<ExecutionReportTask<Vec<OrderStatusReport>>>
fn generate_order_status_reports_task( &self, cmd: &GenerateOrderStatusReports, ) -> Option<ExecutionReportTask<Vec<OrderStatusReport>>>
Source§fn generate_fill_reports_task(
&self,
cmd: &GenerateFillReports,
) -> Option<ExecutionReportTask<Vec<FillReport>>>
fn generate_fill_reports_task( &self, cmd: &GenerateFillReports, ) -> Option<ExecutionReportTask<Vec<FillReport>>>
Source§fn generate_position_status_reports_task(
&self,
cmd: &GeneratePositionStatusReports,
) -> Option<ExecutionReportTask<Vec<PositionStatusReport>>>
fn generate_position_status_reports_task( &self, cmd: &GeneratePositionStatusReports, ) -> Option<ExecutionReportTask<Vec<PositionStatusReport>>>
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 retain_unresolved_submissions(&self) -> bool
fn retain_unresolved_submissions(&self) -> bool
§fn venue_order_ids(
&self,
_mass_status: &ExecutionMassStatus,
) -> Option<IndexMap<ClientOrderId, Vec<VenueOrderId>>>
fn venue_order_ids( &self, _mass_status: &ExecutionMassStatus, ) -> Option<IndexMap<ClientOrderId, Vec<VenueOrderId>>>
§fn position_reconciliation_tolerance(&self) -> Decimal
fn position_reconciliation_tolerance(&self) -> Decimal
§fn allows_reconciliation_overfill(
&self,
_order: &OrderAny,
_report: &FillReport,
) -> bool
fn allows_reconciliation_overfill( &self, _order: &OrderAny, _report: &FillReport, ) -> bool
§fn handles_order_venue(&self, venue: Venue) -> bool
fn handles_order_venue(&self, venue: Venue) -> bool
§fn provides_bulk_position_coverage(&self, _instrument_id: InstrumentId) -> bool
fn provides_bulk_position_coverage(&self, _instrument_id: InstrumentId) -> bool
§fn settles_contract_expirations(&self) -> bool
fn settles_contract_expirations(&self) -> bool
§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)
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> ⓘ
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