#[repr(C)]pub struct PriceFeedMessage {
pub feed_id: FeedId,
pub price: i64,
pub conf: u64,
pub exponent: i32,
pub publish_time: i64,
pub prev_publish_time: i64,
pub ema_price: i64,
pub ema_conf: u64,
}
Fields§
§feed_id: FeedId
§price: i64
§conf: u64
§exponent: i32
§publish_time: i64
The timestamp of this price update in seconds
prev_publish_time: i64
The timestamp of the previous price update. This field is intended to allow users to identify the single unique price update for any moment in time: for any time t, the unique update is the one such that prev_publish_time < t <= publish_time.
Note that there may not be such an update while we are migrating to the new message-sending logic, as some price updates on pythnet may not be sent to other chains (because the message-sending logic may not have triggered). We can solve this problem by making the message-sending mandatory (which we can do once publishers have migrated over).
Additionally, this field may be equal to publish_time if the message is sent on a slot where where the aggregation was unsuccesful. This problem will go away once all publishers have migrated over to a recent version of pyth-agent.
ema_price: i64
§ema_conf: u64
Implementations§
Source§impl PriceFeedMessage
impl PriceFeedMessage
Sourcepub fn get_feed_from_bytes(v: &[u8]) -> PriceFeedMessage
pub fn get_feed_from_bytes(v: &[u8]) -> PriceFeedMessage
Interpret a PriceFeedMessage from a byte slice (which must be exactly 84 bytes long with no padding, but is really 88 bytes after Rust struct padding). This is useful if you want to read price/confidence with no checks for verification or how recent the update was.
If you have fetched a “Price Feed Account” on chain, you probably want to get the data with
let data = &ctx.accounts.price.try_borrow_data()?[..];
and you can extract this message by reading bytes 41-129. Skip the first 8 bytes (Anchor discriminator), the authority (32 bytes), and the verification type (1-2 bytes). The end of the message is also padding.
let message_bytes = &data[41..125];
or &data[42..126];
Trait Implementations§
Source§impl Clone for PriceFeedMessage
impl Clone for PriceFeedMessage
Source§fn clone(&self) -> PriceFeedMessage
fn clone(&self) -> PriceFeedMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more