#[repr(C)]
pub struct Price {
Show 22 fields pub magic: u32, pub ver: u32, pub atype: u32, pub size: u32, pub ptype: PriceType, pub expo: i32, pub num: u32, pub num_qt: u32, pub last_slot: u64, pub valid_slot: u64, pub twap: Ema, pub twac: Ema, pub drv1: i64, pub drv2: i64, pub prod: AccKey, pub next: AccKey, pub prev_slot: u64, pub prev_price: i64, pub prev_conf: u64, pub drv3: i64, pub agg: PriceInfo, pub comp: [PriceComp; 32],
}
Expand description

Price accounts represent a continuously-updating price feed for a product.

Fields

magic: u32

pyth magic number

ver: u32

program version

atype: u32

account type

size: u32

price account size

ptype: PriceType

price or calculation type

expo: i32

price exponent

num: u32

number of component prices

num_qt: u32

number of quoters that make up aggregate

last_slot: u64

slot of last valid (not unknown) aggregate price

valid_slot: u64

valid slot-time of agg. price

twap: Ema

time-weighted average price

twac: Ema

time-weighted average confidence interval

drv1: i64

space for future derived values

drv2: i64

space for future derived values

prod: AccKey

product account key

next: AccKey

next Price account in linked list

prev_slot: u64

valid slot of previous update

prev_price: i64

aggregate price of previous update

prev_conf: u64

confidence interval of previous update

drv3: i64

space for future derived values

agg: PriceInfo

aggregate price info

comp: [PriceComp; 32]

price components one per quoter

Implementations

Get the current status of the aggregate price. If this lib is used on-chain it will mark price status as unknown if price has not been updated for a while.

Get the current price and confidence interval as fixed-point numbers of the form a * 10^e. Returns a struct containing the current price, confidence interval, and the exponent for both numbers. Returns None if price information is currently unavailable for any reason.

Get the time-weighted average price (TWAP) and a confidence interval on the result. Returns None if the twap is currently unavailable.

At the moment, the confidence interval returned by this method is computed in a somewhat questionable way, so we do not recommend using it for high-value applications.

Get the current price of this account in a different quote currency. If this account represents the price of the product X/Z, and quote represents the price of the product Y/Z, this method returns the price of X/Y. Use this method to get the price of e.g., mSOL/SOL from the mSOL/USD and SOL/USD accounts.

result_expo determines the exponent of the result, i.e., the number of digits below the decimal point. This method returns None if either the price or confidence are too large to be represented with the requested exponent.

Get the price of a basket of currencies. Each entry in amounts is of the form (price, qty, qty_expo), and the result is the sum of price * qty * 10^qty_expo. The result is returned with exponent result_expo.

An example use case for this function is to get the value of an LP token.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

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

Returns the argument unchanged.

Calls U::from(self).

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

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.