#[repr(packed)]
pub struct ObservationState { pub bump: u8, pub index: u16, pub block_timestamp: u32, pub tick_cumulative: i64, pub seconds_per_liquidity_cumulative_x32: u64, pub initialized: bool, }
Expand description

Returns data about a specific observation index

PDA of [OBSERVATION_SEED, token_0, token_1, fee, index]

Fields

bump: u8

Bump to identify PDA

index: u16

The element of the observations array stored in this account

block_timestamp: u32

The block timestamp of the observation

tick_cumulative: i64

The tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp

seconds_per_liquidity_cumulative_x32: u64

The seconds per in range liquidity for the life of the pool as of the observation timestamp

initialized: bool

Whether the observation has been initialized and the values are safe to use

Implementations

Transforms a previous observation into a new observation, given the passage of time and the current tick and liquidity values

Arguments
  • last - Must be chronologically equal to or greater than last.blockTimestamp, safe for 0 or 1 overflows.
  • block_timestamp - The timestamp of the new observation
  • tick - The active tick at the time of the new observation
  • liquidity - The total in-range liquidity at the time of the new observation

Writes an oracle observation to the account, returning the updated cardinality. Writable at most once per second. Index represents the most recently written element. cardinality and index must be tracked externally. If the index is at the end of the allowable array length (according to cardinality), and the next cardinality is greater than the current one, cardinality may be increased. This restriction is created to preserve ordering.

Arguments
  • self - The observation account to write in
  • block_timestamp - The timestamp of the new observation
  • tick - The active tick at the time of the new observation
  • liquidity - The total in-range liquidity at the time of the new observation
  • cardinality - The number of populated elements in the oracle array
  • cardinality_next - The new length of the oracle array, independent of population

Makes a new observation for the current block timestamp

Arguments
  • last - The most recently written observation
  • time - The current block timestamp
  • liquidity - The current in-range pool liquidity

Trait Implementations

Deserializes previously initialized account data. Should fail for all uninitialized accounts, where the bytes are zeroed. Implementations should be unique to a particular account type so that one can never successfully deserialize the data of one account type into another. For example, if the SPL token program were to implement this trait, it should be impossible to deserialize a Mint account into a token Account. Read more

Deserializes account data without checking the account discriminator. This should only be used on account initialization, when the bytes of the account are zeroed. Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

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

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern. Read more

If this function returns true, then it must be valid to reinterpret bits as &Self.

Returns the argument unchanged.

Calls U::from(self).

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

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

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

Should always be Self

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.