DefiDataSubscriptionManager

Struct DefiDataSubscriptionManager 

Source
pub struct DefiDataSubscriptionManager { /* private fields */ }
Expand description

Manages subscriptions to DeFi protocol events (swaps, mints, burns) across different DEXs.

This manager tracks which pool addresses are subscribed for each event type and maintains the event signature encodings for efficient filtering.

Implementations§

Source§

impl DefiDataSubscriptionManager

Source

pub fn new() -> Self

Creates a new DefiDataSubscriptionManager instance.

Source

pub fn get_subscribed_dex_contract_addresses( &self, dex: &DexType, ) -> Vec<Address>

Gets all unique contract addresses subscribed for any event type for a given DEX.

Source

pub fn get_subscribed_dex_event_signatures(&self, dex: &DexType) -> Vec<String>

Gets all event signatures (keccak256 hashes) registered for a given DEX.

Source

pub fn get_dex_pool_swap_event_signature(&self, dex: &DexType) -> Option<String>

Gets the swap event signature for a specific DEX.

Source

pub fn get_dex_pool_mint_event_signature(&self, dex: &DexType) -> Option<String>

Gets the mint event signature for a specific DEX.

Source

pub fn get_dex_pool_burn_event_signature(&self, dex: &DexType) -> Option<String>

Gets the burn event signature for a specific DEX.

Source

pub fn register_dex_for_subscriptions( &mut self, dex: DexType, swap_event_signature: &str, mint_event_signature: &str, burn_event_signature: &str, )

Registers a DEX with its event signatures for subscription management.

This must be called before subscribing to any events for a DEX. Event signatures can be either raw signatures or pre-encoded keccak256 hashes.

Source

pub fn subscribe_swaps(&mut self, dex: DexType, address: Address)

Subscribes to swap events for a specific pool address on a DEX.

Source

pub fn subscribe_mints(&mut self, dex: DexType, address: Address)

Subscribes to mint events for a specific pool address on a DEX.

Source

pub fn subscribe_burns(&mut self, dex: DexType, address: Address)

Subscribes to burn events for a specific pool address on a DEX.

Source

pub fn unsubscribe_swaps(&mut self, dex: DexType, address: Address)

Unsubscribes from swap events for a specific pool address on a DEX.

Source

pub fn unsubscribe_mints(&mut self, dex: DexType, address: Address)

Unsubscribes from mint events for a specific pool address on a DEX.

Source

pub fn unsubscribe_burns(&mut self, dex: DexType, address: Address)

Unsubscribes from burn events for a specific pool address on a DEX.

Trait Implementations§

Source§

impl Debug for DefiDataSubscriptionManager

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DefiDataSubscriptionManager

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> Ungil for T
where T: Send,