Struct pyth_client::Price
source · [−]#[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
sourceimpl Price
impl Price
sourcepub fn get_current_price_status(&self) -> PriceStatus
pub fn get_current_price_status(&self) -> PriceStatus
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.
sourcepub fn get_current_price(&self) -> Option<PriceConf>
pub fn get_current_price(&self) -> Option<PriceConf>
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.
sourcepub fn get_twap(&self) -> Option<PriceConf>
pub fn get_twap(&self) -> Option<PriceConf>
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.
sourcepub fn get_price_in_quote(
&self,
quote: &Price,
result_expo: i32
) -> Option<PriceConf>
pub fn get_price_in_quote(
&self,
quote: &Price,
result_expo: i32
) -> Option<PriceConf>
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.
sourcepub fn price_basket(
amounts: &[(Price, i64, i32)],
result_expo: i32
) -> Option<PriceConf>
pub fn price_basket(
amounts: &[(Price, i64, i32)],
result_expo: i32
) -> Option<PriceConf>
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
impl Copy for Price
impl Eq for Price
impl Pod for Price
impl StructuralEq for Price
impl StructuralPartialEq for Price
Auto Trait Implementations
impl RefUnwindSafe for Price
impl Send for Price
impl Sync for Price
impl Unpin for Price
impl UnwindSafe for Price
Blanket Implementations
impl<T> AbiExample for T
impl<T> AbiExample for T
pub default fn example() -> T
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more