API Reference

getPriceNoOlderThan

Get the price object with a published timestamp from before than age seconds in the past.

Description

This method returns the latest price object for the requested price feed ID, if it has been updated sufficiently recently.

The caller provides an age argument that specifies how old the price can be.

The price object contains the following fields:

  1. price: The latest price of the price feed.
  2. conf: The confidence level of the price feed.
  3. expo: The exponent of the price feed.
  4. publishtime: The time when the price feed was last updated.

Sample price object:

{
price: 123456789n,
conf: 180726074n,
expo: -8,
publishTime: 1721765108n
}

The price above is in the format of price * 10^expo. So, the price in above mentioned sample represents the number 123456789 * 10(-8) = 1.23456789 in this case.

Error Response

The above method can return the following error response:

  • StalePrice: The on-chain price has not been updated within the last getValidTimePeriod() seconds. Try calling updatePriceFeeds() to update the price feed with the latest price.
  • PriceFeedNotFound: The requested price feed has never received a price update or does not exist. Try calling updatePriceFeeds() to update the price feed.

Arguments

  • The ID of the price feed you want to read

  • Maximum age of the on-chain price in seconds.

import "@pythnetwork/pyth-sdk-solidity/IPyth.sol";
import "@pythnetwork/pyth-sdk-solidity/PythStructs.sol";
//
address contractAddress =
IPyth pyth = IPyth(contractAddress);
bytes32 priceId = /* <id> */;
uint256 age = /* <age> */;
PythStructs.Price memory currentBasePrice = pyth.getPriceNoOlderThan(priceId, age);