price_feed.move 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. module pyth::price_feed {
  2. use pyth::price_identifier::PriceIdentifier;
  3. use pyth::price::Price;
  4. /// PriceFeed represents a current aggregate price for a particular product.
  5. struct PriceFeed has copy, drop, store {
  6. /// The price identifier
  7. price_identifier: PriceIdentifier,
  8. /// The current aggregate price
  9. price: Price,
  10. /// The current exponentially moving average aggregate price
  11. ema_price: Price,
  12. }
  13. public fun new(
  14. price_identifier: PriceIdentifier,
  15. price: Price,
  16. ema_price: Price): PriceFeed {
  17. PriceFeed {
  18. price_identifier,
  19. price,
  20. ema_price,
  21. }
  22. }
  23. public fun from(
  24. price_feed: &PriceFeed
  25. ): PriceFeed {
  26. PriceFeed {
  27. price_identifier: price_feed.price_identifier,
  28. price: price_feed.price,
  29. ema_price: price_feed.ema_price,
  30. }
  31. }
  32. public fun get_price_identifier(price_feed: &PriceFeed): PriceIdentifier {
  33. price_feed.price_identifier
  34. }
  35. public fun get_price(price_feed: &PriceFeed): Price {
  36. price_feed.price
  37. }
  38. public fun get_ema_price(price_feed: &PriceFeed): Price {
  39. price_feed.ema_price
  40. }
  41. }