PythInternalStructs.sol 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // contracts/Structs.sol
  2. // SPDX-License-Identifier: Apache 2
  3. pragma solidity ^0.8.0;
  4. import "../libraries/external/BytesLib.sol";
  5. import "@pythnetwork/pyth-sdk-solidity/PythStructs.sol";
  6. contract PythInternalStructs {
  7. using BytesLib for bytes;
  8. struct BatchPriceAttestation {
  9. Header header;
  10. uint16 nAttestations;
  11. uint16 attestationSize;
  12. PriceAttestation[] attestations;
  13. }
  14. struct Header {
  15. uint32 magic;
  16. uint16 versionMajor;
  17. uint16 versionMinor;
  18. uint16 hdrSize;
  19. uint8 payloadId;
  20. }
  21. struct PriceAttestation {
  22. bytes32 productId;
  23. bytes32 priceId;
  24. int64 price;
  25. uint64 conf;
  26. int32 expo;
  27. int64 emaPrice;
  28. uint64 emaConf;
  29. uint8 status;
  30. uint32 numPublishers;
  31. uint32 maxNumPublishers;
  32. uint64 attestationTime;
  33. uint64 publishTime;
  34. uint64 prevPublishTime;
  35. int64 prevPrice;
  36. uint64 prevConf;
  37. }
  38. struct PriceInfo {
  39. uint256 attestationTime;
  40. uint256 arrivalTime;
  41. uint256 arrivalBlock;
  42. PythStructs.PriceFeed priceFeed;
  43. }
  44. }