Skip to main content

InsurancePoolUpdate

Struct InsurancePoolUpdate 

Source
pub struct InsurancePoolUpdate {
    pub topic: String,
    pub event_type: String,
    pub timestamp: u64,
    pub data: Vec<InsurancePool>,
}
Expand description

Represents a WebSocket insurance pool update event.

Contains real-time updates to insurance pool balances for various symbols. Push frequency: 1 second for USDT contracts, USDC contracts, and inverse contracts.

Fields§

§topic: String

The WebSocket topic for the event (e.g., “insurance.USDT”, “insurance.USDC”, “insurance.inverse”).

Specifies the data stream for the insurance pool update. Bots use this to determine which contract group the update belongs to.

§event_type: String

The event type (e.g., “snapshot”, “delta”).

Snapshot contains the full current state, delta contains incremental changes. Bots should use snapshot to initialize state and delta to update it.

§timestamp: u64

The timestamp of the event in milliseconds.

Indicates when the insurance pool update was generated by the system. Bots use this to ensure data freshness and time-based analysis.

§data: Vec<InsurancePool>

The insurance pool data.

Contains a list of insurance pool entries. Each entry represents the balance for a specific symbol or group of symbols. No event will be published if all insurance pool balances remain unchanged.

Implementations§

Source§

impl InsurancePoolUpdate

Source

pub fn contract_group(&self) -> Option<&str>

Returns the contract group from the topic.

Extracts the contract group identifier from the WebSocket topic. Examples:

  • “insurance.USDT” -> “USDT”
  • “insurance.USDC” -> “USDC”
  • “insurance.inverse” -> “inverse”
Source

pub fn is_snapshot(&self) -> bool

Returns true if this is a snapshot update.

Snapshot updates contain the full insurance pool state and should replace the local state for the corresponding contract group.

Source

pub fn is_delta(&self) -> bool

Returns true if this is a delta update.

Delta updates contain incremental changes and should be applied to the local insurance pool state.

Source

pub fn timestamp_datetime(&self) -> DateTime<Utc>

Returns the timestamp as a chrono DateTime.

Source

pub fn count(&self) -> usize

Returns the number of insurance pool entries in this update.

Source

pub fn is_empty(&self) -> bool

Returns true if there are no insurance pool entries in this update.

Source

pub fn find_by_symbol(&self, symbol: &str) -> Option<&InsurancePool>

Finds an insurance pool entry for a specific symbol.

Returns the first matching insurance pool entry for the given symbol. Note: For shared insurance pools, the symbols field may contain multiple symbols or a group identifier, so this may not find all relevant entries.

Source

pub fn filter_by_coin(&self, coin: &str) -> Vec<&InsurancePool>

Finds all insurance pool entries for a specific coin.

Source

pub fn total_balance(&self) -> f64

Returns the total balance across all insurance pools in this update.

Sums the balances of all insurance pool entries in this update. Useful for monitoring the overall health of a contract group’s insurance.

Source

pub fn count_positive(&self) -> usize

Returns the number of insurance pools with positive balance.

Source

pub fn count_non_positive(&self) -> usize

Returns the number of insurance pools with non-positive balance.

These are pools that may be at risk of triggering ADL (Auto-Deleveraging).

Source

pub fn min_balance(&self) -> Option<f64>

Returns the minimum balance among all insurance pools.

Source

pub fn max_balance(&self) -> Option<f64>

Returns the maximum balance among all insurance pools.

Source

pub fn average_balance(&self) -> Option<f64>

Returns the average balance across all insurance pools.

Source

pub fn stale_pools(&self) -> Vec<&InsurancePool>

Returns all insurance pools that are stale (older than 5 minutes).

Note: The WebSocket pushes updates every 1 second when changes occur, so stale entries in a fresh update may indicate issues with specific symbols.

Source

pub fn latest_update_time(&self) -> Option<u64>

Returns the time of the most recent update among all insurance pools.

Source

pub fn earliest_update_time(&self) -> Option<u64>

Returns the time of the oldest update among all insurance pools.

Trait Implementations§

Source§

impl Clone for InsurancePoolUpdate

Source§

fn clone(&self) -> InsurancePoolUpdate

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for InsurancePoolUpdate

Source§

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

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

impl<'de> Deserialize<'de> for InsurancePoolUpdate

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for InsurancePoolUpdate

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,