PythStructs.sol 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // contracts/Structs.sol
  2. // SPDX-License-Identifier: Apache 2
  3. pragma solidity ^0.8.0;
  4. import "../libraries/external/BytesLib.sol";
  5. contract PythStructs {
  6. using BytesLib for bytes;
  7. struct BatchPriceAttestation {
  8. Header header;
  9. uint16 nAttestations;
  10. uint16 attestationSize;
  11. PriceAttestation[] attestations;
  12. }
  13. struct Header {
  14. uint32 magic;
  15. uint16 version;
  16. uint8 payloadId;
  17. }
  18. struct PriceAttestation {
  19. Header header;
  20. bytes32 productId;
  21. bytes32 priceId;
  22. uint8 priceType;
  23. int64 price;
  24. int32 exponent;
  25. Rational emaPrice;
  26. Rational emaConf;
  27. uint64 confidenceInterval;
  28. uint8 status;
  29. uint8 corpAct;
  30. uint64 timestamp;
  31. }
  32. struct Rational {
  33. int64 value;
  34. int64 numerator;
  35. int64 denominator;
  36. }
  37. struct UpgradeContract {
  38. bytes32 module;
  39. uint8 action;
  40. uint16 chain;
  41. address newContract;
  42. }
  43. }