Skip to main content

HyperSyncClient

Struct HyperSyncClient 

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

A client for interacting with a HyperSync API to retrieve blockchain data.

Implementations§

Source§

impl HyperSyncClient

Source

pub fn new( chain: SharedChain, tx: Option<UnboundedSender<BlockchainMessage>>, cancellation_token: CancellationToken, ) -> Self

Creates a new HyperSyncClient instance for the given chain and message sender.

§Panics

Panics if:

  • The chain’s hypersync_url is invalid.
  • The ENVIO_API_TOKEN environment variable is not set or invalid.
  • The underlying client cannot be initialized.
Source

pub fn get_pool_address(&self, instrument_id: InstrumentId) -> Option<&Address>

Source

pub fn process_block_dex_contract_events( &mut self, dex: &DexType, block: u64, contract_addresses: &[Address], swap_event_encoded_signature: String, mint_event_encoded_signature: String, burn_event_encoded_signature: String, )

Processes DEX contract events for a specific block.

Spawns a short-lived task that streams the block’s swap, mint, and burn events to the data client. The query is bounded just past the requested block, so once its events are delivered the stream reaches the end of its range (over-reaching the chain tip) and ends. An end-of-stream error that arrives after a response is a clean drain (logged at debug); one that arrives before any response means the events could not be fetched (logged at error).

§Panics

Panics if the DEX extended configuration cannot be retrieved or if stream creation fails.

Source

pub async fn request_contract_events_stream( &self, from_block: u64, to_block: Option<u64>, contract_address: &Address, topics: Vec<&str>, ) -> impl Stream<Item = PoolEventStreamItem> + use<>

Creates a stream of contract event logs matching the specified criteria.

§Panics

Panics if the contract address cannot be parsed as a valid Ethereum address.

Source

pub async fn disconnect(&mut self)

Disconnects from the HyperSync service and stops all background tasks.

Source

pub async fn current_block(&self) -> u64

Returns the current block

§Panics

Panics if the client height request fails.

Source

pub async fn request_blocks_stream( &self, from_block: u64, to_block: Option<u64>, ) -> impl Stream<Item = Block>

Creates a stream that yields blockchain blocks within the specified range.

§Panics

Panics if the stream creation or block transformation fails.

Source

pub fn subscribe_blocks(&mut self)

Starts a background task that continuously polls for new blockchain blocks.

§Panics

Panics if client height requests or block transformations fail.

Source

pub async fn unsubscribe_blocks(&mut self)

Unsubscribes from new blocks by stopping the background watch task.

Trait Implementations§

Source§

impl Debug for HyperSyncClient

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

§

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

§

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

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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: Sized + 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: Sized + 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
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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<T> Ungil for T
where T: Send,

§

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