use nautilus_core::{Params, UUID4, UnixNanos};
use nautilus_model::{
defi::chain::Blockchain,
identifiers::{ClientId, InstrumentId},
};
#[derive(Debug, Clone)]
pub struct SubscribeBlocks {
pub chain: Blockchain,
pub client_id: Option<ClientId>,
pub command_id: UUID4,
pub ts_init: UnixNanos,
pub params: Option<Params>,
}
impl SubscribeBlocks {
#[must_use]
pub fn new(
chain: Blockchain,
client_id: Option<ClientId>,
command_id: UUID4,
ts_init: UnixNanos,
params: Option<Params>,
) -> Self {
Self {
chain,
client_id,
command_id,
ts_init,
params,
}
}
}
#[derive(Debug, Clone)]
pub struct SubscribePool {
pub instrument_id: InstrumentId,
pub client_id: Option<ClientId>,
pub command_id: UUID4,
pub ts_init: UnixNanos,
pub params: Option<Params>,
}
impl SubscribePool {
#[must_use]
pub fn new(
instrument_id: InstrumentId,
client_id: Option<ClientId>,
command_id: UUID4,
ts_init: UnixNanos,
params: Option<Params>,
) -> Self {
Self {
instrument_id,
client_id,
command_id,
ts_init,
params,
}
}
}
#[derive(Debug, Clone)]
pub struct SubscribePoolSwaps {
pub instrument_id: InstrumentId,
pub client_id: Option<ClientId>,
pub command_id: UUID4,
pub ts_init: UnixNanos,
pub params: Option<Params>,
}
impl SubscribePoolSwaps {
#[must_use]
pub fn new(
instrument_id: InstrumentId,
client_id: Option<ClientId>,
command_id: UUID4,
ts_init: UnixNanos,
params: Option<Params>,
) -> Self {
Self {
instrument_id,
client_id,
command_id,
ts_init,
params,
}
}
}
#[derive(Debug, Clone)]
pub struct SubscribePoolLiquidityUpdates {
pub instrument_id: InstrumentId,
pub client_id: Option<ClientId>,
pub command_id: UUID4,
pub ts_init: UnixNanos,
pub params: Option<Params>,
}
impl SubscribePoolLiquidityUpdates {
#[must_use]
pub fn new(
instrument_id: InstrumentId,
client_id: Option<ClientId>,
command_id: UUID4,
ts_init: UnixNanos,
params: Option<Params>,
) -> Self {
Self {
instrument_id,
client_id,
command_id,
ts_init,
params,
}
}
}
#[derive(Debug, Clone)]
pub struct SubscribePoolFeeCollects {
pub instrument_id: InstrumentId,
pub client_id: Option<ClientId>,
pub command_id: UUID4,
pub ts_init: UnixNanos,
pub params: Option<Params>,
}
impl SubscribePoolFeeCollects {
#[must_use]
pub fn new(
instrument_id: InstrumentId,
client_id: Option<ClientId>,
command_id: UUID4,
ts_init: UnixNanos,
params: Option<Params>,
) -> Self {
Self {
instrument_id,
client_id,
command_id,
ts_init,
params,
}
}
}
#[derive(Debug, Clone)]
pub struct SubscribePoolFlashEvents {
pub instrument_id: InstrumentId,
pub client_id: Option<ClientId>,
pub command_id: UUID4,
pub ts_init: UnixNanos,
pub params: Option<Params>,
}
impl SubscribePoolFlashEvents {
#[must_use]
pub fn new(
instrument_id: InstrumentId,
client_id: Option<ClientId>,
command_id: UUID4,
ts_init: UnixNanos,
params: Option<Params>,
) -> Self {
Self {
instrument_id,
client_id,
command_id,
ts_init,
params,
}
}
}