| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- // contracts/PythDeprecatedStructs.sol
- // SPDX-License-Identifier: Apache 2
- pragma solidity ^0.8.0;
- // This contract contains self contained structs of all our deprecated structs.
- // When deprecating the structs, make sure that there be no dependency to
- // the sdk as the sdk might change.
- //
- // By storing these structs, we keep deprecated fields definitions correctly. Then,
- // in the future, we can use them to cleanup their storage and redeem some gas back.
- contract PythDeprecatedStructs {
- // Structs related to the _deprecatedLatestPriceInfoV1
- enum DeprecatedPriceStatusV1 {
- UNKNOWN,
- TRADING,
- HALTED,
- AUCTION
- }
- struct DeprecatedPriceFeedV1 {
- // The price ID.
- bytes32 id;
- // Product account key.
- bytes32 productId;
- // The current price.
- int64 price;
- // Confidence interval around the price.
- uint64 conf;
- // Price exponent.
- int32 expo;
- // Status of price.
- DeprecatedPriceStatusV1 status;
- // Maximum number of allowed publishers that can contribute to a price.
- uint32 maxNumPublishers;
- // Number of publishers that made up current aggregate.
- uint32 numPublishers;
- // Exponentially moving average price.
- int64 emaPrice;
- // Exponentially moving average confidence interval.
- uint64 emaConf;
- // Unix timestamp describing when the price was published
- uint64 publishTime;
- // Price of previous price with TRADING status
- int64 prevPrice;
- // Confidence interval of previous price with TRADING status
- uint64 prevConf;
- // Unix timestamp describing when the previous price with TRADING status was published
- uint64 prevPublishTime;
- }
- struct DeprecatedPriceInfoV1 {
- uint256 attestationTime;
- uint256 arrivalTime;
- uint256 arrivalBlock;
- DeprecatedPriceFeedV1 priceFeed;
- }
- // Structs related to the _deprecatedLatestPriceInfoV2
- struct DeprecatedPriceV2 {
- // Price
- int64 price;
- // Confidence interval around the price
- uint64 conf;
- // Price exponent
- int32 expo;
- // Unix timestamp describing when the price was published
- uint publishTime;
- }
- // PriceFeed represents a current aggregate price from pyth publisher feeds.
- struct DeprecatedPriceFeedV2 {
- // The price ID.
- bytes32 id;
- // Latest available price
- DeprecatedPriceV2 price;
- // Latest available exponentially-weighted moving average price
- DeprecatedPriceV2 emaPrice;
- }
- struct DeprecatedPriceInfoV2 {
- uint256 attestationTime;
- uint256 arrivalTime;
- uint256 arrivalBlock;
- DeprecatedPriceFeedV2 priceFeed;
- }
- }
|