pub struct DexExtended {Show 19 fields
pub dex: SharedDex,
pub parse_pool_created_event_hypersync_fn: Option<fn(HypersyncLog) -> Result<PoolCreatedEvent>>,
pub parse_initialize_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<InitializeEvent>>,
pub parse_swap_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<SwapEvent>>,
pub parse_mint_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<MintEvent>>,
pub parse_burn_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<BurnEvent>>,
pub parse_collect_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<CollectEvent>>,
pub parse_flash_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<FlashEvent>>,
pub parse_fee_protocol_update_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<FeeProtocolUpdateEvent>>,
pub parse_fee_protocol_collect_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<FeeProtocolCollectEvent>>,
pub parse_pool_created_event_rpc_fn: Option<fn(&RpcLog) -> Result<PoolCreatedEvent>>,
pub parse_initialize_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<InitializeEvent>>,
pub parse_swap_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<SwapEvent>>,
pub parse_mint_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<MintEvent>>,
pub parse_burn_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<BurnEvent>>,
pub parse_collect_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<CollectEvent>>,
pub parse_flash_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<FlashEvent>>,
pub parse_fee_protocol_update_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<FeeProtocolUpdateEvent>>,
pub parse_fee_protocol_collect_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<FeeProtocolCollectEvent>>,
}Expand description
Extended DEX wrapper that adds provider-specific event parsing capabilities to the domain Dex model.
Fields§
§dex: SharedDexThe core domain Dex object being extended.
parse_pool_created_event_hypersync_fn: Option<fn(HypersyncLog) -> Result<PoolCreatedEvent>>Function to parse pool creation events from HyperSync logs.
parse_initialize_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<InitializeEvent>>Function to parse initialize events from HyperSync logs.
parse_swap_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<SwapEvent>>Function to parse swap events from HyperSync logs.
parse_mint_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<MintEvent>>Function to parse mint events from HyperSync logs.
parse_burn_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<BurnEvent>>Function to parse burn events from HyperSync logs.
parse_collect_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<CollectEvent>>Function to parse collect events from HyperSync logs.
parse_flash_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<FlashEvent>>Function to parse flash events from HyperSync logs.
parse_fee_protocol_update_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<FeeProtocolUpdateEvent>>Function to parse SetFeeProtocol events from HyperSync logs.
parse_fee_protocol_collect_event_hypersync_fn: Option<fn(SharedDex, &HypersyncLog) -> Result<FeeProtocolCollectEvent>>Function to parse CollectProtocol events from HyperSync logs.
parse_pool_created_event_rpc_fn: Option<fn(&RpcLog) -> Result<PoolCreatedEvent>>Function to parse pool creation events from RPC logs.
parse_initialize_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<InitializeEvent>>Function to parse initialize events from RPC logs.
parse_swap_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<SwapEvent>>Function to parse swap events from RPC logs.
parse_mint_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<MintEvent>>Function to parse mint events from RPC logs.
parse_burn_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<BurnEvent>>Function to parse burn events from RPC logs.
parse_collect_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<CollectEvent>>Function to parse collect events from RPC logs.
parse_flash_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<FlashEvent>>Function to parse flash events from RPC logs.
parse_fee_protocol_update_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<FeeProtocolUpdateEvent>>Function to parse SetFeeProtocol events from RPC logs.
parse_fee_protocol_collect_event_rpc_fn: Option<fn(SharedDex, &RpcLog) -> Result<FeeProtocolCollectEvent>>Function to parse CollectProtocol events from RPC logs.
Implementations§
Source§impl DexExtended
impl DexExtended
Sourcepub fn new(dex: Dex) -> Self
pub fn new(dex: Dex) -> Self
Creates a new DexExtended wrapper around a domain Dex object.
Sourcepub fn set_pool_created_event_hypersync_parsing(
&mut self,
parse_fn: fn(HypersyncLog) -> Result<PoolCreatedEvent>,
)
pub fn set_pool_created_event_hypersync_parsing( &mut self, parse_fn: fn(HypersyncLog) -> Result<PoolCreatedEvent>, )
Sets the function used to parse pool creation events from HyperSync logs.
Sourcepub fn set_initialize_event_hypersync_parsing(
&mut self,
parse_fn: fn(SharedDex, &HypersyncLog) -> Result<InitializeEvent>,
)
pub fn set_initialize_event_hypersync_parsing( &mut self, parse_fn: fn(SharedDex, &HypersyncLog) -> Result<InitializeEvent>, )
Sets the function used to parse initialize events from HyperSync logs.
Sourcepub fn set_swap_event_hypersync_parsing(
&mut self,
parse_fn: fn(SharedDex, &HypersyncLog) -> Result<SwapEvent>,
)
pub fn set_swap_event_hypersync_parsing( &mut self, parse_fn: fn(SharedDex, &HypersyncLog) -> Result<SwapEvent>, )
Sets the function used to parse swap events from HyperSync logs.
Sourcepub fn set_mint_event_hypersync_parsing(
&mut self,
parse_fn: fn(SharedDex, &HypersyncLog) -> Result<MintEvent>,
)
pub fn set_mint_event_hypersync_parsing( &mut self, parse_fn: fn(SharedDex, &HypersyncLog) -> Result<MintEvent>, )
Sets the function used to parse mint events from HyperSync logs.
Sourcepub fn set_burn_event_hypersync_parsing(
&mut self,
parse_fn: fn(SharedDex, &HypersyncLog) -> Result<BurnEvent>,
)
pub fn set_burn_event_hypersync_parsing( &mut self, parse_fn: fn(SharedDex, &HypersyncLog) -> Result<BurnEvent>, )
Sets the function used to parse burn events from HyperSync logs.
Sourcepub fn set_collect_event_hypersync_parsing(
&mut self,
parse_fn: fn(SharedDex, &HypersyncLog) -> Result<CollectEvent>,
)
pub fn set_collect_event_hypersync_parsing( &mut self, parse_fn: fn(SharedDex, &HypersyncLog) -> Result<CollectEvent>, )
Sets the function used to parse collect events from HyperSync logs.
Sourcepub fn set_flash_event_hypersync_parsing(
&mut self,
parse_fn: fn(SharedDex, &HypersyncLog) -> Result<FlashEvent>,
)
pub fn set_flash_event_hypersync_parsing( &mut self, parse_fn: fn(SharedDex, &HypersyncLog) -> Result<FlashEvent>, )
Sets the function used to parse flash events from HyperSync logs.
Sourcepub fn set_fee_protocol_update_event_hypersync_parsing(
&mut self,
parse_fn: fn(SharedDex, &HypersyncLog) -> Result<FeeProtocolUpdateEvent>,
)
pub fn set_fee_protocol_update_event_hypersync_parsing( &mut self, parse_fn: fn(SharedDex, &HypersyncLog) -> Result<FeeProtocolUpdateEvent>, )
Sets the function used to parse SetFeeProtocol events from HyperSync logs.
Sourcepub fn set_fee_protocol_collect_event_hypersync_parsing(
&mut self,
parse_fn: fn(SharedDex, &HypersyncLog) -> Result<FeeProtocolCollectEvent>,
)
pub fn set_fee_protocol_collect_event_hypersync_parsing( &mut self, parse_fn: fn(SharedDex, &HypersyncLog) -> Result<FeeProtocolCollectEvent>, )
Sets the function used to parse CollectProtocol events from HyperSync logs.
Sourcepub fn set_pool_created_event_rpc_parsing(
&mut self,
parse_fn: fn(&RpcLog) -> Result<PoolCreatedEvent>,
)
pub fn set_pool_created_event_rpc_parsing( &mut self, parse_fn: fn(&RpcLog) -> Result<PoolCreatedEvent>, )
Sets the function used to parse pool creation events from RPC logs.
Sourcepub fn set_initialize_event_rpc_parsing(
&mut self,
parse_fn: fn(SharedDex, &RpcLog) -> Result<InitializeEvent>,
)
pub fn set_initialize_event_rpc_parsing( &mut self, parse_fn: fn(SharedDex, &RpcLog) -> Result<InitializeEvent>, )
Sets the function used to parse initialize events from RPC logs.
Sourcepub fn set_swap_event_rpc_parsing(
&mut self,
parse_fn: fn(SharedDex, &RpcLog) -> Result<SwapEvent>,
)
pub fn set_swap_event_rpc_parsing( &mut self, parse_fn: fn(SharedDex, &RpcLog) -> Result<SwapEvent>, )
Sets the function used to parse swap events from RPC logs.
Sourcepub fn set_mint_event_rpc_parsing(
&mut self,
parse_fn: fn(SharedDex, &RpcLog) -> Result<MintEvent>,
)
pub fn set_mint_event_rpc_parsing( &mut self, parse_fn: fn(SharedDex, &RpcLog) -> Result<MintEvent>, )
Sets the function used to parse mint events from RPC logs.
Sourcepub fn set_burn_event_rpc_parsing(
&mut self,
parse_fn: fn(SharedDex, &RpcLog) -> Result<BurnEvent>,
)
pub fn set_burn_event_rpc_parsing( &mut self, parse_fn: fn(SharedDex, &RpcLog) -> Result<BurnEvent>, )
Sets the function used to parse burn events from RPC logs.
Sourcepub fn set_collect_event_rpc_parsing(
&mut self,
parse_fn: fn(SharedDex, &RpcLog) -> Result<CollectEvent>,
)
pub fn set_collect_event_rpc_parsing( &mut self, parse_fn: fn(SharedDex, &RpcLog) -> Result<CollectEvent>, )
Sets the function used to parse collect events from RPC logs.
Sourcepub fn set_flash_event_rpc_parsing(
&mut self,
parse_fn: fn(SharedDex, &RpcLog) -> Result<FlashEvent>,
)
pub fn set_flash_event_rpc_parsing( &mut self, parse_fn: fn(SharedDex, &RpcLog) -> Result<FlashEvent>, )
Sets the function used to parse flash events from RPC logs.
Sourcepub fn set_fee_protocol_update_event_rpc_parsing(
&mut self,
parse_fn: fn(SharedDex, &RpcLog) -> Result<FeeProtocolUpdateEvent>,
)
pub fn set_fee_protocol_update_event_rpc_parsing( &mut self, parse_fn: fn(SharedDex, &RpcLog) -> Result<FeeProtocolUpdateEvent>, )
Sets the function used to parse SetFeeProtocol events from RPC logs.
Sourcepub fn set_fee_protocol_collect_event_rpc_parsing(
&mut self,
parse_fn: fn(SharedDex, &RpcLog) -> Result<FeeProtocolCollectEvent>,
)
pub fn set_fee_protocol_collect_event_rpc_parsing( &mut self, parse_fn: fn(SharedDex, &RpcLog) -> Result<FeeProtocolCollectEvent>, )
Sets the function used to parse CollectProtocol events from RPC logs.
Sourcepub fn parse_pool_created_event_hypersync(
&self,
log: HypersyncLog,
) -> Result<PoolCreatedEvent>
pub fn parse_pool_created_event_hypersync( &self, log: HypersyncLog, ) -> Result<PoolCreatedEvent>
Parses a pool creation event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync pool creation event parser defined or if parsing fails.
Sourcepub fn parse_swap_event_hypersync(
&self,
log: &HypersyncLog,
) -> Result<SwapEvent>
pub fn parse_swap_event_hypersync( &self, log: &HypersyncLog, ) -> Result<SwapEvent>
Parses a swap event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync swap event parser defined or if parsing fails.
Sourcepub fn parse_mint_event_hypersync(
&self,
log: &HypersyncLog,
) -> Result<MintEvent>
pub fn parse_mint_event_hypersync( &self, log: &HypersyncLog, ) -> Result<MintEvent>
Parses a mint event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync mint event parser defined or if parsing fails.
Sourcepub fn parse_burn_event_hypersync(
&self,
log: &HypersyncLog,
) -> Result<BurnEvent>
pub fn parse_burn_event_hypersync( &self, log: &HypersyncLog, ) -> Result<BurnEvent>
Parses a burn event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync burn event parser defined or if parsing fails.
Sourcepub fn parse_initialize_event_hypersync(
&self,
log: &HypersyncLog,
) -> Result<InitializeEvent>
pub fn parse_initialize_event_hypersync( &self, log: &HypersyncLog, ) -> Result<InitializeEvent>
Parses an initialize event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync initialize event parser defined or if parsing fails.
Sourcepub fn parse_collect_event_hypersync(
&self,
log: &HypersyncLog,
) -> Result<CollectEvent>
pub fn parse_collect_event_hypersync( &self, log: &HypersyncLog, ) -> Result<CollectEvent>
Parses a collect event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync collect event parser defined or if parsing fails.
Sourcepub fn parse_flash_event_hypersync(
&self,
log: &HypersyncLog,
) -> Result<FlashEvent>
pub fn parse_flash_event_hypersync( &self, log: &HypersyncLog, ) -> Result<FlashEvent>
Parses a flash event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync flash event parser defined or if parsing fails.
Sourcepub fn parse_fee_protocol_update_event_hypersync(
&self,
log: &HypersyncLog,
) -> Result<FeeProtocolUpdateEvent>
pub fn parse_fee_protocol_update_event_hypersync( &self, log: &HypersyncLog, ) -> Result<FeeProtocolUpdateEvent>
Parses a SetFeeProtocol event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync SetFeeProtocol event parser defined or if parsing fails.
Sourcepub fn parse_fee_protocol_collect_event_hypersync(
&self,
log: &HypersyncLog,
) -> Result<FeeProtocolCollectEvent>
pub fn parse_fee_protocol_collect_event_hypersync( &self, log: &HypersyncLog, ) -> Result<FeeProtocolCollectEvent>
Parses a CollectProtocol event from a HyperSync log.
§Errors
Returns an error if the DEX does not have a HyperSync CollectProtocol event parser defined or if parsing fails.
Sourcepub fn parse_pool_created_event_rpc(
&self,
log: &RpcLog,
) -> Result<PoolCreatedEvent>
pub fn parse_pool_created_event_rpc( &self, log: &RpcLog, ) -> Result<PoolCreatedEvent>
Parses a pool creation event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC pool creation event parser defined or if parsing fails.
Sourcepub fn parse_swap_event_rpc(&self, log: &RpcLog) -> Result<SwapEvent>
pub fn parse_swap_event_rpc(&self, log: &RpcLog) -> Result<SwapEvent>
Parses a swap event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC swap event parser defined or if parsing fails.
Sourcepub fn parse_mint_event_rpc(&self, log: &RpcLog) -> Result<MintEvent>
pub fn parse_mint_event_rpc(&self, log: &RpcLog) -> Result<MintEvent>
Parses a mint event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC mint event parser defined or if parsing fails.
Sourcepub fn parse_burn_event_rpc(&self, log: &RpcLog) -> Result<BurnEvent>
pub fn parse_burn_event_rpc(&self, log: &RpcLog) -> Result<BurnEvent>
Parses a burn event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC burn event parser defined or if parsing fails.
Sourcepub fn parse_initialize_event_rpc(
&self,
log: &RpcLog,
) -> Result<InitializeEvent>
pub fn parse_initialize_event_rpc( &self, log: &RpcLog, ) -> Result<InitializeEvent>
Parses an initialize event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC initialize event parser defined or if parsing fails.
Sourcepub fn parse_collect_event_rpc(&self, log: &RpcLog) -> Result<CollectEvent>
pub fn parse_collect_event_rpc(&self, log: &RpcLog) -> Result<CollectEvent>
Parses a collect event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC collect event parser defined or if parsing fails.
Sourcepub fn parse_flash_event_rpc(&self, log: &RpcLog) -> Result<FlashEvent>
pub fn parse_flash_event_rpc(&self, log: &RpcLog) -> Result<FlashEvent>
Parses a flash event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC flash event parser defined or if parsing fails.
Sourcepub fn parse_fee_protocol_update_event_rpc(
&self,
log: &RpcLog,
) -> Result<FeeProtocolUpdateEvent>
pub fn parse_fee_protocol_update_event_rpc( &self, log: &RpcLog, ) -> Result<FeeProtocolUpdateEvent>
Parses a SetFeeProtocol event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC SetFeeProtocol event parser defined or if parsing fails.
Sourcepub fn parse_fee_protocol_collect_event_rpc(
&self,
log: &RpcLog,
) -> Result<FeeProtocolCollectEvent>
pub fn parse_fee_protocol_collect_event_rpc( &self, log: &RpcLog, ) -> Result<FeeProtocolCollectEvent>
Parses a CollectProtocol event from an RPC log.
§Errors
Returns an error if the DEX does not have an RPC CollectProtocol event parser defined or if parsing fails.
Sourcepub fn needs_initialization(&self) -> bool
pub fn needs_initialization(&self) -> bool
Checks if this DEX requires pool initialization events.
Sourcepub fn supports_pool_discovery(&self) -> bool
pub fn supports_pool_discovery(&self) -> bool
Returns true if this DEX can discover pools from HyperSync PoolCreated logs.
sync-dex streams PoolCreated logs to populate the pool set, so a DEX without this
parser cannot be synced.
Sourcepub fn missing_pool_analysis_parsers(&self) -> Vec<PoolEventKind>
pub fn missing_pool_analysis_parsers(&self) -> Vec<PoolEventKind>
Returns the pool-event families required to build snapshots that this DEX cannot parse from HyperSync logs.
analyze-pool(s) sync and profile a pool’s swap, liquidity, and fee events and seed the
starting price from Initialize, so a registered DEX missing any of these parsers cannot
produce snapshots. An empty result means analysis can run.
Sourcepub fn supports_fee_protocol_replay(&self) -> bool
pub fn supports_fee_protocol_replay(&self) -> bool
Returns true if replay keeps this DEX’s fee_protocol correct across replayed events.
A snapshot-capable DEX that also parses SetFeeProtocol applies fee-protocol changes during
replay, so LP-versus-protocol fee splitting stays correct. A DEX without the parser still
produces usable snapshots but cannot track later SetFeeProtocol updates.
Trait Implementations§
Source§impl Clone for DexExtended
impl Clone for DexExtended
Source§fn clone(&self) -> DexExtended
fn clone(&self) -> DexExtended
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DexExtended
impl Debug for DexExtended
Auto Trait Implementations§
impl Freeze for DexExtended
impl RefUnwindSafe for DexExtended
impl Send for DexExtended
impl Sync for DexExtended
impl Unpin for DexExtended
impl UnsafeUnpin for DexExtended
impl UnwindSafe for DexExtended
Blanket Implementations§
impl<T> Allocation for T
impl<T> Allocation for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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