EntropyStructConverter.sol 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // SPDX-License-Identifier: Apache 2
  2. pragma solidity ^0.8.0;
  3. import "@pythnetwork/entropy-sdk-solidity/EntropyStructs.sol";
  4. import "@pythnetwork/entropy-sdk-solidity/EntropyStructsV2.sol";
  5. // Conversions from V2 structs to their V1 equivalents
  6. library EntropyStructConverter {
  7. function toV1Request(
  8. EntropyStructsV2.Request memory v2Request
  9. ) internal pure returns (EntropyStructs.Request memory v1Request) {
  10. v1Request = EntropyStructs.Request({
  11. provider: v2Request.provider,
  12. sequenceNumber: v2Request.sequenceNumber,
  13. numHashes: v2Request.numHashes,
  14. commitment: v2Request.commitment,
  15. blockNumber: v2Request.blockNumber,
  16. requester: v2Request.requester,
  17. useBlockhash: v2Request.useBlockhash,
  18. isRequestWithCallback: v2Request.callbackStatus > 0
  19. });
  20. }
  21. function toV1ProviderInfo(
  22. EntropyStructsV2.ProviderInfo memory v2ProviderInfo
  23. )
  24. internal
  25. pure
  26. returns (EntropyStructs.ProviderInfo memory v1ProviderInfo)
  27. {
  28. v1ProviderInfo = EntropyStructs.ProviderInfo({
  29. feeInWei: v2ProviderInfo.feeInWei,
  30. accruedFeesInWei: v2ProviderInfo.accruedFeesInWei,
  31. originalCommitment: v2ProviderInfo.originalCommitment,
  32. originalCommitmentSequenceNumber: v2ProviderInfo
  33. .originalCommitmentSequenceNumber,
  34. commitmentMetadata: v2ProviderInfo.commitmentMetadata,
  35. uri: v2ProviderInfo.uri,
  36. endSequenceNumber: v2ProviderInfo.endSequenceNumber,
  37. sequenceNumber: v2ProviderInfo.sequenceNumber,
  38. currentCommitment: v2ProviderInfo.currentCommitment,
  39. currentCommitmentSequenceNumber: v2ProviderInfo
  40. .currentCommitmentSequenceNumber,
  41. feeManager: v2ProviderInfo.feeManager,
  42. maxNumHashes: v2ProviderInfo.maxNumHashes
  43. });
  44. }
  45. }